ia32-64/x86/cvtps2pd.html
2025-07-08 02:23:29 -03:00

274 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:x86="http://www.felixcloutier.com/x86"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="style.css"></link><title>CVTPS2PD
— Convert Packed Single Precision Floating-Point Values to Packed Double PrecisionFloating-Point Values</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>CVTPS2PD
— Convert Packed Single Precision Floating-Point Values to Packed Double PrecisionFloating-Point Values</h1>
<table>
<tr>
<th>Opcode/Instruction</th>
<th>Op / En</th>
<th>64/32 bit Mode Support</th>
<th>CPUID Feature Flag</th>
<th>Description</th></tr>
<tr>
<td>NP 0F 5A /r CVTPS2PD xmm1, xmm2/m64</td>
<td>A</td>
<td>V/V</td>
<td>SSE2</td>
<td>Convert two packed single precision floating-point values in xmm2/m64 to two packed double precision floating-point values in xmm1.</td></tr>
<tr>
<td>VEX.128.0F.WIG 5A /r VCVTPS2PD xmm1, xmm2/m64</td>
<td>A</td>
<td>V/V</td>
<td>AVX</td>
<td>Convert two packed single precision floating-point values in xmm2/m64 to two packed double precision floating-point values in xmm1.</td></tr>
<tr>
<td>VEX.256.0F.WIG 5A /r VCVTPS2PD ymm1, xmm2/m128</td>
<td>A</td>
<td>V/V</td>
<td>AVX</td>
<td>Convert four packed single precision floating-point values in xmm2/m128 to four packed double precision floating-point values in ymm1.</td></tr>
<tr>
<td>EVEX.128.0F.W0 5A /r VCVTPS2PD xmm1 {k1}{z}, xmm2/m64/m32bcst</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Convert two packed single precision floating-point values in xmm2/m64/m32bcst to packed double precision floating-point values in xmm1 with writemask k1.</td></tr>
<tr>
<td>EVEX.256.0F.W0 5A /r VCVTPS2PD ymm1 {k1}{z}, xmm2/m128/m32bcst</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Convert four packed single precision floating-point values in xmm2/m128/m32bcst to packed double precision floating-point values in ymm1 with writemask k1.</td></tr>
<tr>
<td>EVEX.512.0F.W0 5A /r VCVTPS2PD zmm1 {k1}{z}, ymm2/m256/m32bcst{sae}</td>
<td>B</td>
<td>V/V</td>
<td>AVX512F</td>
<td>Convert eight packed single precision floating-point values in ymm2/m256/b32bcst to eight packed double precision floating-point values in zmm1 with writemask k1.</td></tr></table>
<h2 id="instruction-operand-encoding">Instruction Operand Encoding<a class="anchor" href="#instruction-operand-encoding">
</a></h2>
<table>
<tr>
<th>Op/En</th>
<th>Tuple Type</th>
<th>Operand 1</th>
<th>Operand 2</th>
<th>Operand 3</th>
<th>Operand 4</th></tr>
<tr>
<td>A</td>
<td>N/A</td>
<td>ModRM:reg (w)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td>
<td>N/A</td></tr>
<tr>
<td>B</td>
<td>Half</td>
<td>ModRM:reg (w)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td>
<td>N/A</td></tr></table>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>Converts two, four or eight packed single precision floating-point values in the source operand (second operand) to two, four or eight packed double precision floating-point values in the destination operand (first operand).</p>
<p>EVEX encoded versions: The source operand is a YMM/XMM/XMM (low 64-bits) register, a 256/128/64-bit memory location or a 256/128/64-bit vector broadcasted from a 32-bit memory location. The destination operand is a ZMM/YMM/XMM register conditionally updated with writemask k1.</p>
<p>VEX.256 encoded version: The source operand is an XMM register or 128- bit memory location. The destination operand is a YMM register. Bits (MAXVL-1:256) of the corresponding destination ZMM register are zeroed.</p>
<p>VEX.128 encoded version: The source operand is an XMM register or 64- bit memory location. The destination operand is a XMM register. The upper Bits (MAXVL-1:128) of the corresponding ZMM register destination are zeroed.</p>
<p>128-bit Legacy SSE version: The source operand is an XMM register or 64- bit memory location. The destination operand is an XMM register. The upper Bits (MAXVL-1:128) of the corresponding ZMM register destination are unmodified.</p>
<p>Note: VEX.vvvv and EVEX.vvvv are reserved and must be 1111b otherwise instructions will #UD.</p>
<figure id="fig-3-14">
<svg style="width: 475.848pt; height: 192.74397599999992pt" viewBox="100.7 0.0 401.54 165.61997999999994">
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
<rect height="159.66" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.2" y="0.479979999999955"></rect>
<rect height="159.66" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="499.20000000000005" y="0.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="396.54" x="103.2" y="0.0"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="396.54" x="103.2" y="160.14"></rect>
<path d="M 183.42000000000002 101.1599799999999 L 185.04000000000002 105.17997999999989 L 185.28000000000003 105.83997999999985 L 184.62 105.89997999999991 L 169.14000000000001 107.57997999999986 L 167.4 107.75997999999993 L 168.78000000000003 106.67997999999989 L 181.02 97.01997999999992 L 181.56 96.59997999999996 L 181.8 97.19997999999987 L 181.68 97.79997999999989 L 169.44000000000003 107.45997999999986 L 168.78000000000003 106.67997999999989 L 169.08 106.55997999999988 L 184.56 104.87997999999993 L 184.62 105.89997999999991 L 184.14000000000001 105.5399799999999 L 182.52 101.51997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 181.8 97.19997999999998 L 183.42000000000002 101.15998000000002 L 182.52 101.51998000000003 L 180.9 97.55998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 183.0 101.33997999999997 L 184.62 105.35997999999995 L 169.14 107.03998000000001 L 181.38 97.37997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 299.52 54.719979999999964 L 298.74 52.85997999999995 L 183.11999999999998 100.25997999999993 L 183.89999999999998 102.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="393.6" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="393.6" y="40.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="430.5" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="393.36" y="53.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="393.36" y="40.01997999999992"></rect>
<path d="M 395.94 92.45997999999997 L 396.12 92.51997999999992 L 396.36 92.51997999999992 C 397.175 92.56097999999997 397.715 91.34097999999994 396.84 90.71997999999996L 396.66 90.59997999999996 L 396.42 90.53998000000001 C 395.433 90.52697999999998 394.929 91.49597999999992 395.58 92.27998000000002L 395.76 92.39998000000003 L 395.94 92.45997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 396.3 91.61997999999994 L 400.32 93.11997999999994 L 400.92 93.35997999999995 L 400.5 93.89997999999991 L 391.2 106.37997999999993 L 390.18 107.75997999999993 L 390.3 106.01997999999992 L 391.56 90.47997999999995 L 391.68 89.81997999999999 L 392.28000000000003 90.05998 L 392.58 90.5399799999999 L 391.32 106.07997999999998 L 390.3 106.01997999999992 L 390.42 105.71997999999996 L 399.72 93.23997999999995 L 400.5 93.89997999999991 L 399.96000000000004 94.01997999999992 L 395.94 92.51997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 392.28000000000003 90.05997999999988 L 396.3 91.61997999999983 L 395.94000000000005 92.51997999999992 L 391.92 90.95997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 396.12 92.0399799999999 L 400.14 93.5399799999999 L 390.84000000000003 106.01997999999992 L 392.1 90.47997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 411.42 54.11997999999994 L 409.56 53.399979999999914 L 395.40000000000003 91.19997999999998 L 397.26 91.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 330.84000000000003 96.23997999999995 L 331.02000000000004 96.35997999999995 L 331.20000000000005 96.4199799999999 C 332.01200000000006 96.8429799999999 333.035 95.73197999999991 332.40000000000003 94.97997999999995L 332.28000000000003 94.79997999999989 L 332.1 94.67998 C 331.25500000000005 94.17897999999991 330.333 94.90598 330.66 95.87997999999993L 330.72 96.05998 L 330.84000000000003 96.23997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 331.56 95.51997999999992 L 334.62 98.51997999999992 L 335.04 99.05997999999988 L 320.88 106.9199799999999 L 319.32 107.75997999999993 L 320.16 106.19997999999987 L 327.72 92.57997999999986 L 328.08 92.0399799999999 L 328.56 92.45997999999997 L 328.62 93.05997999999988 L 321.06 106.67997999999989 L 320.16 106.19997999999987 L 320.4 106.01997999999992 L 334.02 98.45997999999997 L 334.5 99.35997999999995 L 333.9 99.23997999999995 L 330.84 96.23997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 328.56 92.45997999999997 L 331.56 95.51997999999992 L 330.84 96.23997999999995 L 327.84 93.17998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 331.20000000000005 95.87997999999993 L 334.26000000000005 98.87997999999993 L 320.64000000000004 106.43997999999988 L 328.20000000000005 92.81997999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 374.04 54.479979999999955 L 372.66 53.09997999999996 L 330.90000000000003 94.85997999999995 L 332.28000000000003 96.23997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 259.14 99.4199799999999 L 259.26 99.59997999999985 L 259.38 99.71997999999985 L 259.56 99.83997999999985 L 259.74 99.89997999999991 L 260.28 99.89997999999991 L 260.64 99.6599799999999 C 260.972 99.3429799999999 260.947 99.22597999999994 260.94 98.81997999999987L 260.94 98.57997999999986 L 260.82 98.39997999999991 L 260.7 98.27997999999991 L 260.58 98.09997999999985 L 260.03999999999996 97.9199799999999 L 259.86 97.9199799999999 L 259.62 97.97997999999984 L 259.44 98.0399799999999 C 258.964 98.49397999999985 259.192 98.27797999999984 258.96 98.87997999999993L 258.96 99.05997999999988 L 259.02 99.23997999999995 L 259.14 99.4199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 259.98 98.93997999999988 L 262.14000000000004 102.6599799999999 L 262.44 103.25997999999993 L 261.78000000000003 103.37997999999993 L 246.78000000000003 107.27997999999991 L 245.04000000000002 107.75997999999993 L 246.24 106.49997999999982 L 256.92 95.1599799999999 L 257.40000000000003 94.61997999999983 L 257.76 95.21997999999985 L 257.70000000000005 95.81997999999987 L 247.02 107.1599799999999 L 246.24 106.49997999999982 L 246.54000000000002 106.31997999999987 L 261.6 102.4199799999999 L 261.78000000000003 103.37997999999993 L 261.24 103.19997999999987 L 259.08000000000004 99.47997999999984" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 257.76 95.21997999999996 L 259.98 98.93997999999999 L 259.08 99.47997999999995 L 256.86 95.75997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 259.56 99.17997999999989 L 261.72 102.89997999999991 L 246.66 106.79997999999989 L 257.34 95.45997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 336.78000000000003 54.59997999999996 L 335.76000000000005 52.91998000000001 L 259.5 98.09997999999996 L 260.52000000000004 99.77997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="356.46" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="356.46" y="40.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="393.36" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="356.22" y="53.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="356.22" y="40.01997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="319.32" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="319.32" y="40.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="356.22" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="319.08" y="53.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="319.08" y="40.01997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="282.24" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="282.24" y="40.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="319.08" y="40.25997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="282.0" y="53.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="282.0" y="40.01997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="355.92" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="355.92" y="107.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="429.90000000000003" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="355.68" y="121.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="355.68" y="107.51997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="133.14000000000001" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="133.14000000000001" y="107.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="207.18" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="132.9" y="121.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="132.9" y="107.51997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="207.42000000000002" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.42000000000002" y="107.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.40000000000003" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.18" y="121.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="207.18" y="107.51997999999992"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="281.64" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.64" y="107.51999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="355.68" y="107.75997999999993"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.40000000000003" y="121.01999999999998"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.40000000000003" y="107.51997999999992"></rect>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="120.65248509999998" x="293.28000000000003" y="50.3708777999999">X3 X2 X1 X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="15.882588699999985" x="113.69976564000001" y="51.99138643999993">SRC</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="156.78" y="117.8708777999999">X3</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="241.14000000000001" y="117.8708777999999">X2</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.844471945989483" x="315.48" y="117.94388926322608">X1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.904170745989461" x="389.639176" y="117.94388926322608">X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.024954820000005" x="113.46000000000001" y="121.23087779999992">DEST</text></g></svg>
<figcaption><a href='cvtps2pd.html#fig-3-14'>Figure 3-14</a>. CVTPS2PD (VEX.256 encoded version)</figcaption></figure>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="vcvtps2pd--evex-encoded-versions--when-src-operand-is-a-register">VCVTPS2PD (EVEX Encoded Versions) When SRC Operand is a Register<a class="anchor" href="#vcvtps2pd--evex-encoded-versions--when-src-operand-is-a-register">
</a></h3>
<pre>(KL, VL) = (2, 128), (4, 256), (8, 512)
FOR j := 0 TO KL-1
i := j * 64
k := j * 32
IF k1[j] OR *no writemask*
THEN DEST[i+63:i] :=
Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[k+31:k])
ELSE
IF *merging-masking* ; merging-masking
THEN *DEST[i+63:i] remains unchanged*
ELSE ; zeroing-masking
DEST[i+63:i] := 0
FI
FI;
ENDFOR
DEST[MAXVL-1:VL] := 0
</pre>
<h3 id="vcvtps2pd--evex-encoded-versions--when-src-operand-is-a-memory-source">VCVTPS2PD (EVEX Encoded Versions) When SRC Operand is a Memory Source<a class="anchor" href="#vcvtps2pd--evex-encoded-versions--when-src-operand-is-a-memory-source">
</a></h3>
<pre>(KL, VL) = (2, 128), (4, 256), (8, 512)
FOR j := 0 TO KL-1
i := j * 64
k := j * 32
IF k1[j] OR *no writemask*
THEN
IF (EVEX.b = 1)
THEN
DEST[i+63:i] :=
Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[31:0])
ELSE
DEST[i+63:i] :=
Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[k+31:k])
FI;
ELSE
IF *merging-masking* ; merging-masking
THEN *DEST[i+63:i] remains unchanged*
ELSE ; zeroing-masking
DEST[i+63:i] := 0
FI
FI;
ENDFOR
DEST[MAXVL-1:VL] := 0
</pre>
<h3 id="vcvtps2pd--vex-256-encoded-version-">VCVTPS2PD (VEX.256 Encoded Version)<a class="anchor" href="#vcvtps2pd--vex-256-encoded-version-">
</a></h3>
<pre>DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[31:0])
DEST[127:64] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[63:32])
DEST[191:128] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[95:64])
DEST[255:192] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[127:96)
DEST[MAXVL-1:256] := 0
</pre>
<h3 id="vcvtps2pd--vex-128-encoded-version-">VCVTPS2PD (VEX.128 Encoded Version)<a class="anchor" href="#vcvtps2pd--vex-128-encoded-version-">
</a></h3>
<pre>DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[31:0])
DEST[127:64] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[63:32])
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="cvtps2pd--128-bit-legacy-sse-version-">CVTPS2PD (128-bit Legacy SSE Version)<a class="anchor" href="#cvtps2pd--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[63:0] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[31:0])
DEST[127:64] := Convert_Single_Precision_To_Double_Precision_Floating_Point(SRC[63:32])
DEST[MAXVL-1:128] (unmodified)
</pre>
<h2 id="intel-c-c++-compiler-intrinsic-equivalent">Intel C/C++ Compiler Intrinsic Equivalent<a class="anchor" href="#intel-c-c++-compiler-intrinsic-equivalent">
</a></h2>
<pre>VCVTPS2PD __m512d _mm512_cvtps_pd( __m256 a);
</pre>
<pre>VCVTPS2PD __m512d _mm512_mask_cvtps_pd( __m512d s, __mmask8 k, __m256 a);
</pre>
<pre>VCVTPS2PD __m512d _mm512_maskz_cvtps_pd( __mmask8 k, __m256 a);
</pre>
<pre>VCVTPS2PD __m512d _mm512_cvt_roundps_pd( __m256 a, int sae);
</pre>
<pre>VCVTPS2PD __m512d _mm512_mask_cvt_roundps_pd( __m512d s, __mmask8 k, __m256 a, int sae);
</pre>
<pre>VCVTPS2PD __m512d _mm512_maskz_cvt_roundps_pd( __mmask8 k, __m256 a, int sae);
</pre>
<pre>VCVTPS2PD __m256d _mm256_mask_cvtps_pd( __m256d s, __mmask8 k, __m128 a);
</pre>
<pre>VCVTPS2PD __m256d _mm256_maskz_cvtps_pd( __mmask8 k, __m128a);
</pre>
<pre>VCVTPS2PD __m128d _mm_mask_cvtps_pd( __m128d s, __mmask8 k, __m128 a);
</pre>
<pre>VCVTPS2PD __m128d _mm_maskz_cvtps_pd( __mmask8 k, __m128 a);
</pre>
<pre>VCVTPS2PD __m256d _mm256_cvtps_pd (__m128 a)
</pre>
<pre>CVTPS2PD __m128d _mm_cvtps_pd (__m128 a)
</pre>
<h2 class="exceptions" id="simd-floating-point-exceptions">SIMD Floating-Point Exceptions<a class="anchor" href="#simd-floating-point-exceptions">
</a></h2>
<p>Invalid, Denormal.</p>
<h2 class="exceptions" id="other-exceptions">Other Exceptions<a class="anchor" href="#other-exceptions">
</a></h2>
<p>VEX-encoded instructions, see <span class="not-imported">Table 2-20</span>, “Type 3 Class Exception Conditions.”</p>
<p>EVEX-encoded instructions, see <span class="not-imported">Table 2-47</span>, “Type E3 Class Exception Conditions.”</p>
<p>Additionally:</p>
<table>
<tr>
<td>#UD</td>
<td>If VEX.vvvv != 1111B or EVEX.vvvv != 1111B.</td></tr></table><footer><p>
This UNOFFICIAL, mechanically-separated, non-verified reference is provided for convenience, but it may be
inc<span style="opacity: 0.2">omp</span>lete or b<sub>r</sub>oke<sub>n</sub> in various obvious or non-obvious
ways. Refer to <a href="https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4">Intel® 64 and IA-32 Architectures Software Developers Manual</a> for anything serious.
</p></footer></body></html>