forked from NRZCode/ia32-64
175 lines
21 KiB
HTML
175 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>VPERM2F128
|
||
— Permute 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>VPERM2F128
|
||
— Permute 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>VEX.256.66.0F3A.W0 06 /r ib VPERM2F128 ymm1, ymm2, ymm3/m256, imm8</td>
|
||
<td>RV MI</td>
|
||
<td>V/V</td>
|
||
<td>AVX</td>
|
||
<td>Permute 128-bit floating-point fields 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 floating-point-containing fields 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-21">
|
||
<svg style="width: 381.0240119999999pt; height: 149.04001200000002pt" viewBox="142.34 0.0 322.52000999999996 129.20001000000002">
|
||
<g xmlns="http://www.w3.org/2000/svg" style="stroke: none; fill: none">
|
||
<path d="M 255.60000000000002 104.58001000000002 L 257.1 108.60001 L 257.22 109.26001000000002 L 256.62 109.32001000000002 L 241.08 110.40001000000001 L 239.34000000000003 110.52001000000001 L 240.72000000000003 109.50001000000003 L 253.32000000000002 100.32001000000002 L 253.92000000000002 99.90001000000001 L 254.16000000000003 100.50001000000003 L 253.98000000000002 101.10001 L 241.38000000000002 110.28001 L 240.72000000000003 109.50001000000003 L 241.02 109.38001000000003 L 256.56 108.30001000000004 L 256.62 109.32001000000002 L 256.14000000000004 108.96001000000001 L 254.64000000000001 104.94001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 254.16 100.50001000000003 L 255.6 104.58001000000002 L 254.64 104.94001000000003 L 253.2 100.86001000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 255.12 104.76001000000002 L 256.62 108.78001 L 241.08 109.86001000000005 L 253.68 100.68001000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 388.20000000000005 57.42000999999999 L 387.54 55.56000999999998 L 255.30000000000004 103.68000999999998 L 255.96000000000004 105.54001" 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="42.96001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="42.72003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="42.96001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="56.22003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="42.72001"></rect>
|
||
<path d="M 387.84000000000003 94.20001000000002 L 388.08000000000004 94.14001000000002 L 388.26000000000005 94.08001000000002 C 389.15500000000003 93.78401000000002 389.01000000000005 92.30501000000004 388.08000000000004 92.22001L 387.84000000000003 92.16001 L 387.66 92.22001 C 386.73 92.30501000000004 386.58500000000004 93.78401000000002 387.48 94.08001000000002L 387.84000000000003 94.20001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 387.84000000000003 93.18000999999998 L 392.82000000000005 93.18000999999998 L 392.64000000000004 93.84001 L 388.32000000000005 108.84001 L 387.84000000000003 110.52000999999996 L 387.36 108.84001 L 383.1 93.84001 L 382.92 93.18000999999998 L 383.58000000000004 93.18000999999998 L 384.06000000000006 93.54001 L 388.32000000000005 108.54001 L 387.36 108.84001 L 387.36 108.54001 L 391.68 93.54001 L 392.64000000000004 93.84001 L 392.16 94.20000999999996 L 387.84000000000003 94.20000999999996" 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.18001000000004"></rect>
|
||
<path d="M 387.84000000000003 93.66001 L 392.16 93.66001 L 387.84000000000003 108.66001 L 383.58000000000004 93.66001" 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.46001000000001"></rect>
|
||
<path d="M 372.54 104.88000999999997 L 372.6 104.70000999999996 L 372.6 104.52000999999996 C 372.511 103.46000999999995 371.286 103.21800999999999 370.74 104.04001L 370.68 104.22000999999995 L 370.62 104.40000999999995 L 370.62 104.82000999999997 L 370.68 105.00000999999997 L 370.8 105.12000999999998 L 370.92 105.30000999999999 L 371.1 105.42000999999999 L 371.46000000000004 105.54001 L 371.82 105.54001 L 372.0 105.48001 L 372.36 105.24000999999998 L 372.48 105.06000999999998 L 372.54 104.88000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 371.58 104.58001000000002 L 373.08 100.50001000000003 L 373.38 99.90001000000001 L 373.91999999999996 100.32001000000002 L 386.52 109.50001000000003 L 387.9 110.52001000000001 L 386.15999999999997 110.40001000000001 L 370.62 109.32001000000002 L 369.96 109.26001000000002 L 370.14 108.60001 L 370.68 108.30001000000004 L 386.21999999999997 109.38001000000003 L 386.15999999999997 110.40001000000001 L 385.86 110.28001 L 373.26 101.10001 L 373.91999999999996 100.32001000000002 L 374.03999999999996 100.86000999999999 L 372.53999999999996 104.94001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 370.14 108.60001 L 371.58 104.58001000000002 L 372.53999999999996 104.94000999999997 L 371.09999999999997 108.96001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 372.06 104.76001000000002 L 373.56 100.68001000000004 L 386.16 109.86001000000005 L 370.62 108.78001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 239.70000000000002 55.560010000000034 L 239.04000000000002 57.42001000000005 L 371.28000000000003 105.54001000000005 L 371.94000000000005 103.68001000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 239.34 94.20001000000002 L 239.58 94.14001000000002 L 239.76 94.08001000000002 C 240.655 93.78401000000002 240.51 92.30501000000004 239.58 92.22001L 239.34 92.16001 L 239.16 92.22001 C 238.209 92.21901000000003 238.077 93.88201000000004 238.98 94.08001000000002L 239.34 94.20001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 239.34 93.18000999999998 L 244.32 93.18000999999998 L 244.14000000000001 93.84001 L 239.82 108.84001 L 239.34 110.52000999999996 L 238.86 108.84001 L 234.6 93.84001 L 234.42000000000002 93.18000999999998 L 235.08 93.18000999999998 L 235.56 93.54001 L 239.82 108.54001 L 238.86 108.84001 L 238.86 108.54001 L 243.18 93.54001 L 244.14000000000001 93.84001 L 243.66 94.20000999999996 L 239.34 94.20000999999996" 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.18001000000004"></rect>
|
||
<path d="M 239.34 93.66001 L 243.66 93.66001 L 239.34 108.66001 L 235.08 93.66001" 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.46001000000001"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="42.96001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="42.72003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="42.96001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="56.22003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="42.72001"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="313.62" y="110.46001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="110.22003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="110.46001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="123.72003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="110.22001"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="110.46001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="110.22003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="110.46001000000001"></rect>
|
||
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="123.72003000000001"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="110.22001"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="313.62" y="0.24000999999998385"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.62" y="0.0"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="461.88" y="0.24000999999998385"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="313.38" y="13.5"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="9.999999974752427e-06"></rect>
|
||
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="148.5" x="165.12" y="0.24000999999998385"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="165.12" y="0.0"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="313.38" y="0.24000999999998385"></rect>
|
||
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="148.74" x="164.88" y="13.5"></rect>
|
||
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="164.88" y="9.999999974752427e-06"></rect>
|
||
<path d="M 394.62 95.28001 L 394.8 95.28001 L 394.98 95.22001 C 395.915 94.79800999999998 395.79200000000003 93.56101000000001 394.8 93.30000999999999L 394.44 93.30000999999999 L 394.2 93.36000999999999 L 394.08 93.48001 L 393.9 93.60001 L 393.78000000000003 93.72001 L 393.66 94.08001000000002 L 393.6 94.32001000000002 C 393.766 94.71201000000002 393.659 94.87901 394.08 95.10001L 394.2 95.22001 L 394.44 95.28001 L 394.62 95.28001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 394.62 94.32001000000002 L 399.6 94.32001000000002 L 399.42 94.98001000000005 L 395.1 109.98001000000005 L 394.62 111.66001 L 394.14 109.98001000000005 L 389.82 94.98001000000005 L 389.64 94.32001000000002 L 390.3 94.32001000000002 L 390.78000000000003 94.68001000000004 L 395.1 109.68001000000004 L 394.14 109.98001000000005 L 394.14 109.68001000000004 L 398.46 94.68001000000004 L 399.42 94.98001000000005 L 398.94 95.34001 L 394.62 95.34001" 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.32001000000002"></rect>
|
||
<path d="M 394.62 94.80000999999999 L 398.94 94.80000999999999 L 394.62 109.80000999999999 L 390.3 94.80000999999999" 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.74001000000004"></rect>
|
||
<path d="M 232.62 95.28001 L 232.8 95.28001 L 232.98000000000002 95.22001 L 233.34 94.98001 L 233.46 94.86000999999999 L 233.58 94.50001000000003 L 233.58 94.08001000000002 C 233.404 93.52100999999999 233.487 93.72401000000002 232.98000000000002 93.36000999999999L 232.8 93.30000999999999 L 232.38 93.30000999999999 C 231.42000000000002 93.62401 231.291 94.71901000000003 232.20000000000002 95.22001L 232.38 95.28001 L 232.62 95.28001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 232.62 94.32001000000002 L 237.54 94.32001000000002 L 237.36 94.98001000000005 L 233.1 109.98001000000005 L 232.62 111.66001 L 232.14000000000001 109.98001000000005 L 227.82 94.98001000000005 L 227.64000000000001 94.32001000000002 L 228.3 94.32001000000002 L 228.78 94.68001000000004 L 233.1 109.68001000000004 L 232.14000000000001 109.98001000000005 L 232.14000000000001 109.68001000000004 L 236.4 94.68001000000004 L 237.36 94.98001000000005 L 236.88 95.34001 L 232.62 95.34001" 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.32001000000002"></rect>
|
||
<path d="M 232.62 94.80000999999999 L 236.88 94.80000999999999 L 232.62 109.80000999999999 L 228.3 94.80000999999999" 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.74001000000004"></rect>
|
||
<path d="M 370.62 99.60001 L 370.74 99.42000999999999 L 370.8 99.24000999999998 L 370.8 99.06000999999998 L 370.74 98.88000999999997 L 370.68 98.70001000000002 L 370.62 98.52001000000001 L 370.5 98.34001 L 370.32 98.22001 L 369.96 98.10001 L 369.54 98.10001 L 369.36 98.16001 L 369.24 98.28001 L 369.06 98.40001000000001 L 368.94 98.58001000000002 L 368.88 98.76001000000002 C 368.53000000000003 99.64501000000001 369.583 100.49500999999998 370.38 99.90001000000001L 370.5 99.78001 L 370.62 99.60001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 369.78000000000003 99.12001000000004 L 372.06 95.46001000000001 L 372.42 94.86001000000005 L 372.90000000000003 95.40001000000001 L 383.34000000000003 106.98001000000005 L 384.48 108.24001000000004 L 382.8 107.76001000000002 L 367.8 103.50001000000003 L 367.14000000000004 103.32001000000002 L 367.50000000000006 102.78001000000006 L 368.1 102.54001000000005 L 383.04 106.80001000000004 L 382.8 107.76001000000002 L 382.56000000000006 107.64001000000002 L 372.12 96.06001000000003 L 372.90000000000003 95.40001000000001 L 372.96000000000004 96.00001000000003 L 370.68 99.66001000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 367.5 102.78001 L 369.78 99.12000999999998 L 370.68 99.66001 L 368.4 103.32001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 370.20000000000005 99.36000999999999 L 372.48 95.70000999999996 L 382.9200000000001 107.28001 L 367.9200000000001 103.02001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 233.16 12.900010000000009 L 232.14 14.580010000000016 L 369.3 99.90001000000001 L 370.32 98.22001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 253.26000000000002 99.72001 L 253.38000000000002 99.90001000000001 L 253.56000000000003 100.02001000000001 C 254.211 100.54201 255.46900000000002 99.92601000000002 255.06000000000003 98.88001000000003L 255.00000000000003 98.70001000000002 L 254.88000000000002 98.52001000000001 C 254.145 97.87200999999999 253.025 98.39101 253.14000000000001 99.36000999999999L 253.20000000000002 99.54001 L 253.26000000000002 99.72001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 254.10000000000002 99.24000999999998 L 256.38 102.90001000000001 L 256.68 103.50000999999997 L 256.08000000000004 103.62000999999998 L 241.02 107.76000999999997 L 239.34000000000003 108.24000999999998 L 240.48000000000002 106.98001 L 251.04000000000002 95.52000999999996 L 251.52 94.98001 L 251.88000000000002 95.58000999999996 L 251.82000000000002 96.18000999999998 L 241.26000000000002 107.64000999999996 L 240.48000000000002 106.98001 L 240.78000000000003 106.80000999999999 L 255.84000000000003 102.66001 L 256.08000000000004 103.62000999999998 L 255.48000000000002 103.44000999999997 L 253.20000000000002 99.78001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 251.88 95.58001000000002 L 254.1 99.24001000000004 L 253.2 99.78001 L 250.98 96.12001000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
|
||
<path d="M 253.68 99.48001 L 255.96 103.14001000000002 L 240.9 107.28001 L 251.46 95.82000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
|
||
<path d="M 395.16 14.580010000000016 L 394.14000000000004 12.900010000000009 L 253.68000000000004 98.40001000000001 L 254.70000000000002 100.08001000000002" 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.350907800000016">Y1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="384.48" y="10.350907800000016">Y0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.970668259999997" x="144.84" y="11.970907799999964">SRC2</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.17216670000002" x="235.98000000000002" y="53.070907799999986">X1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="9.172166699999991" x="384.48" y="53.070907799999986">X0</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.02646278000003" x="145.14008404" y="54.69115131999996">SRC1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="57.65609662000003" x="360.29923832000003" y="119.97055204000003">X0, X1, Y0, or Y1</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.963882439999992" x="144.84" y="120.57090779999999">DEST</text>
|
||
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="57.659112539999995" x="215.16" y="121.71090780000003">X0, X1, Y0, or Y1</text></g></svg>
|
||
<figcaption><a href='vperm2f128.html#fig-5-21'>Figure 5-21</a>. VPERM2F128 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="vperm2f128">VPERM2F128<a class="anchor" href="#vperm2f128">
|
||
¶
|
||
</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[MAXVL-1: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>VPERM2F128: __m256 _mm256_permute2f128_ps (__m256 a, __m256 b, int control)
|
||
</pre>
|
||
<pre>VPERM2F128: __m256d _mm256_permute2f128_pd (__m256d a, __m256d b, int control)
|
||
</pre>
|
||
<pre>VPERM2F128: __m256i _mm256_permute2f128_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>
|