328 lines
29 KiB
HTML
328 lines
29 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>MOVSLDUP
|
|||
|
— Replicate Single Precision Floating-Point Values</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>MOVSLDUP
|
|||
|
— Replicate Single Precision Floating-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>F3 0F 12 /r MOVSLDUP xmm1, xmm2/m128</td>
|
|||
|
<td>A</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>SSE3</td>
|
|||
|
<td>Move even index single precision floating-point values from xmm2/mem and duplicate each element into xmm1.</td></tr>
|
|||
|
<tr>
|
|||
|
<td>VEX.128.F3.0F.WIG 12 /r VMOVSLDUP xmm1, xmm2/m128</td>
|
|||
|
<td>A</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>AVX</td>
|
|||
|
<td>Move even index single precision floating-point values from xmm2/mem and duplicate each element into xmm1.</td></tr>
|
|||
|
<tr>
|
|||
|
<td>VEX.256.F3.0F.WIG 12 /r VMOVSLDUP ymm1, ymm2/m256</td>
|
|||
|
<td>A</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>AVX</td>
|
|||
|
<td>Move even index single precision floating-point values from ymm2/mem and duplicate each element into ymm1.</td></tr>
|
|||
|
<tr>
|
|||
|
<td>EVEX.128.F3.0F.W0 12 /r VMOVSLDUP xmm1 {k1}{z}, xmm2/m128</td>
|
|||
|
<td>B</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>AVX512VL AVX512F</td>
|
|||
|
<td>Move even index single precision floating-point values from xmm2/m128 and duplicate each element into xmm1 under writemask.</td></tr>
|
|||
|
<tr>
|
|||
|
<td>EVEX.256.F3.0F.W0 12 /r VMOVSLDUP ymm1 {k1}{z}, ymm2/m256</td>
|
|||
|
<td>B</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>AVX512VL AVX512F</td>
|
|||
|
<td>Move even index single precision floating-point values from ymm2/m256 and duplicate each element into ymm1 under writemask.</td></tr>
|
|||
|
<tr>
|
|||
|
<td>EVEX.512.F3.0F.W0 12 /r VMOVSLDUP zmm1 {k1}{z}, zmm2/m512</td>
|
|||
|
<td>B</td>
|
|||
|
<td>V/V</td>
|
|||
|
<td>AVX512F</td>
|
|||
|
<td>Move even index single precision floating-point values from zmm2/m512 and duplicate each element into zmm1 under writemask.</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 Mem</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>Duplicates even-indexed single precision floating-point values from the source operand (the second operand). See <a href='movsldup.html#fig-4-4'>Figure 4-4</a>. The source operand is an XMM, YMM or ZMM register or 128, 256 or 512-bit memory location and the destination operand is an XMM, YMM or ZMM register.</p>
|
|||
|
<p>128-bit Legacy SSE version: Bits (MAXVL-1:128) of the corresponding destination register remain unchanged.</p>
|
|||
|
<p>VEX.128 encoded version: Bits (MAXVL-1:128) of the destination register are zeroed.</p>
|
|||
|
<p>VEX.256 encoded version: Bits (MAXVL-1:256) of the destination register are zeroed.</p>
|
|||
|
<p>EVEX encoded version: The destination operand is updated at 32-bit granularity according to the writemask.</p>
|
|||
|
<p>Note: VEX.vvvv and EVEX.vvvv are reserved and must be 1111b otherwise instructions will #UD.</p>
|
|||
|
<figure id="fig-4-4">
|
|||
|
<svg style="width: 475.848pt; height: 125.35201199999997pt" viewBox="100.7 0.0 401.54 109.46000999999998">
|
|||
|
<g xmlns="http://www.w3.org/2000/svg" style="stroke: none; fill: none">
|
|||
|
<rect height="103.5" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.2" y="0.48000999999999294"></rect>
|
|||
|
<rect height="103.5" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="499.26" y="0.48000999999999294"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="396.54" x="103.2" y="0.0"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="396.54" x="103.2" y="103.98001"></rect>
|
|||
|
<path d="M 439.86 65.46000999999998 L 444.78000000000003 65.46000999999998 L 444.6 66.12000999999998 L 440.34000000000003 81.12000999999998 L 439.86 82.80000999999999 L 439.38 81.12000999999998 L 435.06 66.12000999999998 L 434.88 65.46000999999998 L 435.54 65.46000999999998 L 436.02000000000004 65.82001 L 440.34000000000003 80.82001 L 439.38 81.12000999999998 L 439.38 80.82001 L 443.64 65.82001 L 444.6 66.12000999999998 L 444.12 66.48001 L 439.86 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="435.54" y="65.46000999999998"></rect>
|
|||
|
<path d="M 439.86 65.94001 L 444.12 65.94001 L 439.86 80.94001 L 435.54 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="36.660000000000004" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="438.90000000000003" y="28.740009999999984"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="274.44" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="274.44" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="311.34000000000003" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="274.2" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="274.2" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="237.36" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="237.36" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="274.2" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="237.12" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="237.12" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="200.22" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="200.22" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="237.12" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="199.98000000000002" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="199.98000000000002" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="163.08" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="163.08" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="199.98000000000002" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="162.84" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="162.84" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="422.94" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="422.94" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="459.84000000000003" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="422.70000000000005" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="422.70000000000005" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="385.86" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="385.86" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="422.70000000000005" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="385.62" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="385.62" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="348.72" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="348.72" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="385.62" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="348.48" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="348.48" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="311.58" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="311.58" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="348.48" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="311.34000000000003" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="311.34000000000003" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="274.44" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="274.44" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="311.34000000000003" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="274.2" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="274.2" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="237.36" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="237.36" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="274.2" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="237.12" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="237.12" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="200.22" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="200.22" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="237.12" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="199.98000000000002" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="199.98000000000002" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="163.08" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="163.08" y="82.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="199.98000000000002" y="82.74000999999998"></rect>
|
|||
|
<rect height="0.48" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="162.84" y="96.00001"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="162.84" y="82.50000999999997"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="422.94" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="422.94" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="459.84000000000003" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="422.70000000000005" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="422.70000000000005" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="385.86" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="385.86" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="422.70000000000005" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="385.62" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="385.62" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="348.72" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="348.72" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="385.62" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="348.48" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="348.48" y="15.000009999999975"></rect>
|
|||
|
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="311.58" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="311.58" y="15.0"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="348.48" y="15.240009999999984"></rect>
|
|||
|
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="311.34000000000003" y="28.5"></rect>
|
|||
|
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="311.34000000000003" y="15.000009999999975"></rect>
|
|||
|
<path d="M 406.08 66.42000999999999 L 406.32 66.42000999999999 L 406.5 66.36000999999999 C 407.412 65.85800999999998 407.276 64.76300999999998 406.32 64.44001L 405.9 64.44001 L 405.71999999999997 64.50001 L 405.35999999999996 64.74000999999998 L 405.24 64.86000999999999 L 405.18 65.04001 L 405.12 65.22001 L 405.12 65.64000999999999 L 405.18 65.82001 L 405.24 66.00001 L 405.35999999999996 66.12000999999998 L 405.71999999999997 66.36000999999999 L 405.9 66.42000999999999 L 406.08 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 406.08 65.46000999999998 L 411.06 65.46000999999998 L 410.88 66.12000999999998 L 406.56 81.12000999999998 L 406.08 82.80000999999999 L 405.59999999999997 81.12000999999998 L 401.34 66.12000999999998 L 401.15999999999997 65.46000999999998 L 401.82 65.46000999999998 L 402.3 65.82001 L 406.56 80.82001 L 405.59999999999997 81.12000999999998 L 405.59999999999997 80.82001 L 409.91999999999996 65.82001 L 410.88 66.12000999999998 L 410.4 66.48001 L 406.08 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="401.82" y="65.46000999999998"></rect>
|
|||
|
<path d="M 406.08 65.94001 L 410.4 65.94001 L 406.08 80.94001 L 401.82 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="9.66" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="405.12" y="55.740009999999984"></rect>
|
|||
|
<rect height="1.98" style="fill: rgb(0%, 0%, 0%)" width="33.78" x="406.08" y="54.780010000000004"></rect>
|
|||
|
<path d="M 365.58 66.42000999999999 L 365.82 66.42000999999999 L 366.0 66.36000999999999 L 366.12 66.24000999999998 L 366.3 66.12000999999998 L 366.41999999999996 66.00001 L 366.53999999999996 65.82001 L 366.53999999999996 65.64000999999999 L 366.59999999999997 65.40000999999998 L 366.53999999999996 65.22001 L 366.53999999999996 65.04001 L 366.41999999999996 64.86000999999999 L 366.3 64.74000999999998 L 366.12 64.62000999999998 L 366.0 64.50001 L 365.82 64.44001 L 365.4 64.44001 C 364.405 64.70300999999998 364.287 65.93800999999999 365.21999999999997 66.36000999999999L 365.4 66.42000999999999 L 365.58 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 365.58 65.46000999999998 L 370.56 65.46000999999998 L 370.38 66.12000999999998 L 366.06 81.12000999999998 L 365.58 82.80000999999999 L 365.09999999999997 81.12000999999998 L 360.84 66.12000999999998 L 360.65999999999997 65.46000999999998 L 361.32 65.46000999999998 L 361.8 65.82001 L 366.06 80.82001 L 365.09999999999997 81.12000999999998 L 365.09999999999997 80.82001 L 369.41999999999996 65.82001 L 370.38 66.12000999999998 L 369.9 66.48001 L 365.58 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="361.32" y="65.46000999999998"></rect>
|
|||
|
<path d="M 365.58 65.94001 L 369.9 65.94001 L 365.58 80.94001 L 361.32 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="36.660000000000004" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="364.62" y="28.740009999999984"></rect>
|
|||
|
<path d="M 331.86 66.42000999999999 L 332.04 66.42000999999999 L 332.22 66.36000999999999 C 333.132 65.85800999999998 332.99600000000004 64.76300999999998 332.04 64.44001L 331.62 64.44001 C 330.664 64.76300999999998 330.528 65.85800999999998 331.44 66.36000999999999L 331.62 66.42000999999999 L 331.86 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 331.86 65.46000999999998 L 336.78000000000003 65.46000999999998 L 336.6 66.12000999999998 L 332.34000000000003 81.12000999999998 L 331.86 82.80000999999999 L 331.38 81.12000999999998 L 327.06 66.12000999999998 L 326.88 65.46000999999998 L 327.54 65.46000999999998 L 328.02000000000004 65.82001 L 332.34000000000003 80.82001 L 331.38 81.12000999999998 L 331.38 80.82001 L 335.64 65.82001 L 336.6 66.12000999999998 L 336.12 66.48001 L 331.86 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="327.54" y="65.46000999999998"></rect>
|
|||
|
<path d="M 331.86 65.94001 L 336.12 65.94001 L 331.86 80.94001 L 327.54 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="9.66" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="330.90000000000003" y="55.740009999999984"></rect>
|
|||
|
<rect height="1.98" style="fill: rgb(0%, 0%, 0%)" width="33.72" x="331.86" y="54.780010000000004"></rect>
|
|||
|
<path d="M 291.36 66.42000999999999 L 291.54 66.42000999999999 L 291.72 66.36000999999999 C 292.632 65.85800999999998 292.49600000000004 64.76300999999998 291.54 64.44001L 291.12 64.44001 C 290.164 64.76300999999998 290.028 65.85800999999998 290.94 66.36000999999999L 291.12 66.42000999999999 L 291.36 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 291.36 65.46000999999998 L 296.28000000000003 65.46000999999998 L 296.1 66.12000999999998 L 291.84000000000003 81.12000999999998 L 291.36 82.80000999999999 L 290.88 81.12000999999998 L 286.56 66.12000999999998 L 286.38 65.46000999999998 L 287.04 65.46000999999998 L 287.52000000000004 65.82001 L 291.84000000000003 80.82001 L 290.88 81.12000999999998 L 290.88 80.82001 L 295.14 65.82001 L 296.1 66.12000999999998 L 295.62 66.48001 L 291.36 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="287.04" y="65.46000999999998"></rect>
|
|||
|
<path d="M 291.36 65.94001 L 295.62 65.94001 L 291.36 80.94001 L 287.04 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="36.660000000000004" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="290.40000000000003" y="28.740009999999984"></rect>
|
|||
|
<path d="M 257.58 66.42000999999999 L 257.76 66.42000999999999 L 258.0 66.36000999999999 L 258.12 66.24000999999998 L 258.3 66.12000999999998 L 258.41999999999996 66.00001 L 258.53999999999996 65.64000999999999 L 258.59999999999997 65.40000999999998 L 258.41999999999996 64.86000999999999 L 258.3 64.74000999999998 L 258.12 64.62000999999998 L 258.0 64.50001 L 257.76 64.44001 L 257.4 64.44001 C 256.405 64.70300999999998 256.287 65.93800999999999 257.21999999999997 66.36000999999999L 257.4 66.42000999999999 L 257.58 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 257.58 65.46000999999998 L 262.56 65.46000999999998 L 262.38 66.12000999999998 L 258.06 81.12000999999998 L 257.58 82.80000999999999 L 257.09999999999997 81.12000999999998 L 252.77999999999997 66.12000999999998 L 252.6 65.46000999999998 L 253.26 65.46000999999998 L 253.73999999999998 65.82001 L 258.06 80.82001 L 257.09999999999997 81.12000999999998 L 257.09999999999997 80.82001 L 261.41999999999996 65.82001 L 262.38 66.12000999999998 L 261.9 66.48001 L 257.58 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="253.26000000000002" y="65.46000999999998"></rect>
|
|||
|
<path d="M 257.58 65.94001 L 261.9 65.94001 L 257.58 80.94001 L 253.26 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="9.66" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="256.62" y="55.740009999999984"></rect>
|
|||
|
<rect height="1.98" style="fill: rgb(0%, 0%, 0%)" width="33.78" x="257.58" y="54.780010000000004"></rect>
|
|||
|
<path d="M 217.08 66.42000999999999 L 217.26000000000002 66.42000999999999 L 217.5 66.36000999999999 L 217.62 66.24000999999998 L 217.8 66.12000999999998 L 217.92000000000002 66.00001 L 218.04000000000002 65.64000999999999 L 218.10000000000002 65.40000999999998 L 217.92000000000002 64.86000999999999 L 217.8 64.74000999999998 L 217.62 64.62000999999998 L 217.5 64.50001 L 217.26000000000002 64.44001 L 216.9 64.44001 C 215.905 64.70300999999998 215.787 65.93800999999999 216.72 66.36000999999999L 216.9 66.42000999999999 L 217.08 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 217.08 65.46000999999998 L 222.06 65.46000999999998 L 221.88000000000002 66.12000999999998 L 217.56 81.12000999999998 L 217.08 82.80000999999999 L 216.60000000000002 81.12000999999998 L 212.28 66.12000999999998 L 212.10000000000002 65.46000999999998 L 212.76000000000002 65.46000999999998 L 213.24 65.82001 L 217.56 80.82001 L 216.60000000000002 81.12000999999998 L 216.60000000000002 80.82001 L 220.92000000000002 65.82001 L 221.88000000000002 66.12000999999998 L 221.4 66.48001 L 217.08 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="212.76" y="65.46000999999998"></rect>
|
|||
|
<path d="M 217.08 65.94001 L 221.4 65.94001 L 217.08 80.94001 L 212.76000000000002 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="36.660000000000004" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="216.12" y="28.740009999999984"></rect>
|
|||
|
<path d="M 183.36 66.42000999999999 L 183.54000000000002 66.42000999999999 L 183.72000000000003 66.36000999999999 C 184.632 65.85800999999998 184.496 64.76300999999998 183.54000000000002 64.44001L 183.12 64.44001 C 182.16400000000002 64.76300999999998 182.02800000000002 65.85800999999998 182.94000000000003 66.36000999999999L 183.12 66.42000999999999 L 183.36 66.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<path d="M 183.36 65.46000999999998 L 188.28 65.46000999999998 L 188.10000000000002 66.12000999999998 L 183.84 81.12000999999998 L 183.36 82.80000999999999 L 182.88000000000002 81.12000999999998 L 178.56 66.12000999999998 L 178.38000000000002 65.46000999999998 L 179.04000000000002 65.46000999999998 L 179.52 65.82001 L 183.84 80.82001 L 182.88000000000002 81.12000999999998 L 182.88000000000002 80.82001 L 187.14000000000001 65.82001 L 188.10000000000002 66.12000999999998 L 187.62 66.48001 L 183.36 66.48001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
|||
|
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="179.04" y="65.46000999999998"></rect>
|
|||
|
<path d="M 183.36 65.94001 L 187.62 65.94001 L 183.36 80.94001 L 179.04000000000002 65.94001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
|||
|
<rect height="9.66" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="182.4" y="55.740009999999984"></rect>
|
|||
|
<rect height="1.98" style="fill: rgb(0%, 0%, 0%)" width="33.72" x="183.36" y="54.780010000000004"></rect>
|
|||
|
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416799999998pt; fill: #000" textLength="269.03216670000006" x="177.54" y="25.290907799999985">X7 X6 X5 X4 X3 X2 X1 X0</text>
|
|||
|
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416799999998pt; fill: #000" textLength="15.882588700000014" x="143.09976564000002" y="26.97115131999996">SRC</text>
|
|||
|
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416799999998pt; fill: #000" textLength="303.7121667" x="142.86" y="92.85090779999999">DEST X6 X6 X4 X4 X2 X2 X0 X0</text></g></svg>
|
|||
|
<figcaption><a href='movsldup.html#fig-4-4'>Figure 4-4</a>. MOVSLDUP Operation</figcaption></figure>
|
|||
|
<h2 id="operation">Operation<a class="anchor" href="#operation">
|
|||
|
¶
|
|||
|
</a></h2>
|
|||
|
<h3 id="vmovsldup--evex-encoded-versions-">VMOVSLDUP (EVEX Encoded Versions)<a class="anchor" href="#vmovsldup--evex-encoded-versions-">
|
|||
|
¶
|
|||
|
</a></h3>
|
|||
|
<pre>(KL, VL) = (4, 128), (8, 256), (16, 512)
|
|||
|
TMP_SRC[31:0] := SRC[31:0]
|
|||
|
TMP_SRC[63:32] := SRC[31:0]
|
|||
|
TMP_SRC[95:64] := SRC[95:64]
|
|||
|
TMP_SRC[127:96] := SRC[95:64]
|
|||
|
IF VL >= 256
|
|||
|
TMP_SRC[159:128] := SRC[159:128]
|
|||
|
TMP_SRC[191:160] := SRC[159:128]
|
|||
|
TMP_SRC[223:192] := SRC[223:192]
|
|||
|
TMP_SRC[255:224] := SRC[223:192]
|
|||
|
FI;
|
|||
|
IF VL >= 512
|
|||
|
TMP_SRC[287:256] := SRC[287:256]
|
|||
|
TMP_SRC[319:288] := SRC[287:256]
|
|||
|
TMP_SRC[351:320] := SRC[351:320]
|
|||
|
TMP_SRC[383:352] := SRC[351:320]
|
|||
|
TMP_SRC[415:384] := SRC[415:384]
|
|||
|
TMP_SRC[447:416] := SRC[415:384]
|
|||
|
TMP_SRC[479:448] := SRC[479:448]
|
|||
|
TMP_SRC[511:480] := SRC[479:448]
|
|||
|
FI;
|
|||
|
FOR j := 0 TO KL-1
|
|||
|
i := j * 32
|
|||
|
IF k1[j] OR *no writemask*
|
|||
|
THEN DEST[i+31:i] := TMP_SRC[i+31:i]
|
|||
|
ELSE
|
|||
|
IF *merging-masking*
|
|||
|
THEN *DEST[i+31:i] remains unchanged*
|
|||
|
ELSE ; zeroing-masking
|
|||
|
DEST[i+31:i] := 0
|
|||
|
FI
|
|||
|
FI;
|
|||
|
ENDFOR
|
|||
|
DEST[MAXVL-1:VL] := 0
|
|||
|
</pre>
|
|||
|
<h3 id="vmovsldup--vex-256-encoded-version-">VMOVSLDUP (VEX.256 Encoded Version)<a class="anchor" href="#vmovsldup--vex-256-encoded-version-">
|
|||
|
¶
|
|||
|
</a></h3>
|
|||
|
<pre>DEST[31:0] := SRC[31:0]
|
|||
|
DEST[63:32] := SRC[31:0]
|
|||
|
DEST[95:64] := SRC[95:64]
|
|||
|
DEST[127:96] := SRC[95:64]
|
|||
|
DEST[159:128] := SRC[159:128]
|
|||
|
DEST[191:160] := SRC[159:128]
|
|||
|
DEST[223:192] := SRC[223:192]
|
|||
|
DEST[255:224] := SRC[223:192]
|
|||
|
DEST[MAXVL-1:256] := 0
|
|||
|
</pre>
|
|||
|
<h3 id="vmovsldup--vex-128-encoded-version-">VMOVSLDUP (VEX.128 Encoded Version)<a class="anchor" href="#vmovsldup--vex-128-encoded-version-">
|
|||
|
¶
|
|||
|
</a></h3>
|
|||
|
<pre>DEST[31:0] := SRC[31:0]
|
|||
|
DEST[63:32] := SRC[31:0]
|
|||
|
DEST[95:64] := SRC[95:64]
|
|||
|
DEST[127:96] := SRC[95:64]
|
|||
|
DEST[MAXVL-1:128] := 0
|
|||
|
</pre>
|
|||
|
<h3 id="movsldup--128-bit-legacy-sse-version-">MOVSLDUP (128-bit Legacy SSE Version)<a class="anchor" href="#movsldup--128-bit-legacy-sse-version-">
|
|||
|
¶
|
|||
|
</a></h3>
|
|||
|
<pre>DEST[31:0] := SRC[31:0]
|
|||
|
DEST[63:32] := SRC[31:0]
|
|||
|
DEST[95:64] := SRC[95:64]
|
|||
|
DEST[127:96] := SRC[95:64]
|
|||
|
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>VMOVSLDUP __m512 _mm512_moveldup_ps( __m512 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m512 _mm512_mask_moveldup_ps(__m512 s, __mmask16 k, __m512 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m512 _mm512_maskz_moveldup_ps( __mmask16 k, __m512 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m256 _mm256_mask_moveldup_ps(__m256 s, __mmask8 k, __m256 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m256 _mm256_maskz_moveldup_ps( __mmask8 k, __m256 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m128 _mm_mask_moveldup_ps(__m128 s, __mmask8 k, __m128 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m128 _mm_maskz_moveldup_ps( __mmask8 k, __m128 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m256 _mm256_moveldup_ps (__m256 a);
|
|||
|
</pre>
|
|||
|
<pre>VMOVSLDUP __m128 _mm_moveldup_ps (__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>None.</p>
|
|||
|
<h2 class="exceptions" id="other-exceptions">Other Exceptions<a class="anchor" href="#other-exceptions">
|
|||
|
¶
|
|||
|
</a></h2>
|
|||
|
<p>Non-EVEX-encoded instruction, see <span class="not-imported">Table 2-21</span>, “Type 4 Class Exception Conditions.”</p>
|
|||
|
<p>EVEX-encoded instruction, see Exceptions Type E4NF.nb in <span class="not-imported">Table 2-50</span>, “Type E4NF Class Exception Conditions.”</p>
|
|||
|
<p>Additionally:</p>
|
|||
|
<table>
|
|||
|
<tr>
|
|||
|
<td>#UD</td>
|
|||
|
<td>If EVEX.vvvv != 1111B or VEX.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>
|