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

289 lines
23 KiB
HTML
Raw Permalink 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>CVTPD2DQ
— Convert Packed Double Precision Floating-Point Values to Packed DoublewordIntegers</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>CVTPD2DQ
— Convert Packed Double Precision Floating-Point Values to Packed DoublewordIntegers</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>F2 0F E6 /r CVTPD2DQ xmm1, xmm2/m128</td>
<td>A</td>
<td>V/V</td>
<td>SSE2</td>
<td>Convert two packed double precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1.</td></tr>
<tr>
<td>VEX.128.F2.0F.WIG E6 /r VCVTPD2DQ xmm1, xmm2/m128</td>
<td>A</td>
<td>V/V</td>
<td>AVX</td>
<td>Convert two packed double precision floating-point values in xmm2/mem to two signed doubleword integers in xmm1.</td></tr>
<tr>
<td>VEX.256.F2.0F.WIG E6 /r VCVTPD2DQ xmm1, ymm2/m256</td>
<td>A</td>
<td>V/V</td>
<td>AVX</td>
<td>Convert four packed double precision floating-point values in ymm2/mem to four signed doubleword integers in xmm1.</td></tr>
<tr>
<td>EVEX.128.F2.0F.W1 E6 /r VCVTPD2DQ xmm1 {k1}{z}, xmm2/m128/m64bcst</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Convert two packed double precision floating-point values in xmm2/m128/m64bcst to two signed doubleword integers in xmm1 subject to writemask k1.</td></tr>
<tr>
<td>EVEX.256.F2.0F.W1 E6 /r VCVTPD2DQ xmm1 {k1}{z}, ymm2/m256/m64bcst</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Convert four packed double precision floating-point values in ymm2/m256/m64bcst to four signed doubleword integers in xmm1 subject to writemask k1.</td></tr>
<tr>
<td>EVEX.512.F2.0F.W1 E6 /r VCVTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{er}</td>
<td>B</td>
<td>V/V</td>
<td>AVX512F</td>
<td>Convert eight packed double precision floating-point values in zmm2/m512/m64bcst to eight signed doubleword integers in ymm1 subject to 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>Full</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 packed double precision floating-point values in the source operand (second operand) to packed signed doubleword integers in the destination operand (first operand).</p>
<p>When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register or the embedded rounding control bits. If a converted result cannot be represented in the destination format, the floating-point invalid exception is raised, and if this exception is masked, the indefinite integer value (2<sup>w</sup>-1, where w represents the number of bits in the destination format) is returned.</p>
<p>EVEX encoded versions: The source operand is a ZMM/YMM/XMM register, a 512-bit memory location, or a 512-bit vector broadcasted from a 64-bit memory location. The destination operand is a ZMM/YMM/XMM register conditionally updated with writemask k1. The upper bits (MAXVL-1:256/128/64) of the corresponding destination are zeroed.</p>
<p>VEX.256 encoded version: The source operand is a YMM register or 256- bit memory location. The destination operand is an XMM register. The upper bits (MAXVL-1:128) of the corresponding ZMM register destination are zeroed.</p>
<p>VEX.128 encoded version: The source operand is an XMM register or 128- bit memory location. The destination operand is a XMM register. The upper bits (MAXVL-1:64) of the corresponding ZMM register destination are zeroed.</p>
<p>128-bit Legacy SSE version: The source operand is an XMM register or 128- bit memory location. The destination operand is an XMM register. Bits[127:64] of the destination XMM register are zeroed. However, 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-12">
<svg style="width: 475.848pt; height: 151.0559759999999pt" viewBox="100.7 0.0 401.54 130.87997999999993">
<g xmlns="http://www.w3.org/2000/svg" style="stroke: none; fill: none">
<rect height="124.92" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.2" y="0.479979999999955"></rect>
<rect height="124.92" 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="125.39999999999998"></rect>
<path d="M 285.96 88.55997999999988 L 287.46 84.5399799999999 L 287.7 83.93997999999988 L 288.23999999999995 84.35997999999984 L 300.71999999999997 93.6599799999999 L 302.09999999999997 94.67997999999989 L 300.35999999999996 94.55997999999988 L 284.82 93.29997999999989 L 284.15999999999997 93.17997999999989 L 284.4 92.57997999999986 L 284.88 92.27997999999991 L 300.41999999999996 93.5399799999999 L 300.35999999999996 94.55997999999988 L 300.06 94.43997999999988 L 287.58 85.13997999999992 L 288.23999999999995 84.35997999999984 L 288.35999999999996 84.89997999999991 L 286.85999999999996 88.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 284.40000000000003 92.57997999999998 L 285.96000000000004 88.55998 L 286.86 88.91998000000001 L 285.3 92.93997999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 286.38 88.73997999999995 L 287.88 84.71997999999996 L 300.36 94.01997999999992 L 284.82 92.75997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 167.46 43.07997999999998 L 166.74 44.93997999999999 L 285.54 89.51997999999992 L 286.26 87.65998000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="393.24" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="393.24" y="94.38"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="430.08" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="393.0" y="107.88"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="393.0" y="94.37997999999993"></rect>
<path d="M 404.94 79.13997999999992 L 405.12 79.07997999999998 L 405.3 78.95997999999997 L 405.42 78.83997999999997 L 405.54 78.6599799999999 L 405.6 78.47997999999995 L 405.6 78.11997999999994 L 405.54 77.87997999999993 L 405.48 77.69997999999987 C 405.043 77.18997999999988 405.364 77.47197999999992 404.7 77.21997999999996L 404.52 77.21997999999996 L 404.28 77.27997999999991 L 404.1 77.33997999999997 L 403.98 77.45997999999997 L 403.8 77.57997999999998 L 403.68 77.93997999999988 L 403.62 78.11997999999994 L 403.62 78.35997999999995 L 403.68 78.5399799999999 C 403.727 78.8329799999999 404.047 79.15297999999996 404.34 79.19997999999987L 404.76 79.19997999999987 L 404.94 79.13997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 404.58 78.17997999999989 L 408.65999999999997 76.85997999999984 L 409.32 76.73997999999983 L 409.38 77.33997999999985 L 410.03999999999996 92.93997999999988 L 410.09999999999997 94.67997999999989 L 409.08 93.23997999999983 L 400.26 80.33997999999985 L 399.9 79.79997999999989 L 400.5 79.55997999999988 L 401.09999999999997 79.79997999999989 L 409.91999999999996 92.69997999999987 L 409.08 93.23997999999983 L 409.02 92.99997999999994 L 408.35999999999996 77.39997999999991 L 409.38 77.33997999999985 L 409.02 77.87997999999993 L 404.94 79.19997999999987" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 400.5 79.55997999999988 L 404.58 78.17997999999989 L 404.94 79.19997999999987 L 400.86 80.57997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 404.76 78.6599799999999 L 408.84 77.33997999999985 L 409.5 92.93997999999988 L 400.68 80.0399799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 394.20000000000005 43.67997999999989 L 392.34000000000003 44.27997999999991 L 403.74000000000007 78.5399799999999 L 405.6 77.93997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 361.86 82.73997999999995 L 362.1 82.37997999999993 C 362.41700000000003 81.45097999999996 361.553 80.67597999999998 360.66 81.11997999999994L 360.48 81.23997999999995 L 360.36 81.4199799999999 C 359.802 82.13897999999995 360.54 83.28797999999995 361.5 82.9199799999999L 361.68 82.85997999999995 L 361.86 82.73997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 361.20000000000005 81.95997999999997 L 364.32000000000005 79.07997999999998 L 364.80000000000007 78.65998000000002 L 365.1 79.25997999999993 L 372.18000000000006 93.11997999999994 L 372.96000000000004 94.67998 L 371.46000000000004 93.77998000000002 L 358.14000000000004 85.73997999999995 L 357.6 85.37997999999993 L 358.08000000000004 84.89998000000003 L 358.62000000000006 84.83997999999997 L 371.94000000000005 92.87997999999993 L 371.46000000000004 93.77998000000002 L 371.28000000000003 93.53998000000001 L 364.20000000000005 79.67998 L 365.1 79.25997999999993 L 364.98 79.85997999999995 L 361.86000000000007 82.73997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 358.08 84.89997999999991 L 361.2 81.95997999999986 L 361.85999999999996 82.73997999999995 L 358.74 85.67997999999989" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 361.5 82.31997999999999 L 364.62 79.43997999999999 L 371.7 93.29998 L 358.38 85.25998000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 326.46 43.31997999999999 L 325.02 44.69997999999998 L 360.41999999999996 82.67998 L 361.85999999999996 81.29998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 324.96 86.69997999999998 L 325.02 86.51998000000003 L 325.08 86.33997999999997 C 325.19 85.30097999999998 323.916 84.90098 323.34 85.55998L 323.21999999999997 85.73997999999995 L 323.15999999999997 85.91998000000001 C 322.789 86.83897999999999 323.96 87.66197999999997 324.71999999999997 86.99997999999994L 324.84 86.87997999999993 L 324.96 86.69997999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 324.12 86.21997999999996 L 326.22 82.49997999999994 L 326.58 81.95997999999997 L 327.06 82.37997999999993 L 337.98 93.41998000000001 L 339.24 94.67998 L 337.56 94.25997999999993 L 322.38 90.71997999999996 L 321.72 90.59997999999996 L 322.02 89.99997999999994 L 322.56 89.75997999999993 L 337.74 93.29998 L 337.56 94.25997999999993 L 337.26 94.13997999999992 L 326.28000000000003 83.09997999999996 L 327.06 82.37997999999993 L 327.12 82.97997999999995 L 325.02 86.69997999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 322.02 89.99997999999994 L 324.12 86.21997999999996 L 325.02 86.69997999999998 L 322.91999999999996 90.47997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 324.54 86.45997999999997 L 326.64000000000004 82.73997999999995 L 337.62 93.77998000000002 L 322.44 90.23997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 248.58 43.13997999999992 L 247.62 44.87997999999993 L 323.58000000000004 87.11997999999994 L 324.54 85.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="356.1" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="356.1" y="94.38"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="393.0" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="355.86" y="107.88"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="94.37997999999993"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="318.96" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="318.96" y="94.38"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="318.72" y="107.88"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="318.72" y="94.37997999999993"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="281.82" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="281.82" y="94.38"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="318.72" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="281.58" y="107.88"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="94.37997999999993"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="356.1" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="356.1" y="30.24000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="430.08" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="355.86" y="43.74000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="30.239979999999946"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="133.32" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="133.32" y="30.24000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="207.36" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="133.08" y="43.74000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="133.08" y="30.239979999999946"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="207.60000000000002" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.60000000000002" y="30.24000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.36" y="43.74000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="207.36" y="30.239979999999946"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="281.82" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.82" y="30.24000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="30.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.58" y="43.74000000000001"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="30.239979999999946"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="145.5" x="135.42000000000002" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="145.74" x="135.42000000000002" y="94.38"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="280.68" y="94.61997999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="145.74" x="135.18" y="107.88"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="135.18" y="94.37997999999993"></rect>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="10.438853099999989" x="113.10000000000001" y="40.650871579999944">SR</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="156.96" y="40.650877799999876">X3</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="241.32" y="40.650877799999876">X2</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.904170745989461" x="315.66" y="40.723889263226056">X1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.844471945989483" x="389.81834685000007" y="40.723889263226056">X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.02495481999999" x="113.10000000000001" y="104.73087779999992">DEST</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000001pt; fill: #000" textLength="4.192128800000006" x="204.9" y="104.73087779999989">0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="120.5321667" x="292.92" y="104.73087779999992">X3 X2 X1 X0</text></g></svg>
<figcaption><a href='cvtpd2dq.html#fig-3-12'>Figure 3-12</a>. VCVTPD2DQ (VEX.256 encoded version)</figcaption></figure>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="vcvtpd2dq--evex-encoded-versions--when-src-operand-is-a-register">VCVTPD2DQ (EVEX Encoded Versions) When SRC Operand is a Register<a class="anchor" href="#vcvtpd2dq--evex-encoded-versions--when-src-operand-is-a-register">
</a></h3>
<pre>(KL, VL) = (2, 128), (4, 256), (8, 512)
IF (VL = 512) AND (EVEX.b = 1)
THEN
SET_ROUNDING_MODE_FOR_THIS_INSTRUCTION(EVEX.RC);
ELSE
SET_ROUNDING_MODE_FOR_THIS_INSTRUCTION(MXCSR.RC);
FI;
FOR j := 0 TO KL-1
i := j * 32
k := j * 64
IF k1[j] OR *no writemask*
THEN DEST[i+31:i] :=
Convert_Double_Precision_Floating_Point_To_Integer(SRC[k+63:k])
ELSE
IF *merging-masking* ; merging-masking
THEN *DEST[i+31:i] remains unchanged*
ELSE
; zeroing-masking
DEST[i+31:i] := 0
FI
FI;
ENDFOR
DEST[MAXVL-1:VL/2] := 0
</pre>
<h3 id="vcvtpd2dq--evex-encoded-versions--when-src-operand-is-a-memory-source">VCVTPD2DQ (EVEX Encoded Versions) When SRC Operand is a Memory Source<a class="anchor" href="#vcvtpd2dq--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 * 32
k := j * 64
IF k1[j] OR *no writemask*
THEN
IF (EVEX.b = 1)
THEN
DEST[i+31:i] :=
Convert_Double_Precision_Floating_Point_To_Integer(SRC[63:0])
ELSE
DEST[i+31:i] :=
Convert_Double_Precision_Floating_Point_To_Integer(SRC[k+63:k])
FI;
ELSE
IF *merging-masking* ; merging-masking
THEN *DEST[i+31:i] remains unchanged*
ELSE ; zeroing-masking
DEST[i+31:i] := 0
FI
FI;
ENDFOR
DEST[MAXVL-1:VL/2] := 0
</pre>
<h3 id="vcvtpd2dq--vex-256-encoded-version-">VCVTPD2DQ (VEX.256 Encoded Version)<a class="anchor" href="#vcvtpd2dq--vex-256-encoded-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[127:64])
DEST[95:64] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[191:128])
DEST[127:96] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[255:192)
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="vcvtpd2dq--vex-128-encoded-version-">VCVTPD2DQ (VEX.128 Encoded Version)<a class="anchor" href="#vcvtpd2dq--vex-128-encoded-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[127:64])
DEST[MAXVL-1:64] := 0
</pre>
<h3 id="cvtpd2dq--128-bit-legacy-sse-version-">CVTPD2DQ (128-bit Legacy SSE Version)<a class="anchor" href="#cvtpd2dq--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer(SRC[127:64])
DEST[127:64] := 0
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>VCVTPD2DQ __m256i _mm512_cvtpd_epi32( __m512d a);
</pre>
<pre>VCVTPD2DQ __m256i _mm512_mask_cvtpd_epi32( __m256i s, __mmask8 k, __m512d a);
</pre>
<pre>VCVTPD2DQ __m256i _mm512_maskz_cvtpd_epi32( __mmask8 k, __m512d a);
</pre>
<pre>VCVTPD2DQ __m256i _mm512_cvt_roundpd_epi32( __m512d a, int r);
</pre>
<pre>VCVTPD2DQ __m256i _mm512_mask_cvt_roundpd_epi32( __m256i s, __mmask8 k, __m512d a, int r);
</pre>
<pre>VCVTPD2DQ __m256i _mm512_maskz_cvt_roundpd_epi32( __mmask8 k, __m512d a, int r);
</pre>
<pre>VCVTPD2DQ __m128i _mm256_mask_cvtpd_epi32( __m128i s, __mmask8 k, __m256d a);
</pre>
<pre>VCVTPD2DQ __m128i _mm256_maskz_cvtpd_epi32( __mmask8 k, __m256d a);
</pre>
<pre>VCVTPD2DQ __m128i _mm_mask_cvtpd_epi32( __m128i s, __mmask8 k, __m128d a);
</pre>
<pre>VCVTPD2DQ __m128i _mm_maskz_cvtpd_epi32( __mmask8 k, __m128d a);
</pre>
<pre>VCVTPD2DQ __m128i _mm256_cvtpd_epi32 (__m256d src)
</pre>
<pre>CVTPD2DQ __m128i _mm_cvtpd_epi32 (__m128d src)
</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, Precision.</p>
<h2 class="exceptions" id="other-exceptions">Other Exceptions<a class="anchor" href="#other-exceptions">
</a></h2>
<p>See <span class="not-imported">Table 2-19</span>, “Type 2 Class Exception Conditions.”</p>
<p>EVEX-encoded instructions, see <span class="not-imported">Table 2-46</span>, “Type E2 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>