forked from NRZCode/ia32-64
274 lines
22 KiB
HTML
274 lines
22 KiB
HTML
<!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 Developer’s Manual</a> for anything serious.
|
||
</p></footer></body></html>
|