forked from NRZCode/ia32-64
171 lines
21 KiB
HTML
171 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>VPERM2I128
|
||
— Permute Integer Values</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>VPERM2I128
|
||
— Permute Integer Values</h1>
|
||
|
||
<table>
|
||
<tr>
|
||
<th>Opcode/Instruction</th>
|
||
<th>Op/En</th>
|
||
<th>64/32 -bit Mode</th>
|
||
<th>CPUID Feature Flag</th>
|
||
<th>Description</th></tr>
|
||
<tr>
|
||
<td>VEX.256.66.0F3A.W0 46 /r ib VPERM2I128 ymm1, ymm2, ymm3/m256, imm8</td>
|
||
<td>RVMI</td>
|
||
<td>V/V</td>
|
||
<td>AVX2</td>
|
||
<td>Permute 128-bit integer data in ymm2 and ymm3/mem using controls from imm8 and store result in ymm1.</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>Operand 1</th>
|
||
<th>Operand 2</th>
|
||
<th>Operand 3</th>
|
||
<th>Operand 4</th></tr>
|
||
<tr>
|
||
<td>RVMI</td>
|
||
<td>ModRM:reg (w)</td>
|
||
<td>VEX.vvvv (r)</td>
|
||
<td>ModRM:r/m (r)</td>
|
||
<td>imm8</td></tr></table>
|
||
<h2 id="description">Description<a class="anchor" href="#description">
|
||
¶
|
||
</a></h2>
|
||
<p>Permute 128 bit integer data from the first source operand (second operand) and second source operand (third operand) using bits in the 8-bit immediate and store results in the destination operand (first operand). The first source operand is a YMM register, the second source operand is a YMM register or a 256-bit memory location, and the destination operand is a YMM register.</p>
|
||
<figure id="fig-5-22">
|
||
<svg style="width: 381.0240119999999pt; height: 149.112pt" viewBox="142.34 0.0 322.52000999999996 129.26">
|
||
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
|
||
<path d="M 255.60000000000002 104.57999999999998 L 257.1 108.65999999999997 L 257.22 109.32 L 256.62 109.38 L 241.08 110.45999999999998 L 239.34000000000003 110.57999999999998 L 240.72000000000003 109.56 L 253.32000000000002 100.38 L 253.92000000000002 99.95999999999998 L 254.16000000000003 100.56 L 253.98000000000002 101.15999999999997 L 241.38000000000002 110.33999999999997 L 240.72000000000003 109.56 L 241.02 109.44 L 256.56 108.35999999999996 L 256.62 109.38 L 256.14000000000004 109.01999999999998 L 254.64000000000001 104.94" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 254.16 100.56 L 255.6 104.57999999999998 L 254.64 104.94 L 253.2 100.92000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 255.12 104.75999999999999 L 256.62 108.83999999999997 L 241.08 109.92000000000002 L 253.68 100.74000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 388.20000000000005 57.48000000000002 L 387.54 55.620000000000005 L 255.30000000000004 103.68 L 255.96000000000004 105.54000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="313.62" y="43.01999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="42.77999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="43.01999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="56.27999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="42.77999999999997"></rect>
|
||
<path d="M 387.84000000000003 94.19999999999999 L 388.08000000000004 94.19999999999999 L 388.26000000000005 94.13999999999999 C 389.16900000000004 93.63900000000001 389.04 92.54399999999998 388.08000000000004 92.21999999999997L 387.66 92.21999999999997 C 386.70000000000005 92.54399999999998 386.571 93.63900000000001 387.48 94.13999999999999L 387.66 94.19999999999999 L 387.84000000000003 94.19999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 387.84000000000003 93.24000000000001 L 392.82000000000005 93.24000000000001 L 392.64000000000004 93.90000000000003 L 388.32000000000005 108.90000000000003 L 387.84000000000003 110.57999999999998 L 387.36 108.90000000000003 L 383.1 93.90000000000003 L 382.92 93.24000000000001 L 383.58000000000004 93.24000000000001 L 384.06000000000006 93.60000000000002 L 388.32000000000005 108.60000000000002 L 387.36 108.90000000000003 L 387.36 108.60000000000002 L 391.68 93.60000000000002 L 392.64000000000004 93.90000000000003 L 392.16 94.25999999999999 L 387.84000000000003 94.25999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="383.58" y="93.24000000000001"></rect>
|
||
<path d="M 387.84000000000003 93.71999999999997 L 392.16 93.71999999999997 L 387.84000000000003 108.71999999999997 L 383.58000000000004 93.71999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<rect height="36.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="386.88" y="56.51999999999998"></rect>
|
||
<path d="M 372.54 104.94 L 372.6 104.75999999999999 L 372.6 104.51999999999998 C 372.538 103.572 371.214 103.24599999999998 370.74 104.10000000000002L 370.68 104.27999999999997 L 370.62 104.45999999999998 C 370.519 105.45499999999998 371.54 105.964 372.36 105.30000000000001L 372.48 105.12 L 372.54 104.94" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 371.58 104.57999999999998 L 373.08 100.56 L 373.38 99.95999999999998 L 373.91999999999996 100.38 L 386.52 109.56 L 387.9 110.57999999999998 L 386.15999999999997 110.45999999999998 L 370.62 109.38 L 369.96 109.32 L 370.14 108.65999999999997 L 370.68 108.35999999999996 L 386.21999999999997 109.44 L 386.15999999999997 110.45999999999998 L 385.86 110.33999999999997 L 373.26 101.15999999999997 L 373.91999999999996 100.38 L 374.03999999999996 100.91999999999996 L 372.53999999999996 104.94" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 370.14 108.66000000000003 L 371.58 104.58000000000004 L 372.53999999999996 104.94 L 371.09999999999997 109.02000000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 372.06 104.75999999999999 L 373.56 100.74000000000001 L 386.16 109.92000000000002 L 370.62 108.83999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 239.70000000000002 55.620000000000005 L 239.04000000000002 57.48000000000002 L 371.28000000000003 105.54000000000002 L 371.94000000000005 103.68" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 239.34 94.19999999999999 L 239.58 94.19999999999999 L 239.76 94.13999999999999 C 240.669 93.63900000000001 240.54 92.54399999999998 239.58 92.21999999999997L 239.16 92.21999999999997 L 238.98 92.27999999999997 L 238.62 92.51999999999998 L 238.5 92.63999999999999 L 238.38 93.0 L 238.38 93.42000000000002 L 238.44 93.59999999999997 L 238.5 93.77999999999997 L 238.62 93.89999999999998 L 238.98 94.13999999999999 L 239.16 94.19999999999999 L 239.34 94.19999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 239.34 93.24000000000001 L 244.32 93.24000000000001 L 244.14000000000001 93.90000000000003 L 239.82 108.90000000000003 L 239.34 110.57999999999998 L 238.86 108.90000000000003 L 234.6 93.90000000000003 L 234.42000000000002 93.24000000000001 L 235.08 93.24000000000001 L 235.56 93.60000000000002 L 239.82 108.60000000000002 L 238.86 108.90000000000003 L 238.86 108.60000000000002 L 243.18 93.60000000000002 L 244.14000000000001 93.90000000000003 L 243.66 94.25999999999999 L 239.34 94.25999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="235.08" y="93.24000000000001"></rect>
|
||
<path d="M 239.34 93.71999999999997 L 243.66 93.71999999999997 L 239.34 108.71999999999997 L 235.08 93.71999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<rect height="36.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="238.38" y="56.51999999999998"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="43.01999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="42.77999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="43.01999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="56.27999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="42.77999999999997"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="313.62" y="110.51999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="110.27999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="110.51999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="123.77999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="110.27999999999997"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="110.51999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="110.27999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="110.51999999999998"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="123.77999"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="110.27999999999997"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="313.62" y="0.2400000000000091"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="2.0000000006348273e-05"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="0.2400000000000091"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="13.500020000000006"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="0.0"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="0.2400000000000091"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="2.0000000006348273e-05"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="0.2400000000000091"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="13.500020000000006"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="0.0"></rect>
|
||
<path d="M 394.62 95.33999999999997 L 394.8 95.33999999999997 L 394.98 95.27999999999997 L 395.34000000000003 95.03999999999996 L 395.46 94.91999999999996 L 395.58 94.56 L 395.64 94.32 L 395.58 94.13999999999999 C 395.446 93.75099999999998 395.451 93.54399999999998 394.98 93.41999999999996L 394.8 93.35999999999996 L 394.44 93.35999999999996 L 394.2 93.41999999999996 L 394.08 93.47999999999996 L 393.9 93.59999999999997 L 393.78000000000003 93.77999999999997 L 393.66 94.13999999999999 L 393.6 94.32 C 393.724 94.70099999999996 393.676 94.96599999999995 394.08 95.15999999999997L 394.2 95.27999999999997 L 394.44 95.33999999999997 L 394.62 95.33999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 394.62 94.38 L 399.6 94.38 L 399.42 95.04000000000002 L 395.1 109.98000000000002 L 394.62 111.65999999999997 L 394.14 109.98000000000002 L 389.82 95.04000000000002 L 389.64 94.38 L 390.3 94.38 L 390.78000000000003 94.74000000000001 L 395.1 109.68 L 394.14 109.98000000000002 L 394.14 109.68 L 398.46 94.74000000000001 L 399.42 95.04000000000002 L 398.94 95.39999999999998 L 394.62 95.39999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="390.3" y="94.38"></rect>
|
||
<path d="M 394.62 94.86000000000001 L 398.94 94.86000000000001 L 394.62 109.80000000000001 L 390.3 94.86000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<rect height="80.58" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="393.66" y="13.740000000000009"></rect>
|
||
<path d="M 232.62 95.33999999999997 L 232.8 95.33999999999997 L 232.98000000000002 95.27999999999997 L 233.34 95.03999999999996 L 233.46 94.91999999999996 L 233.58 94.56 L 233.58 94.13999999999999 C 233.446 93.75099999999998 233.451 93.54399999999998 232.98000000000002 93.41999999999996L 232.8 93.35999999999996 L 232.38 93.35999999999996 C 231.417 93.56599999999997 231.311 94.85299999999995 232.20000000000002 95.27999999999997L 232.38 95.33999999999997 L 232.62 95.33999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 232.62 94.38 L 237.54 94.38 L 237.36 95.04000000000002 L 233.1 109.98000000000002 L 232.62 111.65999999999997 L 232.14000000000001 109.98000000000002 L 227.82 95.04000000000002 L 227.64000000000001 94.38 L 228.3 94.38 L 228.78 94.74000000000001 L 233.1 109.68 L 232.14000000000001 109.98000000000002 L 232.14000000000001 109.68 L 236.4 94.74000000000001 L 237.36 95.04000000000002 L 236.88 95.39999999999998 L 232.62 95.39999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="228.3" y="94.38"></rect>
|
||
<path d="M 232.62 94.86000000000001 L 236.88 94.86000000000001 L 232.62 109.80000000000001 L 228.3 94.86000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<rect height="80.58" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="231.66" y="13.740000000000009"></rect>
|
||
<path d="M 370.62 99.66000000000003 L 370.74 99.48000000000002 L 370.8 99.30000000000001 C 370.909 98.31300000000005 369.73900000000003 97.68800000000005 369.06 98.46000000000004L 368.94 98.58000000000004 L 368.88 98.76000000000005 L 368.82 98.94 L 368.82 99.36000000000001 L 368.88 99.54000000000002 L 369.0 99.72000000000003 L 369.24 99.96000000000004 C 369.587 100.24000000000001 369.84000000000003 100.156 370.2 100.02000000000004L 370.38 99.96000000000004 L 370.5 99.84000000000003 L 370.62 99.66000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 369.78000000000003 99.12 L 372.06 95.51999999999998 L 372.42 94.92000000000002 L 372.90000000000003 95.45999999999998 L 383.34000000000003 106.98000000000002 L 384.48 108.24000000000001 L 382.8 107.75999999999999 L 367.8 103.5 L 367.14000000000004 103.32 L 367.50000000000006 102.78000000000003 L 368.1 102.54000000000002 L 383.04 106.80000000000001 L 382.8 107.75999999999999 L 382.56000000000006 107.63999999999999 L 372.12 96.12 L 372.90000000000003 95.45999999999998 L 372.96000000000004 96.06 L 370.68 99.66000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 367.5 102.77999999999997 L 369.78 99.11999999999995 L 370.68 99.65999999999997 L 368.4 103.32" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 370.20000000000005 99.36000000000001 L 372.48 95.75999999999999 L 382.9200000000001 107.28000000000003 L 367.9200000000001 103.02000000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 233.16 12.899999999999977 L 232.14 14.579999999999984 L 369.3 99.95999999999998 L 370.32 98.27999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 253.26000000000002 99.77999999999997 L 253.38000000000002 99.95999999999998 L 253.56000000000003 100.07999999999998 C 254.27900000000002 100.63799999999998 255.42800000000003 99.89999999999998 255.06000000000003 98.94L 255.00000000000003 98.75999999999999 L 254.88000000000002 98.57999999999998 L 254.70000000000002 98.45999999999998 L 254.58 98.33999999999997 L 254.4 98.27999999999997 L 253.98000000000002 98.27999999999997 L 253.62000000000003 98.39999999999998 L 253.44000000000003 98.51999999999998 L 253.32000000000002 98.69999999999999 L 253.20000000000002 98.82 L 253.14000000000001 99.05999999999995 L 253.14000000000001 99.41999999999996 L 253.20000000000002 99.59999999999997 L 253.26000000000002 99.77999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 254.10000000000002 99.30000000000001 L 256.38 102.96000000000004 L 256.68 103.56 L 256.08000000000004 103.68 L 241.02 107.82 L 239.34000000000003 108.30000000000001 L 240.48000000000002 107.04000000000002 L 251.04000000000002 95.57999999999998 L 251.52 95.04000000000002 L 251.88000000000002 95.63999999999999 L 251.82000000000002 96.24000000000001 L 241.26000000000002 107.69999999999999 L 240.48000000000002 107.04000000000002 L 240.78000000000003 106.86000000000001 L 255.84000000000003 102.72000000000003 L 256.08000000000004 103.68 L 255.48000000000002 103.5 L 253.20000000000002 99.84000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 251.88 95.63999999999999 L 254.1 99.30000000000001 L 253.2 99.83999999999997 L 250.98 96.18" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 253.68 99.54000000000002 L 255.96 103.20000000000005 L 240.9 107.34000000000003 L 251.46 95.88" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 395.16 14.579999999999984 L 394.14000000000004 12.899999999999977 L 253.68000000000004 98.39999999999998 L 254.70000000000002 100.07999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="235.98000000000002" y="10.410897799999987">Y1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="384.48" y="10.410897799999987">Y0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.970668259999997" x="144.84" y="12.030897799999991">SRC2</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="235.98000000000002" y="53.130897800000014">X1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="384.48" y="53.130897800000014">X0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.02646278000003" x="145.14008404" y="54.75114131999999">SRC1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="57.65609662000003" x="360.29923832000003" y="120.03054204">X0, X1, Y0, or Y1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.963882439999992" x="144.84" y="120.63089780000001">DEST</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="57.659112539999995" x="215.16" y="121.7708978">X0, X1, Y0, or Y1</text></g></svg>
|
||
<figcaption><a href='vperm2i128.html#fig-5-22'>Figure 5-22</a>. VPERM2I128 Operation</figcaption></figure>
|
||
<p>Imm8[1:0] select the source for the first destination 128-bit field, imm8[5:4] select the source for the second destination field. If imm8[3] is set, the low 128-bit field is zeroed. If imm8[7] is set, the high 128-bit field is zeroed.</p>
|
||
<p>VEX.L must be 1, otherwise the instruction will #UD.</p>
|
||
<h2 id="operation">Operation<a class="anchor" href="#operation">
|
||
¶
|
||
</a></h2>
|
||
<h3 id="vperm2i128">VPERM2I128<a class="anchor" href="#vperm2i128">
|
||
¶
|
||
</a></h3>
|
||
<pre>CASE IMM8[1:0] of
|
||
0: DEST[127:0] := SRC1[127:0]
|
||
1: DEST[127:0] := SRC1[255:128]
|
||
2: DEST[127:0] := SRC2[127:0]
|
||
3: DEST[127:0] := SRC2[255:128]
|
||
ESAC
|
||
CASE IMM8[5:4] of
|
||
0: DEST[255:128] := SRC1[127:0]
|
||
1: DEST[255:128] := SRC1[255:128]
|
||
2: DEST[255:128] := SRC2[127:0]
|
||
3: DEST[255:128] := SRC2[255:128]
|
||
ESAC
|
||
IF (imm8[3])
|
||
DEST[127:0] := 0
|
||
FI
|
||
IF (imm8[7])
|
||
DEST[255:128] := 0
|
||
FI
|
||
</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>VPERM2I128: __m256i _mm256_permute2x128_si256 (__m256i a, __m256i b, int control)
|
||
</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>See <span class="not-imported">Table 2-23</span>, “Type 6 Class Exception Conditions.”</p>
|
||
<p>Additionally:</p>
|
||
<table>
|
||
<tr>
|
||
<td rowspan="2">#UD</td>
|
||
<td>If VEX.L = 0,</td></tr>
|
||
<tr>
|
||
<td>If VEX.W = 1.</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>
|