forked from NRZCode/ia32-64
265 lines
21 KiB
HTML
265 lines
21 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>CVTDQ2PD
|
||
— Convert Packed Doubleword Integers to Packed Double Precision Floating-PointValues</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>CVTDQ2PD
|
||
— Convert Packed Doubleword Integers to Packed Double Precision Floating-PointValues</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>F3 0F E6 /r CVTDQ2PD xmm1, xmm2/m64</td>
|
||
<td>A</td>
|
||
<td>V/V</td>
|
||
<td>SSE2</td>
|
||
<td>Convert two packed signed doubleword integers from xmm2/mem to two packed double precision floating-point values in xmm1.</td></tr>
|
||
<tr>
|
||
<td>VEX.128.F3.0F.WIG E6 /r VCVTDQ2PD xmm1, xmm2/m64</td>
|
||
<td>A</td>
|
||
<td>V/V</td>
|
||
<td>AVX</td>
|
||
<td>Convert two packed signed doubleword integers from xmm2/mem to two packed double precision floating-point values in xmm1.</td></tr>
|
||
<tr>
|
||
<td>VEX.256.F3.0F.WIG E6 /r VCVTDQ2PD ymm1, xmm2/m128</td>
|
||
<td>A</td>
|
||
<td>V/V</td>
|
||
<td>AVX</td>
|
||
<td>Convert four packed signed doubleword integers from xmm2/mem to four packed double precision floating-point values in ymm1.</td></tr>
|
||
<tr>
|
||
<td>EVEX.128.F3.0F.W0 E6 /r VCVTDQ2PD xmm1 {k1}{z}, xmm2/m64/m32bcst</td>
|
||
<td>B</td>
|
||
<td>V/V</td>
|
||
<td>AVX512VL AVX512F</td>
|
||
<td>Convert 2 packed signed doubleword integers from xmm2/m64/m32bcst to eight packed double precision floating-point values in xmm1 with writemask k1.</td></tr>
|
||
<tr>
|
||
<td>EVEX.256.F3.0F.W0 E6 /r VCVTDQ2PD ymm1 {k1}{z}, xmm2/m128/m32bcst</td>
|
||
<td>B</td>
|
||
<td>V/V</td>
|
||
<td>AVX512VL AVX512F</td>
|
||
<td>Convert 4 packed signed doubleword integers from xmm2/m128/m32bcst to 4 packed double precision floating-point values in ymm1 with writemask k1.</td></tr>
|
||
<tr>
|
||
<td>EVEX.512.F3.0F.W0 E6 /r VCVTDQ2PD zmm1 {k1}{z}, ymm2/m256/m32bcst</td>
|
||
<td>B</td>
|
||
<td>V/V</td>
|
||
<td>AVX512F</td>
|
||
<td>Convert eight packed signed doubleword integers from ymm2/m256/m32bcst 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 signed doubleword integers in the source operand (the second operand) to two, four or eight packed double precision floating-point values in the destination operand (the first operand).</p>
|
||
<p>EVEX encoded versions: The source operand can be 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. Attempt to encode this instruction with EVEX embedded rounding is ignored.</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.</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>VEX.vvvv and EVEX.vvvv are reserved and must be 1111b, otherwise instructions will #UD.</p>
|
||
<figure id="fig-3-11">
|
||
<svg style="width: 475.77604799999995pt; height: 142.12797599999985pt" viewBox="101.24000000000001 0.0 401.48004 123.43997999999988">
|
||
<g xmlns="http://www.w3.org/2000/svg" style="stroke: none; fill: none">
|
||
<rect height="117.48" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.74000000000001" y="0.479979999999955"></rect>
|
||
<rect height="117.48" style="fill: rgb(0%, 0%, 0%)" width="0.48004" x="499.74" y="0.479979999999955"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="396.48" x="103.74000000000001" y="0.0"></rect>
|
||
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="396.48" x="103.74000000000001" y="117.95993999999985"></rect>
|
||
<path d="M 219.18 83.81997999999999 L 220.8 87.77998000000002 L 221.04000000000002 88.43997999999999 L 220.38 88.49997999999994 L 204.9 90.17998 L 203.16 90.35997999999995 L 204.54000000000002 89.27998000000002 L 216.78 79.61997999999994 L 217.32 79.19997999999998 L 217.56 79.79998 L 217.44 80.39998000000003 L 205.20000000000002 90.05998 L 204.54000000000002 89.27998000000002 L 204.84 89.15998000000002 L 220.32 87.47997999999995 L 220.38 88.49997999999994 L 219.9 88.13998000000004 L 218.28 84.17998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 217.56 79.79997999999989 L 219.18 83.81997999999987 L 218.28 84.17997999999989 L 216.66 80.1599799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 218.76 83.99997999999994 L 220.38 87.95997999999997 L 204.89999999999998 89.63997999999992 L 217.14 79.97997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 335.28000000000003 37.31997999999999 L 334.50000000000006 35.45997999999997 L 218.88000000000002 82.85997999999995 L 219.66000000000003 84.71997999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="429.36" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="429.36" y="22.620000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="466.26" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="429.12" y="36.120000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="429.12" y="22.61997999999994"></rect>
|
||
<path d="M 431.70000000000005 75.05997999999988 L 431.88000000000005 75.11997999999983 L 432.12000000000006 75.17997999999989 C 433.1 74.98597999999993 433.446 73.89997999999991 432.6 73.31997999999987L 432.4200000000001 73.19997999999987 L 432.24000000000007 73.13997999999992 C 431.266 72.99497999999983 430.617 74.2709799999999 431.40000000000003 74.87997999999993L 431.52000000000004 74.99997999999994 L 431.70000000000005 75.05997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 432.06 74.21997999999996 L 436.08 75.71997999999996 L 436.68 75.95997999999997 L 436.26 76.49997999999994 L 426.96 89.03998000000001 L 425.94 90.41998000000001 L 426.06 88.67998 L 427.32 73.13997999999992 L 427.44 72.47997999999995 L 428.04 72.71997999999996 L 428.34 73.19997999999998 L 427.08 88.73997999999995 L 426.06 88.67998 L 426.18 88.37997999999993 L 435.48 75.83997999999997 L 436.26 76.49997999999994 L 435.72 76.61997999999994 L 431.7 75.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 428.04 72.71997999999996 L 432.06 74.21997999999996 L 431.70000000000005 75.11997999999994 L 427.68 73.61997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 431.88 74.63997999999992 L 435.9 76.13997999999992 L 426.6 88.67997999999989 L 427.86 73.13997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 447.18 36.719979999999964 L 445.32 35.99997999999994 L 431.16 73.79998 L 433.02 74.51997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 366.66 78.83997999999985 L 366.78000000000003 78.95997999999986 L 366.96000000000004 79.0199799999998 C 367.836 79.46497999999985 368.76300000000003 78.32597999999984 368.16 77.57997999999986L 368.04 77.3999799999998 L 367.92 77.27997999999991 L 367.56 77.1599799999999 L 367.32000000000005 77.09997999999985 L 366.78000000000003 77.27997999999991 L 366.66 77.3999799999998 C 366.351 77.8859799999999 366.35 77.7269799999998 366.36 78.29997999999989L 366.42 78.47997999999984 L 366.66 78.83997999999985" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 367.38 78.11997999999994 L 370.38 81.17997999999989 L 370.8 81.71997999999996 L 370.26 82.01997999999992 L 356.64 89.57997999999998 L 355.08 90.4199799999999 L 355.92 88.85997999999995 L 363.48 75.17997999999989 L 363.84 74.63997999999992 L 364.32 75.05998 L 364.38 75.6599799999999 L 356.82 89.33997999999997 L 355.92 88.85997999999995 L 356.15999999999997 88.67997999999989 L 369.78 81.11997999999994 L 370.26 82.01997999999992 L 369.65999999999997 81.89997999999991 L 366.65999999999997 78.83997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 364.32 75.05997999999988 L 367.38 78.11997999999983 L 366.65999999999997 78.83997999999985 L 363.59999999999997 75.77997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 367.02 78.47997999999995 L 370.02 81.5399799999999 L 356.4 89.09997999999996 L 363.96 75.41998000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 409.86 37.07997999999998 L 408.48 35.69997999999998 L 366.66 77.45997999999997 L 368.04 78.83997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 294.90000000000003 82.01997999999992 L 295.02000000000004 82.19997999999987 L 295.14000000000004 82.31997999999987 C 295.867 82.97597999999994 297.043 82.05997999999988 296.70000000000005 81.17997999999989L 296.58000000000004 80.99997999999994 L 296.46000000000004 80.87997999999993 C 295.939 80.07897999999989 294.54600000000005 80.78897999999992 294.78000000000003 81.6599799999999L 294.78000000000003 81.83997999999997 L 294.90000000000003 82.01997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 295.74 81.5399799999999 L 297.90000000000003 85.25997999999993 L 298.2 85.85997999999995 L 297.54 85.97997999999995 L 282.54 89.87997999999993 L 280.8 90.35997999999995 L 282.0 89.09997999999985 L 292.68 77.81997999999987 L 293.16 77.27997999999991 L 293.52 77.87997999999993 L 293.46000000000004 78.47997999999995 L 282.78000000000003 89.75997999999993 L 282.0 89.09997999999985 L 282.3 88.9199799999999 L 297.36 85.01997999999992 L 297.54 85.97997999999995 L 297.0 85.79997999999989 L 294.84000000000003 82.07997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 293.52 77.87997999999993 L 295.74 81.5399799999999 L 294.84 82.07997999999998 L 292.62 78.4199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 295.32 81.77997999999991 L 297.48 85.49997999999994 L 282.42 89.39997999999991 L 293.09999999999997 78.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 372.54 37.19997999999998 L 371.52000000000004 35.51998000000003 L 295.26 80.69997999999998 L 296.28000000000003 82.37997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="392.22" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="392.22" y="22.620000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="429.12" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="391.98" y="36.120000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="391.98" y="22.61997999999994"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="355.14" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="355.14" y="22.620000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="391.98" y="22.85997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="354.90000000000003" y="36.120000000000005"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="354.90000000000003" y="22.61997999999994"></rect>
|
||
<rect height="13.86" style="fill: rgb(100%, 100%, 100%)" width="38.64" x="316.5" y="22.499979999999937"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="38.88" x="316.5" y="22.25999999999999"></rect>
|
||
<rect height="14.100000000000001" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="354.90000000000003" y="22.499979999999937"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="38.88" x="316.26" y="36.120000000000005"></rect>
|
||
<rect height="14.100000000000001" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="316.26" y="22.259979999999928"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="391.68" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="391.68" y="90.12"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="465.66" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="391.44" y="103.62"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="391.44" y="90.11997999999994"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="168.9" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="168.9" y="90.12"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="242.94" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="168.66" y="103.62"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="168.66" y="90.11997999999994"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="84.06" x="233.34" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="84.30000000000001" x="233.34" y="90.12"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="317.16" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="84.30000000000001" x="233.10000000000002" y="103.62"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="233.10000000000002" y="90.11997999999994"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="317.40000000000003" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="317.40000000000003" y="90.12"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="391.44" y="90.35997999999995"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="317.16" y="103.62"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="317.16" y="90.11997999999994"></rect>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="329.04" y="32.970877799999926">X3</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="83.45216670000002" x="366.18" y="32.970877799999926">X2 X1 X0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="15.82151632" x="149.45976564" y="34.59138643999995">SRC</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.23248510000002" x="192.54" y="100.47087779999993">X3</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="276.90000000000003" y="100.47087779999993">X2</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.904999895989476" x="351.24" y="100.5438892632261">X1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.844471945989483" x="425.399176" y="100.5438892632261">X0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.024954820000005" x="149.22" y="103.83087779999994">DEST</text></g></svg>
|
||
<figcaption><a href='cvtdq2pd.html#fig-3-11'>Figure 3-11</a>. CVTDQ2PD (VEX.256 encoded version)</figcaption></figure>
|
||
<h2 id="operation">Operation<a class="anchor" href="#operation">
|
||
¶
|
||
</a></h2>
|
||
<h3 id="vcvtdq2pd--evex-encoded-versions--when-src-operand-is-a-register">VCVTDQ2PD (EVEX Encoded Versions) When SRC Operand is a Register<a class="anchor" href="#vcvtdq2pd--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_Integer_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="vcvtdq2pd--evex-encoded-versions--when-src-operand-is-a-memory-source">VCVTDQ2PD (EVEX Encoded Versions) When SRC Operand is a Memory Source<a class="anchor" href="#vcvtdq2pd--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_Integer_To_Double_Precision_Floating_Point(SRC[31:0])
|
||
ELSE
|
||
DEST[i+63:i] :=
|
||
Convert_Integer_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="vcvtdq2pd--vex-256-encoded-version-">VCVTDQ2PD (VEX.256 Encoded Version)<a class="anchor" href="#vcvtdq2pd--vex-256-encoded-version-">
|
||
¶
|
||
</a></h3>
|
||
<pre>DEST[63:0] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[31:0])
|
||
DEST[127:64] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[63:32])
|
||
DEST[191:128] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[95:64])
|
||
DEST[255:192] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[127:96)
|
||
DEST[MAXVL-1:256] := 0
|
||
</pre>
|
||
<h3 id="vcvtdq2pd--vex-128-encoded-version-">VCVTDQ2PD (VEX.128 Encoded Version)<a class="anchor" href="#vcvtdq2pd--vex-128-encoded-version-">
|
||
¶
|
||
</a></h3>
|
||
<pre>DEST[63:0] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[31:0])
|
||
DEST[127:64] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[63:32])
|
||
DEST[MAXVL-1:128] := 0
|
||
</pre>
|
||
<h3 id="cvtdq2pd--128-bit-legacy-sse-version-">CVTDQ2PD (128-bit Legacy SSE Version)<a class="anchor" href="#cvtdq2pd--128-bit-legacy-sse-version-">
|
||
¶
|
||
</a></h3>
|
||
<pre>DEST[63:0] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[31:0])
|
||
DEST[127:64] := Convert_Integer_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>VCVTDQ2PD __m512d _mm512_cvtepi32_pd( __m256i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m512d _mm512_mask_cvtepi32_pd( __m512d s, __mmask8 k, __m256i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m512d _mm512_maskz_cvtepi32_pd( __mmask8 k, __m256i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m256d _mm256_cvtepi32_pd (__m128i src);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m256d _mm256_mask_cvtepi32_pd( __m256d s, __mmask8 k, __m256i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m256d _mm256_maskz_cvtepi32_pd( __mmask8 k, __m256i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m128d _mm_mask_cvtepi32_pd( __m128d s, __mmask8 k, __m128i a);
|
||
</pre>
|
||
<pre>VCVTDQ2PD __m128d _mm_maskz_cvtepi32_pd( __mmask8 k, __m128i a);
|
||
</pre>
|
||
<pre>CVTDQ2PD __m128d _mm_cvtepi32_pd (__m128i src)
|
||
</pre>
|
||
<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-22</span>, “Type 5 Class Exception Conditions.”</p>
|
||
<p>EVEX-encoded instructions, see <span class="not-imported">Table 2-51</span>, “Type E5 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>
|