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

282 lines
23 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>CVTTPD2DQ
— Convert with Truncation Packed Double Precision Floating-Point Values toPacked Doubleword Integers</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>CVTTPD2DQ
— Convert with Truncation Packed Double Precision Floating-Point Values toPacked Doubleword Integers</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>66 0F E6 /r CVTTPD2DQ 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 using truncation.</td></tr>
<tr>
<td>VEX.128.66.0F.WIG E6 /r VCVTTPD2DQ 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 using truncation.</td></tr>
<tr>
<td>VEX.256.66.0F.WIG E6 /r VCVTTPD2DQ 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 using truncation.</td></tr>
<tr>
<td>EVEX.128.66.0F.W1 E6 /r VCVTTPD2DQ 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 using truncation subject to writemask k1.</td></tr>
<tr>
<td>EVEX.256.66.0F.W1 E6 /r VCVTTPD2DQ 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 using truncation subject to writemask k1.</td></tr>
<tr>
<td>EVEX.512.66.0F.W1 E6 /r VCVTTPD2DQ ymm1 {k1}{z}, zmm2/m512/m64bcst{sae}</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 using truncation 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 two, four or eight packed double precision floating-point values in the source operand (second operand) to two, four or eight packed signed doubleword integers in the destination operand (first operand).</p>
<p>When a conversion is inexact, a truncated (round toward zero) value is returned. If a converted result is larger than the maximum signed doubleword integer, the floating-point invalid exception is raised, and if this exception is masked, the indefinite integer value (80000000H) is returned.</p>
<p>EVEX encoded versions: The source operand is a ZMM/YMM/XMM register, a 512/256/128-bit memory location, or a 512/256/128-bit vector broadcasted from a 64-bit memory location. The destination operand is a YMM/XMM/XMM (low 64 bits) register conditionally updated with writemask k1. The upper bits (MAXVL-1:256) 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. 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-15">
<svg style="width: 475.848pt; height: 191.51997599999996pt" viewBox="100.7 0.0 401.54 164.59997999999996">
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
<rect height="158.64000000000001" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.2" y="0.479979999999955"></rect>
<rect height="158.64000000000001" 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="159.12"></rect>
<path d="M 285.96 105.71997999999996 L 287.46 101.69997999999998 L 287.7 101.09997999999996 L 288.23999999999995 101.51997999999992 L 300.71999999999997 110.81997999999999 L 302.09999999999997 111.83997999999997 L 300.35999999999996 111.71997999999996 L 284.82 110.45997999999997 L 284.15999999999997 110.33997999999997 L 284.4 109.73997999999995 L 284.88 109.43997999999999 L 300.41999999999996 110.69997999999998 L 300.35999999999996 111.71997999999996 L 300.06 111.59997999999996 L 287.58 102.29998 L 288.23999999999995 101.51997999999992 L 288.35999999999996 102.05998 L 286.85999999999996 106.07997999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 284.40000000000003 109.73997999999995 L 285.96000000000004 105.71997999999996 L 286.86 106.07997999999998 L 285.3 110.09997999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 286.38 105.89997999999991 L 287.88 101.87997999999993 L 300.36 111.17997999999989 L 284.82 109.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 167.46 60.29997999999989 L 166.74 62.159979999999905 L 285.54 106.67997999999989 L 286.26 104.81997999999987" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.56" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="393.24" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="393.24" y="111.53993999999989"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="430.08" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="393.0" y="125.09993999999995"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="393.0" y="111.53998000000001"></rect>
<path d="M 404.94 96.35997999999995 L 405.3 96.11997999999994 C 405.972 95.57398 405.486 94.32398 404.52 94.37997999999993L 404.28 94.43997999999999 L 404.1 94.49997999999994 C 403.318 95.08897999999999 403.526 96.23597999999993 404.52 96.4199799999999L 404.76 96.35997999999995 L 404.94 96.35997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 404.58 95.39997999999991 L 408.65999999999997 94.01997999999992 L 409.32 93.89997999999991 L 409.38 94.49997999999994 L 410.03999999999996 110.09997999999996 L 410.09999999999997 111.83997999999997 L 409.08 110.39997999999991 L 400.26 97.49997999999994 L 399.9 96.95997999999986 L 400.5 96.71997999999996 L 401.09999999999997 96.95997999999986 L 409.91999999999996 109.85997999999995 L 409.08 110.39997999999991 L 409.02 110.1599799999999 L 408.35999999999996 94.55997999999988 L 409.38 94.49997999999994 L 409.02 95.0399799999999 L 404.94 96.4199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 400.5 96.71997999999996 L 404.58 95.39997999999991 L 404.94 96.41998000000001 L 400.86 97.73997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 404.76 95.87997999999993 L 408.84 94.49997999999994 L 409.5 110.09997999999996 L 400.68 97.19997999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 394.20000000000005 60.899979999999914 L 392.34000000000003 61.49997999999994 L 403.74000000000007 95.69997999999987 L 405.6 95.09997999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 361.86 99.89997999999991 L 361.98 99.71997999999996 L 362.1 99.5399799999999 C 362.41700000000003 98.61097999999993 361.55400000000003 97.83597999999995 360.66 98.27997999999991L 360.48 98.39997999999991 L 360.36 98.57997999999986 C 359.802 99.29897999999991 360.54 100.44797999999992 361.5 100.07997999999986L 361.68 100.01997999999992 L 361.86 99.89997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 361.20000000000005 99.17997999999989 L 364.32000000000005 96.23997999999983 L 364.80000000000007 95.81997999999987 L 365.1 96.4199799999999 L 372.18000000000006 110.27997999999991 L 372.96000000000004 111.83997999999985 L 371.46000000000004 110.93997999999988 L 358.14000000000004 102.95997999999986 L 357.6 102.59997999999985 L 358.08000000000004 102.11997999999994 L 358.62000000000006 102.05997999999988 L 371.94000000000005 110.0399799999999 L 371.46000000000004 110.93997999999988 L 371.28000000000003 110.69997999999987 L 364.20000000000005 96.83997999999985 L 365.1 96.4199799999999 L 364.98 97.01997999999992 L 361.86000000000007 99.95997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 358.08 102.11997999999994 L 361.2 99.17997999999989 L 361.85999999999996 99.95997999999997 L 358.74 102.89997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 361.5 99.5399799999999 L 364.62 96.59997999999985 L 371.7 110.45997999999986 L 358.38 102.47997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 326.46 60.5399799999999 L 325.02 61.919979999999896 L 360.41999999999996 99.89997999999991 L 361.85999999999996 98.51997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 324.96 103.9199799999999 L 325.02 103.67997999999989 L 325.08 103.49997999999994 C 325.229 102.52797999999984 323.82599999999996 102.02297999999985 323.34 102.77997999999991L 323.21999999999997 102.89997999999991 L 323.15999999999997 103.07997999999986 L 323.09999999999997 103.31997999999987 L 323.09999999999997 103.67997999999989 L 323.21999999999997 103.85997999999995 L 323.28 104.0399799999999 L 323.46 104.1599799999999 L 323.58 104.27997999999991 C 324.113 104.45197999999993 324.04999999999995 104.45097999999984 324.53999999999996 104.27997999999991L 324.71999999999997 104.21997999999985 L 324.84 104.0399799999999 L 324.96 103.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 324.12 103.43997999999988 L 326.52 99.11997999999983 L 327.06 99.5399799999999 L 337.98 110.57997999999986 L 339.24 111.83997999999985 L 337.56 111.4199799999999 L 322.38 107.87997999999993 L 321.72 107.75997999999993 L 322.02 107.1599799999999 L 322.56 106.9199799999999 L 337.74 110.45997999999986 L 337.56 111.4199799999999 L 337.26 111.29997999999989 L 326.28000000000003 100.25997999999993 L 327.06 99.5399799999999 L 327.12 100.13997999999992 L 325.02 103.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 322.02 107.1599799999999 L 324.12 103.43997999999988 L 325.02 103.9199799999999 L 322.91999999999996 107.63997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 324.54 103.67997999999989 L 326.64000000000004 99.89997999999991 L 337.62 110.93997999999988 L 322.44 107.39997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 248.58 60.35997999999995 L 247.62 62.09997999999996 L 323.58000000000004 104.27997999999991 L 324.54 102.5399799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.56" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="356.1" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="356.1" y="111.53993999999989"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="393.0" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="355.86" y="125.09993999999995"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="111.53998000000001"></rect>
<rect height="13.56" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="318.96" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="318.96" y="111.53993999999989"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="318.72" y="125.09993999999995"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="318.72" y="111.53998000000001"></rect>
<rect height="13.56" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="281.82" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="281.82" y="111.53993999999989"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="318.72" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="281.58" y="125.09993999999995"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="111.53998000000001"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="356.1" y="47.69997999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="356.1" y="47.45999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="430.08" y="47.69997999999987"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="355.86" y="60.95999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="47.45997999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="133.32" y="47.69997999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="133.32" y="47.45999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="207.36" y="47.69997999999987"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="133.08" y="60.95999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="133.08" y="47.45997999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.22" x="207.60000000000002" y="47.69997999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.60000000000002" y="47.45999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="47.69997999999987"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.46000000000001" x="207.36" y="60.95999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="207.36" y="47.45997999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="74.28" x="281.82" y="47.69997999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.82" y="47.45999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="355.86" y="47.69997999999987"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="74.52" x="281.58" y="60.95999999999992"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="281.58" y="47.45997999999997"></rect>
<rect height="13.56" style="fill: rgb(100%, 100%, 100%)" width="145.5" x="135.42000000000002" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="145.74" x="135.42000000000002" y="111.53993999999989"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="280.68" y="111.77998000000002"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="145.74" x="135.18" y="125.09993999999995"></rect>
<rect height="13.8" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="135.18" y="111.53998000000001"></rect>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="10.438853099999989" x="113.10000000000001" y="57.811307159999956">SR</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="156.96" y="57.81087779999996">X3</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="241.32" y="57.81087779999996">X2</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.904170745989461" x="315.66" y="57.88388926322614">X1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="9.844471945989483" x="389.81834685000007" y="57.88388926322614">X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.02495481999999" x="113.10000000000001" y="121.95087779999994">DEST</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000001pt; fill: #000" textLength="4.192128800000006" x="204.9" y="121.95087779999992">0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="120.5321667" x="292.92" y="121.95087779999994">X3 X2 X1 X0</text></g></svg>
<figcaption><a href='cvttpd2dq.html#fig-3-15'>Figure 3-15</a>. VCVTTPD2DQ (VEX.256 encoded version)</figcaption></figure>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="vcvttpd2dq--evex-encoded-versions--when-src-operand-is-a-register">VCVTTPD2DQ (EVEX Encoded Versions) When SRC Operand is a Register<a class="anchor" href="#vcvttpd2dq--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 * 32
k := j * 64
IF k1[j] OR *no writemask*
THEN DEST[i+31:i] :=
Convert_Double_Precision_Floating_Point_To_Integer_Truncate(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="vcvttpd2dq--evex-encoded-versions--when-src-operand-is-a-memory-source">VCVTTPD2DQ (EVEX Encoded Versions) When SRC Operand is a Memory Source<a class="anchor" href="#vcvttpd2dq--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_Truncate(SRC[63:0])
ELSE
DEST[i+31:i] :=
Convert_Double_Precision_Floating_Point_To_Integer_Truncate(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="vcvttpd2dq--vex-256-encoded-version-">VCVTTPD2DQ (VEX.256 Encoded Version)<a class="anchor" href="#vcvttpd2dq--vex-256-encoded-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[127:64])
DEST[95:64] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[191:128])
DEST[127:96] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[255:192)
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="vcvttpd2dq--vex-128-encoded-version-">VCVTTPD2DQ (VEX.128 Encoded Version)<a class="anchor" href="#vcvttpd2dq--vex-128-encoded-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[127:64])
DEST[MAXVL-1:64] := 0
</pre>
<h3 id="cvttpd2dq--128-bit-legacy-sse-version-">CVTTPD2DQ (128-bit Legacy SSE Version)<a class="anchor" href="#cvttpd2dq--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[31:0] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(SRC[63:0])
DEST[63:32] := Convert_Double_Precision_Floating_Point_To_Integer_Truncate(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>VCVTTPD2DQ __m256i _mm512_cvttpd_epi32( __m512d a);
</pre>
<pre>VCVTTPD2DQ __m256i _mm512_mask_cvttpd_epi32( __m256i s, __mmask8 k, __m512d a);
</pre>
<pre>VCVTTPD2DQ __m256i _mm512_maskz_cvttpd_epi32( __mmask8 k, __m512d a);
</pre>
<pre>VCVTTPD2DQ __m256i _mm512_cvtt_roundpd_epi32( __m512d a, int sae);
</pre>
<pre>VCVTTPD2DQ __m256i _mm512_mask_cvtt_roundpd_epi32( __m256i s, __mmask8 k, __m512d a, int sae);
</pre>
<pre>VCVTTPD2DQ __m256i _mm512_maskz_cvtt_roundpd_epi32( __mmask8 k, __m512d a, int sae);
</pre>
<pre>VCVTTPD2DQ __m128i _mm256_mask_cvttpd_epi32( __m128i s, __mmask8 k, __m256d a);
</pre>
<pre>VCVTTPD2DQ __m128i _mm256_maskz_cvttpd_epi32( __mmask8 k, __m256d a);
</pre>
<pre>VCVTTPD2DQ __m128i _mm_mask_cvttpd_epi32( __m128i s, __mmask8 k, __m128d a);
</pre>
<pre>VCVTTPD2DQ __m128i _mm_maskz_cvttpd_epi32( __mmask8 k, __m128d a);
</pre>
<pre>VCVTTPD2DQ __m128i _mm256_cvttpd_epi32 (__m256d src);
</pre>
<pre>CVTTPD2DQ __m128i _mm_cvttpd_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>VEX-encoded instructions, 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>