ia32-64/x86/unpckhps.html

419 lines
37 KiB
HTML
Raw Permalink Normal View History

2025-07-08 02:23:29 -03:00
<!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>UNPCKHPS
— Unpack and Interleave High Packed 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>UNPCKHPS
— Unpack and Interleave High Packed 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>NP 0F 15 /r UNPCKHPS xmm1, xmm2/m128</td>
<td>A</td>
<td>V/V</td>
<td>SSE</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of xmm1 and xmm2/m128.</td></tr>
<tr>
<td>VEX.128.0F.WIG 15 /r VUNPCKHPS xmm1, xmm2, xmm3/m128</td>
<td>B</td>
<td>V/V</td>
<td>AVX</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of xmm2 and xmm3/m128.</td></tr>
<tr>
<td>VEX.256.0F.WIG 15 /r VUNPCKHPS ymm1, ymm2, ymm3/m256</td>
<td>B</td>
<td>V/V</td>
<td>AVX</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of ymm2 and ymm3/m256.</td></tr>
<tr>
<td>EVEX.128.0F.W0 15 /r VUNPCKHPS xmm1 {k1}{z}, xmm2, xmm3/m128/m32bcst</td>
<td>C</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of xmm2 and xmm3/m128/m32bcst and write result to xmm1 subject to writemask k1.</td></tr>
<tr>
<td>EVEX.256.0F.W0 15 /r VUNPCKHPS ymm1 {k1}{z}, ymm2, ymm3/m256/m32bcst</td>
<td>C</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of ymm2 and ymm3/m256/m32bcst and write result to ymm1 subject to writemask k1.</td></tr>
<tr>
<td>EVEX.512.0F.W0 15 /r VUNPCKHPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst</td>
<td>C</td>
<td>V/V</td>
<td>AVX512F</td>
<td>Unpacks and Interleaves single precision floating-point values from high quadwords of zmm2 and zmm3/m512/m32bcst and write result to zmm1 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 (r, w)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td>
<td>N/A</td></tr>
<tr>
<td>B</td>
<td>N/A</td>
<td>ModRM:reg (w)</td>
<td>VEX.vvvv (r)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td></tr>
<tr>
<td>C</td>
<td>Full</td>
<td>ModRM:reg (w)</td>
<td>EVEX.vvvv (r)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td></tr></table>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>Performs an interleaved unpack of the high single precision floating-point values from the first source operand and the second source operand.</p>
<p>128-bit Legacy SSE version: The second source can be an XMM register or an 128-bit memory location. The destination is not distinct from the first source XMM register and the upper bits (MAXVL-1:128) of the corresponding ZMM register destination are unmodified. When unpacking from a memory operand, an implementation may fetch only the appropriate 64 bits; however, alignment to 16-byte boundary and normal segment checking will still be enforced.</p>
<p>VEX.128 encoded version: The first source operand is a XMM register. The second source operand can be a XMM register or a 128-bit memory location. The destination operand is a XMM register. The upper bits (MAXVL-1:128) of the corresponding ZMM register destination are zeroed.</p>
<p>VEX.256 encoded version: The second source operand is an YMM register or an 256-bit memory location. The first source operand and destination operands are YMM registers.</p>
<figure id="fig-4-27">
<svg style="width: 475.77604799999995pt; height: 187.91997599999993pt" viewBox="101.24000000000001 0.0 401.48004 161.59997999999996">
<g xmlns="http://www.w3.org/2000/svg" style="stroke: none; fill: none">
<rect height="155.64000000000001" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="103.74000000000001" y="0.479979999999955"></rect>
<rect height="155.64000000000001" style="fill: rgb(0%, 0%, 0%)" width="0.48004" x="499.74" y="0.479979999999955"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="396.48" x="103.74000000000001" y="0.0"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="396.48" x="103.74000000000001" y="156.12"></rect>
<path d="M 423.36 91.73997999999995 L 426.0 88.31997999999999 L 426.42 87.83997999999997 L 426.78000000000003 88.31997999999999 L 436.08000000000004 100.85997999999995 L 437.16 102.29997999999989 L 435.48 101.63997999999992 L 421.02000000000004 95.93997999999999 L 420.36 95.69997999999998 L 420.78000000000003 95.1599799999999 L 421.32 94.97997999999995 L 435.84000000000003 100.67998 L 435.48 101.63997999999992 L 435.24 101.45997999999997 L 426.0 88.9199799999999 L 426.78000000000003 88.31997999999999 L 426.78000000000003 88.9199799999999 L 424.14 92.33997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 420.78000000000003 95.1599799999999 L 423.36 91.73997999999995 L 424.14000000000004 92.33997999999985 L 421.56 95.75997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 423.72 92.0399799999999 L 426.36 88.61997999999994 L 435.66 101.1599799999999 L 421.14000000000004 95.45997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 366.84000000000003 47.45997999999997 L 365.64000000000004 49.01997999999992 L 422.76000000000005 92.51997999999992 L 423.96000000000004 90.95997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 390.18 92.63997999999992 L 390.3 92.45997999999997 L 390.36 92.27997999999991 C 390.488 91.26797999999997 389.47700000000003 90.72197999999992 388.68 91.31997999999987L 388.44 91.67997999999989 C 388.123 92.60897999999997 388.986 93.38397999999995 389.88 92.93997999999988L 390.06 92.81997999999987 L 390.18 92.63997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 389.40000000000003 92.0399799999999 L 391.92 88.55997999999988 L 392.34000000000003 88.07997999999986 L 392.70000000000005 88.55997999999988 L 402.3 100.85997999999995 L 403.38000000000005 102.23997999999995 L 401.76000000000005 101.63997999999992 L 387.12000000000006 96.29997999999989 L 386.46000000000004 96.05997999999988 L 386.88000000000005 95.51997999999992 L 387.42 95.33997999999985 L 402.06000000000006 100.67997999999989 L 401.76000000000005 101.63997999999992 L 401.52000000000004 101.45997999999986 L 391.92 89.1599799999999 L 392.70000000000005 88.55997999999988 L 392.70000000000005 89.1599799999999 L 390.18 92.63997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 386.88 95.51997999999992 L 389.4 92.0399799999999 L 390.18 92.63997999999992 L 387.65999999999997 96.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 389.76 92.33997999999985 L 392.28 88.85997999999984 L 401.88 101.1599799999999 L 387.24 95.81997999999987" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 366.84000000000003 74.45997999999997 L 365.70000000000005 76.07997999999998 L 388.8 92.87997999999993 L 389.94000000000005 91.25997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="420.24" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.24" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="457.14" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.0" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="383.1" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="383.1" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="382.86" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="345.96" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.96" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.72" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="308.88" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.88" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.64" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="420.24" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.24" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="457.14" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.0" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="383.1" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="383.1" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="382.86" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="345.96" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.96" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.72" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="308.88" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.88" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.64" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="420.24" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.24" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="457.14" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="420.0" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="101.99997999999994"></rect>
<rect height="0.53998" style="fill: rgb(0%, 0%, 0%)" width="4.2" x="439.68" y="111.29999999999995"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="383.1" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="383.1" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="420.0" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="382.86" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="345.96" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.96" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="382.86" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="345.72" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="308.88" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.88" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="345.72" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="308.64" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="271.74" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.74" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.5" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="234.60000000000002" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.60000000000002" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.36" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="197.46" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.46" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.22" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="160.38" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.38" y="102.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="102.23997999999995"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.14000000000001" y="115.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="160.14000000000001" y="101.99997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="271.74" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.74" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.5" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="234.60000000000002" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.60000000000002" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.36" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="197.46" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.46" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.22" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="160.38" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.38" y="34.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="34.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.14000000000001" y="48.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="160.14000000000001" y="34.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="271.74" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.74" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="308.64" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="271.5" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="234.60000000000002" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.60000000000002" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="271.5" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="234.36" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="197.46" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.46" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="234.36" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="197.22" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="61.49997999999994"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="160.38" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.38" y="61.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="197.22" y="61.739979999999946"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="160.14000000000001" y="75.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="160.14000000000001" y="61.49997999999994"></rect>
<path d="M 354.24 88.43997999999988 L 354.36 88.31997999999987 L 354.48 88.13997999999992 C 355.048 87.39397999999983 354.257 86.2419799999999 353.34000000000003 86.63997999999992L 353.16 86.69997999999987 L 352.98 86.87997999999993 C 352.286 87.63097999999991 352.961 88.69897999999989 353.82 88.55997999999988L 354.06 88.49997999999982 L 354.24 88.43997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 353.70000000000005 87.59997999999996 L 357.36000000000007 85.31997999999999 L 357.90000000000003 84.95997999999997 L 358.08000000000004 85.61997999999994 L 362.40000000000003 100.55998 L 362.88000000000005 102.23997999999995 L 361.62000000000006 101.09997999999996 L 350.04 90.71997999999996 L 349.50000000000006 90.23997999999995 L 350.1 89.87997999999993 L 350.70000000000005 89.93997999999999 L 362.28000000000003 100.31997999999999 L 361.62000000000006 101.09997999999996 L 361.44000000000005 100.79998 L 357.12000000000006 85.91998000000001 L 358.08000000000004 85.61997999999994 L 357.90000000000003 86.21997999999996 L 354.24000000000007 88.49997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 350.1 89.87997999999993 L 353.70000000000005 87.59997999999996 L 354.24 88.49997999999994 L 350.64000000000004 90.77997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 353.94 88.01997999999992 L 357.6 85.73997999999995 L 361.92 100.67997999999989 L 350.34 90.29997999999989" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 329.94 47.75997999999993 L 328.26 48.77997999999991 L 352.86 88.13997999999992 L 354.54 87.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 329.1 85.9199799999999 L 329.34000000000003 85.9199799999999 L 329.52000000000004 85.85997999999995 C 330.32500000000005 85.51897999999994 330.341 84.26497999999992 329.34000000000003 83.93997999999988L 328.92 83.93997999999988 C 327.925 84.1409799999999 327.82300000000004 85.57697999999993 328.74 85.85997999999995L 328.92 85.9199799999999 L 329.1 85.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 329.1 84.95997999999997 L 334.08000000000004 84.95997999999997 L 333.90000000000003 85.61997999999994 L 329.58000000000004 100.61997999999994 L 329.1 102.29998 L 328.62 100.61997999999994 L 324.36 85.61997999999994 L 324.18 84.95997999999997 L 324.84000000000003 84.95997999999997 L 325.32000000000005 85.31997999999999 L 329.58000000000004 100.31997999999999 L 328.62 100.61997999999994 L 328.62 100.31997999999999 L 332.94 85.31997999999999 L 333.90000000000003 85.61997999999994 L 333.42 85.97997999999995 L 329.1 85.97997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="324.84000000000003" y="84.95997999999997"></rect>
<path d="M 329.1 85.43997999999988 L 333.42 85.43997999999988 L 329.1 100.43997999999988 L 324.84000000000003 85.43997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<rect height="9.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="328.14" y="75.23997999999995"></rect>
<path d="M 275.64 92.33997999999985 L 275.76 92.21997999999985 L 275.82 91.97997999999984 L 275.82 91.43997999999988 L 275.58 91.07997999999986 L 275.46 90.95997999999986 L 275.28 90.83997999999985 C 274.974 90.70897999999988 274.61899999999997 90.78597999999988 274.32 90.8999799999998L 274.2 91.0199799999998 L 274.02 91.13997999999981 L 273.96 91.31997999999987 C 273.46299999999997 92.2989799999998 274.561 93.0349799999999 275.34 92.63997999999981L 275.52 92.5199799999998 L 275.64 92.33997999999985" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 274.86 91.73997999999995 L 277.5 88.31997999999999 L 277.92 87.83997999999997 L 278.28000000000003 88.31997999999999 L 287.58000000000004 100.85997999999995 L 288.66 102.29997999999989 L 286.98 101.63997999999992 L 272.52000000000004 95.93997999999999 L 271.86 95.69997999999998 L 272.28000000000003 95.1599799999999 L 272.82 94.97997999999995 L 287.34000000000003 100.67998 L 286.98 101.63997999999992 L 286.74 101.45997999999997 L 277.5 88.9199799999999 L 278.28000000000003 88.31997999999999 L 278.28000000000003 88.9199799999999 L 275.64 92.33997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 272.28000000000003 95.1599799999999 L 274.86 91.73997999999995 L 275.64000000000004 92.33997999999985 L 273.06 95.75997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 275.22 92.0399799999999 L 277.86 88.61997999999994 L 287.16 101.1599799999999 L 272.64000000000004 95.45997999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 218.34 47.45997999999997 L 217.14000000000001 49.01997999999992 L 274.26 92.51997999999992 L 275.46000000000004 90.95997999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 241.68 92.63997999999992 L 241.8 92.45997999999997 L 241.86 92.27997999999991 C 241.988 91.26797999999997 240.977 90.72197999999992 240.18 91.31997999999987L 239.94 91.67997999999989 C 239.637 92.61897999999997 240.461 93.38797999999997 241.38 92.93997999999988L 241.56 92.81997999999987 L 241.68 92.63997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 240.9 92.0399799999999 L 243.42000000000002 88.55997999999988 L 243.84 88.07997999999986 L 244.20000000000002 88.55997999999988 L 253.8 100.85997999999995 L 254.88 102.23997999999995 L 253.26 101.63997999999992 L 238.62 96.29997999999989 L 237.96 96.05997999999988 L 238.38 95.51997999999992 L 238.92000000000002 95.33997999999985 L 253.56 100.67997999999989 L 253.26 101.63997999999992 L 253.02 101.45997999999986 L 243.42000000000002 89.1599799999999 L 244.20000000000002 88.55997999999988 L 244.20000000000002 89.1599799999999 L 241.68 92.63997999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 238.38 95.51997999999992 L 240.9 92.0399799999999 L 241.68 92.63997999999992 L 239.16 96.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 241.26 92.33997999999985 L 243.78 88.85997999999984 L 253.38 101.1599799999999 L 238.73999999999998 95.81997999999987" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 218.34 74.45997999999997 L 217.20000000000002 76.07997999999998 L 240.3 92.87997999999993 L 241.44 91.25997999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 205.74 88.43997999999988 L 205.86 88.31997999999987 L 205.98000000000002 88.13997999999992 C 206.54600000000002 87.38497999999993 205.764 86.25697999999988 204.84 86.63997999999992L 204.66 86.69997999999987 L 204.36 86.99997999999982 L 204.3 87.17997999999989 L 204.18 87.35997999999984 L 204.18 87.71997999999985 L 204.24 87.89997999999991 L 204.48000000000002 88.25997999999993 L 204.60000000000002 88.37997999999993 L 204.78 88.49997999999982 L 204.96 88.55997999999988 L 205.32000000000002 88.55997999999988 L 205.56 88.49997999999982 L 205.74 88.43997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 205.20000000000002 87.59997999999996 L 208.86 85.31997999999999 L 209.4 84.95997999999997 L 209.58 85.61997999999994 L 213.9 100.55998 L 214.38000000000002 102.17998 L 213.12 101.09997999999996 L 201.48000000000002 90.71997999999996 L 200.94000000000003 90.23997999999995 L 201.54000000000002 89.87997999999993 L 202.14000000000001 89.93997999999999 L 213.78000000000003 100.31997999999999 L 213.12 101.09997999999996 L 212.94000000000003 100.79998 L 208.62 85.91998000000001 L 209.58 85.61997999999994 L 209.4 86.21997999999996 L 205.74 88.49997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 201.54 89.87997999999993 L 205.2 87.59997999999996 L 205.73999999999998 88.49997999999994 L 202.07999999999998 90.77997999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 205.44 88.01997999999992 L 209.1 85.73997999999995 L 213.42 100.67997999999989 L 201.78 90.29997999999989" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 181.44 47.75997999999993 L 179.76 48.77997999999991 L 204.36 88.13997999999992 L 206.04 87.11997999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 180.60000000000002 85.9199799999999 L 180.78000000000003 85.9199799999999 L 181.02 85.85997999999995 C 181.88200000000003 85.47097999999994 181.73900000000003 84.12697999999989 180.78000000000003 83.93997999999988L 180.42000000000002 83.93997999999988 C 179.425 84.1409799999999 179.32300000000004 85.57697999999993 180.24 85.85997999999995L 180.42000000000002 85.9199799999999 L 180.60000000000002 85.9199799999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 180.60000000000002 84.95997999999997 L 185.58 84.95997999999997 L 185.40000000000003 85.61997999999994 L 181.08 100.61997999999994 L 180.60000000000002 102.29998 L 180.12000000000003 100.61997999999994 L 175.8 85.61997999999994 L 175.62000000000003 84.95997999999997 L 176.28000000000003 84.95997999999997 L 176.76000000000002 85.31997999999999 L 181.08 100.31997999999999 L 180.12000000000003 100.61997999999994 L 180.12000000000003 100.31997999999999 L 184.44000000000003 85.31997999999999 L 185.40000000000003 85.61997999999994 L 184.92000000000002 85.97997999999995 L 180.60000000000002 85.97997999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="176.28" y="84.95997999999997"></rect>
<path d="M 180.60000000000002 85.43997999999988 L 184.92000000000002 85.43997999999988 L 180.60000000000002 100.43997999999988 L 176.28000000000003 85.43997999999988" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<rect height="9.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="179.64000000000001" y="75.23997999999995"></rect>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="269.0924851" x="174.84" y="44.85087779999992">X7 X6 X5 X4 X3 X2 X1 X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414452500000039pt; fill: #000" textLength="303.8324851" x="140.1" y="71.85087779999992">SRC2 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="303.77216670000007" x="140.1" y="112.35087779999992">DEST Y7 X7 Y6 X6 Y3 X3 Y2 X2</text></g></svg>
<figcaption><a href='unpckhps.html#fig-4-27'>Figure 4-27</a>. VUNPCKHPS Operation</figcaption></figure>
<p>EVEX.512 encoded version: The first source operand is a ZMM register. The second source operand is a ZMM register, a 512-bit memory location, or a 512-bit vector broadcasted from a 32-bit memory location. The destination operand is a ZMM register, conditionally updated using writemask k1.</p>
<p>EVEX.256 encoded version: The first source operand is a YMM register. The second source operand is a YMM register, a 256-bit memory location, or a 256-bit vector broadcasted from a 32-bit memory location. The destination operand is a YMM register, conditionally updated using writemask k1.</p>
<p>EVEX.128 encoded version: The first source operand is a XMM register. The second source operand is a XMM register, a 128-bit memory location, or a 128-bit vector broadcasted from a 32-bit memory location. The destination operand is a XMM register, conditionally updated using writemask k1.</p>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="vunpckhps--evex-encoded-version-when-src2-is-a-register-">VUNPCKHPS (EVEX Encoded Version When SRC2 is a Register)<a class="anchor" href="#vunpckhps--evex-encoded-version-when-src2-is-a-register-">
</a></h3>
<pre>(KL, VL) = (4, 128), (8, 256), (16, 512)
IF VL &gt;= 128
TMP_DEST[31:0] := SRC1[95:64]
TMP_DEST[63:32] := SRC2[95:64]
TMP_DEST[95:64] := SRC1[127:96]
TMP_DEST[127:96] := SRC2[127:96]
FI;
IF VL &gt;= 256
TMP_DEST[159:128] := SRC1[223:192]
TMP_DEST[191:160] := SRC2[223:192]
TMP_DEST[223:192] := SRC1[255:224]
TMP_DEST[255:224] := SRC2[255:224]
FI;
IF VL &gt;= 512
TMP_DEST[287:256] := SRC1[351:320]
TMP_DEST[319:288] := SRC2[351:320]
TMP_DEST[351:320] := SRC1[383:352]
TMP_DEST[383:352] := SRC2[383:352]
TMP_DEST[415:384] := SRC1[479:448]
TMP_DEST[447:416] := SRC2[479:448]
TMP_DEST[479:448] := SRC1[511:480]
TMP_DEST[511:480] := SRC2[511:480]
FI;
FOR j := 0 TO KL-1
i := j * 32
IF k1[j] OR *no writemask*
THEN DEST[i+31:i] := TMP_DEST[i+31:i]
ELSE
IF *merging-masking*
; merging-masking
THEN *DEST[i+31:i] remains unchanged*
ELSE *zeroing-masking*
; zeroing-masking
DEST[i+31:i] := 0
FI
FI;
ENDFOR
DEST[MAXVL-1:VL] := 0
</pre>
<h3 id="vunpckhps--evex-encoded-version-when-src2-is-memory-">VUNPCKHPS (EVEX Encoded Version When SRC2 is Memory)<a class="anchor" href="#vunpckhps--evex-encoded-version-when-src2-is-memory-">
</a></h3>
<pre>(KL, VL) = (4, 128), (8, 256), (16, 512)
FOR j := 0 TO KL-1
i := j * 32
IF (EVEX.b = 1)
THEN TMP_SRC2[i+31:i] := SRC2[31:0]
ELSE TMP_SRC2[i+31:i] := SRC2[i+31:i]
FI;
ENDFOR;
IF VL &gt;= 128
TMP_DEST[31:0] := SRC1[95:64]
TMP_DEST[63:32] := TMP_SRC2[95:64]
TMP_DEST[95:64] := SRC1[127:96]
TMP_DEST[127:96] := TMP_SRC2[127:96]
FI;
IF VL &gt;= 256
TMP_DEST[159:128] := SRC1[223:192]
TMP_DEST[191:160] := TMP_SRC2[223:192]
TMP_DEST[223:192] := SRC1[255:224]
TMP_DEST[255:224] := TMP_SRC2[255:224]
FI;
IF VL &gt;= 512
TMP_DEST[287:256] := SRC1[351:320]
TMP_DEST[319:288] := TMP_SRC2[351:320]
TMP_DEST[351:320] := SRC1[383:352]
TMP_DEST[383:352] := TMP_SRC2[383:352]
TMP_DEST[415:384] := SRC1[479:448]
TMP_DEST[447:416] := TMP_SRC2[479:448]
TMP_DEST[479:448] := SRC1[511:480]
TMP_DEST[511:480] := TMP_SRC2[511:480]
FI;
FOR j := 0 TO KL-1
i := j * 32
IF k1[j] OR *no writemask*
THEN DEST[i+31:i] := TMP_DEST[i+31:i]
ELSE
IF *merging-masking*
THEN *DEST[i+31:i] remains unchanged*
ELSE *zeroing-masking* ; zeroing-masking
DEST[i+31:i] := 0
FI;
FI;
ENDFOR
DEST[MAXVL-1:VL] := 0
</pre>
<h3 id="vunpckhps--vex-256-encoded-version-">VUNPCKHPS (VEX.256 Encoded Version)<a class="anchor" href="#vunpckhps--vex-256-encoded-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[95:64]
DEST[63:32] := SRC2[95:64]
DEST[95:64] := SRC1[127:96]
DEST[127:96] := SRC2[127:96]
DEST[159:128] := SRC1[223:192]
DEST[191:160] := SRC2[223:192]
DEST[223:192] := SRC1[255:224]
DEST[255:224] := SRC2[255:224]
DEST[MAXVL-1:256] := 0
</pre>
<h3 id="vunpckhps--vex-128-encoded-version-">VUNPCKHPS (VEX.128 Encoded Version)<a class="anchor" href="#vunpckhps--vex-128-encoded-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[95:64]
DEST[63:32] := SRC2[95:64]
DEST[95:64] := SRC1[127:96]
DEST[127:96] := SRC2[127:96]
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="unpckhps--128-bit-legacy-sse-version-">UNPCKHPS (128-bit Legacy SSE Version)<a class="anchor" href="#unpckhps--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[95:64]
DEST[63:32] := SRC2[95:64]
DEST[95:64] := SRC1[127:96]
DEST[127:96] := SRC2[127:96]
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>VUNPCKHPS __m512 _mm512_unpackhi_ps( __m512 a, __m512 b);
</pre>
<pre>VUNPCKHPS __m512 _mm512_mask_unpackhi_ps(__m512 s, __mmask16 k, __m512 a, __m512 b);
</pre>
<pre>VUNPCKHPS __m512 _mm512_maskz_unpackhi_ps(__mmask16 k, __m512 a, __m512 b);
</pre>
<pre>VUNPCKHPS __m256 _mm256_unpackhi_ps (__m256 a, __m256 b);
</pre>
<pre>VUNPCKHPS __m256 _mm256_mask_unpackhi_ps(__m256 s, __mmask8 k, __m256 a, __m256 b);
</pre>
<pre>VUNPCKHPS __m256 _mm256_maskz_unpackhi_ps(__mmask8 k, __m256 a, __m256 b);
</pre>
<pre>UNPCKHPS __m128 _mm_unpackhi_ps (__m128 a, __m128 b);
</pre>
<pre>VUNPCKHPS __m128 _mm_mask_unpackhi_ps(__m128 s, __mmask8 k, __m128 a, __m128 b);
</pre>
<pre>VUNPCKHPS __m128 _mm_maskz_unpackhi_ps(__mmask8 k, __m128 a, __m128 b);
</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 instructions, see <span class="not-imported">Table 2-21</span>, “Type 4 Class Exception Conditions.”</p>
<p>EVEX-encoded instructions, see <span class="not-imported">Table 2-50</span>, “Type E4NF Class Exception Conditions.”</p><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>