ia32-64/x86/pshufd.html

447 lines
53 KiB
HTML
Raw 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>PSHUFD
— Shuffle Packed Doublewords</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>PSHUFD
— Shuffle Packed Doublewords</h1>
<table>
<tr>
<th>Opcode/Instruction</th>
<th>Op/En</th>
<th>64/32 bit Mode Support</th>
<th>CPUID Feature Flag</th>
<th>Description</th></tr>
<tr>
<td>66 0F 70 /r ib PSHUFD xmm1, xmm2/m128, imm8</td>
<td>A</td>
<td>V/V</td>
<td>SSE2</td>
<td>Shuffle the doublewords in xmm2/m128 based on the encoding in imm8 and store the result in xmm1.</td></tr>
<tr>
<td>VEX.128.66.0F.WIG 70 /r ib VPSHUFD xmm1, xmm2/m128, imm8</td>
<td>A</td>
<td>V/V</td>
<td>AVX</td>
<td>Shuffle the doublewords in xmm2/m128 based on the encoding in imm8 and store the result in xmm1.</td></tr>
<tr>
<td>VEX.256.66.0F.WIG 70 /r ib VPSHUFD ymm1, ymm2/m256, imm8</td>
<td>A</td>
<td>V/V</td>
<td>AVX2</td>
<td>Shuffle the doublewords in ymm2/m256 based on the encoding in imm8 and store the result in ymm1.</td></tr>
<tr>
<td>EVEX.128.66.0F.W0 70 /r ib VPSHUFD xmm1 {k1}{z}, xmm2/m128/m32bcst, imm8</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Shuffle the doublewords in xmm2/m128/m32bcst based on the encoding in imm8 and store the result in xmm1 using writemask k1.</td></tr>
<tr>
<td>EVEX.256.66.0F.W0 70 /r ib VPSHUFD ymm1 {k1}{z}, ymm2/m256/m32bcst, imm8</td>
<td>B</td>
<td>V/V</td>
<td>AVX512VL AVX512F</td>
<td>Shuffle the doublewords in ymm2/m256/m32bcst based on the encoding in imm8 and store the result in ymm1 using writemask k1.</td></tr>
<tr>
<td>EVEX.512.66.0F.W0 70 /r ib VPSHUFD zmm1 {k1}{z}, zmm2/m512/m32bcst, imm8</td>
<td>B</td>
<td>V/V</td>
<td>AVX512F</td>
<td>Shuffle the doublewords in zmm2/m512/m32bcst based on the encoding in imm8 and store the result in zmm1 using writemask k1.</td></tr></table>
<h2 id="instruction-operand-encoding">Instruction Operand Encoding<a class="anchor" href="#instruction-operand-encoding">
</a></h2>
<table>
<tr>
<th>Op/En</th>
<th>Tuple Type</th>
<th>Operand 1</th>
<th>Operand 2</th>
<th>Operand 3</th>
<th>Operand 4</th></tr>
<tr>
<td>A</td>
<td>N/A</td>
<td>ModRM:reg (w)</td>
<td>ModRM:r/m (r)</td>
<td>imm8</td>
<td>N/A</td></tr>
<tr>
<td>B</td>
<td>Full</td>
<td>ModRM:reg (w)</td>
<td>ModRM:r/m (r)</td>
<td>imm8</td>
<td>N/A</td></tr></table>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>Copies doublewords from source operand (second operand) and inserts them in the destination operand (first operand) at the locations selected with the order operand (third operand). <span class="not-imported">Figure 4-16</span> shows the operation of the 256-bit VPSHUFD instruction and the encoding of the order operand. Each 2-bit field in the order operand selects the contents of one doubleword location within a 128-bit lane and copy to the target element in the destination operand. For example, bits 0 and 1 of the order operand targets the first doubleword element in the low and high 128-bit lane of the destination operand for 256-bit VPSHUFD. The encoded value of bits 1:0 of the order operand (see the field encoding in <span class="not-imported">Figure 4-16</span>) determines which doubleword element (from the respective 128-bit lane) of the source operand will be copied to doubleword 0 of the destination operand.</p>
<p>For 128-bit operation, only the low 128-bit lane are operative. The source operand can be an XMM register or a 128-bit memory location. The destination operand is an XMM register. The order operand is an 8-bit immediate. Note that this instruction permits a doubleword in the source operand to be copied to more than one doubleword location in the destination operand.</p>
<svg style="width: 380.66318292pt; height: 134.13599999999997pt" viewBox="157.04069090000002 0.0 322.2193191 116.77999999999997">
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="184.86" y="2.0000000063191692e-05"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="220.98000000000002" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="184.62" y="18.000020000000063"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="184.62" y="0.0"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="221.22" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="221.22" y="2.0000000063191692e-05"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="257.34000000000003" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="220.98000000000002" y="18.000020000000063"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="220.98000000000002" y="0.0"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.42" x="257.58" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="257.58" y="2.0000000063191692e-05"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="293.76" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="257.34000000000003" y="18.000020000000063"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="257.34000000000003" y="0.0"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="294.0" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="294.0" y="2.0000000063191692e-05"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="330.12" y="0.2400000000000091"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="293.76" y="18.000020000000063"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="293.76" y="0.0"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="184.8" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="184.8" y="53.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="220.92000000000002" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="184.56" y="71.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="184.56" y="53.15999999999997"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.42" x="221.16" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="221.16" y="53.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="257.34000000000003" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="220.92000000000002" y="71.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="220.92000000000002" y="53.15999999999997"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="257.58" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="257.58" y="53.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="293.7" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="257.34000000000003" y="71.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="257.34000000000003" y="53.15999999999997"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="293.94" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="293.94" y="53.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="330.06" y="53.39999999999998"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="293.7" y="71.16002000000003"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="293.7" y="53.15999999999997"></rect>
<path d="M 468.18 45.89999999999998 L 467.7 46.01999999999998 L 467.94 47.039999999999964 L 468.42 46.91999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 467.88 46.559999999999945 L 469.26 45.65999999999997 L 470.15999999999997 45.059999999999945 L 470.04 46.139999999999986 L 469.68 51.719999999999914 L 469.62 53.51999999999998 L 468.78 51.95999999999992 L 466.14 47.039999999999964 L 465.6 46.07999999999993 L 466.62 46.25999999999999 L 466.98 46.5 L 469.62 51.41999999999996 L 468.78 51.95999999999992 L 468.71999999999997 51.65999999999997 L 469.08 46.07999999999993 L 470.04 46.139999999999986 L 469.86 46.5 L 468.48 47.39999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 466.62 46.25999999999999 L 468.24 46.5 L 468.48 47.39999999999998 L 468.3 47.51999999999998 L 468.12 47.460000000000036 L 466.5 47.22000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 468.18 46.98000000000002 L 469.56 46.08000000000004 L 469.2 51.65999999999997 L 466.56 46.74000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 462.36 19.91999999999996 L 462.3 19.67999999999995 L 461.82 19.799999999999955 L 461.88 20.039999999999964" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 468.18 45.89999999999998 L 468.24 46.139999999999986 L 467.76 46.25999999999999 L 467.7 46.01999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 462.36 19.91999999999996 L 461.88 20.039999999999964 L 467.7 46.01999999999998 L 468.18 45.89999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="72.24" x="296.82" y="93.29995999999994"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="368.58" y="93.53999999999996"></rect>
<rect height="0.48004" style="fill: rgb(0%, 0%, 0%)" width="72.24" x="296.58" y="111.29995999999994"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="296.58" y="93.29999999999995"></rect>
<rect height="0.24005" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="332.58" y="93.29994999999997"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="332.58" y="93.53999999999996"></rect>
<rect height="0.24005" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="350.58" y="93.29994999999997"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="350.58" y="93.53999999999996"></rect>
<rect height="0.24005" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="314.58" y="93.29994999999997"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="314.58" y="93.53999999999996"></rect>
<path d="M 455.40000000000003 73.67999999999995 L 455.52000000000004 74.15999999999997 L 456.54 73.9799999999999 L 456.42 73.5" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 456.06 74.03999999999996 L 455.22 72.65999999999997 L 454.62 71.75999999999999 L 455.7 71.88 L 461.28000000000003 72.29999999999995 L 463.02 72.41999999999996 L 461.52 73.19999999999993 L 456.54 75.77999999999997 L 455.58 76.31999999999994 L 455.76 75.29999999999995 L 456.0 74.93999999999994 L 460.98 72.36000000000001 L 461.52 73.19999999999993 L 461.22 73.25999999999999 L 455.64 72.83999999999992 L 455.7 71.88 L 456.06 72.05999999999995 L 456.9 73.43999999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 455.76 75.29999999999995 L 456.0 73.67999999999995 L 456.9 73.43999999999994 L 457.02 73.62 L 456.96 73.79999999999995 L 456.71999999999997 75.41999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 456.48 73.74000000000001 L 455.64000000000004 72.36000000000001 L 461.22 72.77999999999997 L 456.24 75.36000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 359.28000000000003 93.36000000000001 L 359.04 93.41999999999996 L 359.16 93.89999999999998 L 359.40000000000003 93.84000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 455.40000000000003 73.67999999999995 L 455.64000000000004 73.62 L 455.76000000000005 74.09999999999991 L 455.52000000000004 74.15999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 359.28000000000003 93.36000000000001 L 359.40000000000003 93.84000000000003 L 455.52000000000004 74.15999999999997 L 455.40000000000003 73.68000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 408.78000000000003 74.34000000000003 L 408.90000000000003 74.82000000000005 L 409.86 74.51999999999998 L 409.74 74.04000000000008" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 409.38 74.58000000000004 L 408.42 73.25999999999999 L 407.76 72.48000000000002 L 408.9 72.42000000000007 L 414.48 72.36000000000001 L 416.15999999999997 72.42000000000007 L 414.71999999999997 73.32000000000005 L 410.04 76.32000000000005 L 409.2 76.86000000000001 L 409.26 75.90000000000009 L 409.5 75.48000000000002 L 414.18 72.48000000000002 L 414.71999999999997 73.32000000000005 L 414.42 73.38 L 408.84 73.44000000000005 L 408.9 72.42000000000007 L 409.26 72.66000000000008 L 410.21999999999997 73.98000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 409.26 75.89999999999998 L 409.32 74.27999999999997 L 410.21999999999997 73.98000000000002 L 410.34 74.10000000000002 L 410.34 74.34000000000003 L 410.28 75.95999999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 409.8 74.27999999999997 L 408.84000000000003 72.95999999999992 L 414.42 72.89999999999998 L 409.74 75.89999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 342.12 93.89999999999998 L 341.88 93.95999999999992 L 342.0 94.43999999999994 L 342.24 94.38" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 408.78000000000003 74.34000000000003 L 409.02000000000004 74.28000000000009 L 409.14000000000004 74.75999999999999 L 408.90000000000003 74.82000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 342.12 93.89999999999998 L 342.24 94.38 L 408.9 74.81999999999994 L 408.78 74.34000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.28000000000003 76.01999999999998 L 320.52000000000004 75.53999999999996 L 319.56 75.05999999999995 L 319.32000000000005 75.53999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 319.98 75.36000000000001 L 319.8 76.98000000000002 L 319.74 78.0 L 314.70000000000005 73.68000000000006 L 313.38 72.53999999999996 L 315.12 72.77999999999997 L 320.64000000000004 73.62 L 321.66 73.80000000000007 L 320.94 74.51999999999998 L 320.46000000000004 74.63999999999999 L 315.0 73.80000000000007 L 315.12 72.77999999999997 L 315.36 72.96000000000004 L 319.56 76.56000000000006 L 318.90000000000003 77.27999999999997 L 318.78000000000003 76.80000000000007 L 318.96000000000004 75.18000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.94 74.51999999999998 L 319.8 75.65999999999997 L 318.96 75.17999999999995 L 318.96 75.0 L 319.08 74.93999999999994 L 320.21999999999997 73.79999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 319.44 75.29999999999995 L 319.26 76.91999999999996 L 315.06 73.31999999999994 L 320.58 74.15999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 357.3 93.05999999999995 L 357.48 93.11999999999989 L 357.66 92.69999999999993 L 357.48 92.63999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.34000000000003 76.01999999999998 L 320.16 75.96000000000004 L 320.34000000000003 75.53999999999996 L 320.52000000000004 75.60000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 357.3 93.05999999999995 L 357.48 92.63999999999999 L 320.52 75.59999999999991 L 320.34000000000003 76.01999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 287.88 76.86000000000001 L 288.0 76.38 L 286.98 76.08000000000004 L 286.86 76.56000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 287.46 76.31999999999994 L 287.52 77.93999999999994 L 287.58 78.95999999999992 L 286.68 78.3599999999999 L 282.0 75.29999999999995 L 280.5 74.33999999999992 L 282.29999999999995 74.33999999999992 L 287.88 74.45999999999992 L 288.84 74.45999999999992 L 288.29999999999995 75.2399999999999 L 287.88 75.4799999999999 L 282.29999999999995 75.3599999999999 L 282.29999999999995 74.33999999999992 L 282.53999999999996 74.45999999999992 L 287.21999999999997 77.51999999999998 L 286.68 78.3599999999999 L 286.44 77.93999999999994 L 286.38 76.31999999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 288.3 75.24000000000001 L 287.34000000000003 76.56000000000006 L 286.38 76.32000000000005 L 286.38 76.13999999999999 L 286.5 76.01999999999998 L 287.46000000000004 74.70000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 286.92 76.31999999999994 L 286.98 77.93999999999994 L 282.3 74.87999999999988 L 287.88 74.99999999999989" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 339.90000000000003 93.05999999999995 L 340.14000000000004 93.11999999999989 L 340.26000000000005 92.63999999999999 L 340.02000000000004 92.57999999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 287.88 76.86000000000001 L 287.64 76.80000000000007 L 287.76 76.32000000000005 L 288.0 76.38" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 339.90000000000003 93.05999999999995 L 340.02000000000004 92.57999999999993 L 288.0 76.38 L 287.88000000000005 76.8599999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 461.52 46.559999999999945 L 461.15999999999997 46.91999999999996 L 462.0 47.57999999999993 L 462.35999999999996 47.219999999999914" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 461.70000000000005 47.219999999999914 L 462.24000000000007 45.65999999999997 L 462.54 44.69999999999993 L 463.14000000000004 45.59999999999991 L 466.26000000000005 50.219999999999914 L 467.28000000000003 51.65999999999997 L 465.66 50.93999999999994 L 460.56000000000006 48.719999999999914 L 459.6 48.299999999999955 L 460.50000000000006 47.819999999999936 L 460.98 47.819999999999936 L 466.08000000000004 50.039999999999964 L 465.66 50.93999999999994 L 465.4200000000001 50.75999999999988 L 462.30000000000007 46.13999999999987 L 463.14000000000004 45.59999999999991 L 463.20000000000005 46.01999999999987 L 462.66 47.57999999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 460.5 47.819999999999936 L 461.94 46.979999999999905 L 462.66 47.57999999999993 L 462.6 47.75999999999999 L 462.42 47.819999999999936 L 460.98 48.65999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 462.18 47.39999999999998 L 462.72 45.84000000000003 L 465.84000000000003 50.45999999999992 L 460.74 48.24000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 427.26 18.24000000000001 L 427.08 18.120000000000005 L 426.78 18.480000000000018 L 426.96 18.600000000000023" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 461.52 46.559999999999945 L 461.7 46.67999999999995 L 461.4 47.039999999999964 L 461.21999999999997 46.91999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 427.26 18.24000000000001 L 426.96 18.600000000000023 L 461.21999999999997 46.91999999999996 L 461.52 46.56000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 455.34000000000003 50.700000000000045 L 455.1 51.180000000000064 L 456.06000000000006 51.72000000000003 L 456.3 51.24000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 455.70000000000005 51.41999999999996 L 455.88000000000005 49.74000000000001 L 456.00000000000006 48.719999999999914 L 456.72 49.43999999999994 L 460.80000000000007 53.33999999999992 L 462.06000000000006 54.539999999999964 L 460.38000000000005 54.17999999999995 L 454.86000000000007 53.039999999999964 L 453.84000000000003 52.860000000000014 L 454.56000000000006 52.19999999999993 L 455.04 52.07999999999993 L 460.56000000000006 53.219999999999914 L 460.38000000000005 54.17999999999995 L 460.14000000000004 54.059999999999945 L 456.06000000000006 50.15999999999997 L 456.72 49.43999999999994 L 456.84000000000003 49.860000000000014 L 456.66 51.539999999999964" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 454.56 52.200000000000045 L 455.82 51.120000000000005 L 456.66 51.54000000000008 L 456.66 51.72000000000003 L 456.54 51.84000000000003 L 455.28000000000003 52.92000000000007" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 456.18 51.48000000000002 L 456.36 49.80000000000007 L 460.44 53.700000000000045 L 454.92 52.56000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 395.16 19.5 L 394.98 19.379999999999995 L 394.74 19.799999999999955 L 394.92 19.91999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 455.34000000000003 50.75999999999999 L 455.52000000000004 50.879999999999995 L 455.28000000000003 51.299999999999955 L 455.1 51.17999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 395.16 19.5 L 394.92 19.91999999999996 L 455.1 51.17999999999995 L 455.34000000000003 50.75999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 442.14 50.700000000000045 L 442.02 51.180000000000064 L 442.97999999999996 51.48000000000002 L 443.09999999999997 51.0" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 442.5 51.24000000000001 L 442.5 48.60000000000002 L 443.34 49.200000000000045 L 447.9 52.440000000000055 L 449.34 53.460000000000036 L 447.6 53.39999999999998 L 442.02 53.10000000000002 L 441.0 53.039999999999964 L 441.6 52.25999999999999 L 442.08 52.08000000000004 L 447.66 52.379999999999995 L 447.6 53.39999999999998 L 447.3 53.27999999999997 L 442.74 50.039999999999964 L 443.34 49.200000000000045 L 443.58 49.620000000000005 L 443.58 51.24000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 441.6 52.25999999999999 L 442.62 50.93999999999994 L 443.58000000000004 51.24000000000001 L 443.58000000000004 51.41999999999996 L 443.46000000000004 51.539999999999964 L 442.44 52.860000000000014" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 443.04 51.24000000000001 L 443.04 49.620000000000005 L 447.6 52.860000000000014 L 442.02000000000004 52.56000000000006" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 353.58 19.980000000000018 L 353.34 19.920000000000073 L 353.15999999999997 20.399999999999977 L 353.4 20.460000000000036" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 442.20000000000005 50.700000000000045 L 442.44000000000005 50.75999999999999 L 442.26000000000005 51.24000000000001 L 442.02000000000004 51.180000000000064" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 353.58 19.980000000000018 L 353.4 20.460000000000036 L 442.02 51.180000000000064 L 442.2 50.700000000000045" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="330.84000000000003" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="330.84000000000003" y="52.74001999999996"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="366.96" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="330.6" y="70.74002000000007"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="330.6" y="52.74000000000001"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="367.20000000000005" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="367.20000000000005" y="52.74001999999996"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="403.32" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="366.96" y="70.74002000000007"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="366.96" y="52.74000000000001"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="403.56" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="403.56" y="52.74001999999996"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="439.68" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="403.32" y="70.74002000000007"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="403.32" y="52.74000000000001"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.42" x="439.92" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="439.92" y="52.74001999999996"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="476.1" y="52.98000000000002"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="439.68" y="70.74002000000007"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="439.68" y="52.74000000000001"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="331.02" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="331.02" y="0.18002000000001317"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="367.14" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="330.78000000000003" y="18.180020000000013"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="330.78000000000003" y="0.17999999999994998"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="367.38" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="367.38" y="0.18002000000001317"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="403.5" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="367.14" y="18.180020000000013"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="367.14" y="0.17999999999994998"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.42" x="403.74" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="403.74" y="0.18002000000001317"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="439.92" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.660000000000004" x="403.5" y="18.180020000000013"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="403.5" y="0.17999999999994998"></rect>
<rect height="18.0" style="fill: rgb(100%, 100%, 100%)" width="36.36" x="440.16" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="440.16" y="0.18002000000001317"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="476.28000000000003" y="0.4199999999999591"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="36.6" x="439.92" y="18.180020000000013"></rect>
<rect height="18.240000000000002" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="439.92" y="0.17999999999994998"></rect>
<path d="M 382.62 72.89999999999998 L 382.74 73.38 L 383.76 73.07999999999993 L 383.64 72.60000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 383.28000000000003 73.13999999999999 L 382.26000000000005 71.81999999999994 L 381.66 71.03999999999996 L 382.68 70.98000000000002 L 388.26000000000005 70.79999999999995 L 390.00000000000006 70.74000000000001 L 388.56 71.75999999999999 L 383.94000000000005 74.88 L 383.1 75.48000000000002 L 383.1 74.46000000000004 L 383.40000000000003 74.03999999999996 L 388.02000000000004 70.91999999999996 L 388.56 71.75999999999999 L 388.32000000000005 71.81999999999994 L 382.74 72.0 L 382.68 70.98000000000002 L 383.1 71.22000000000003 L 384.12 72.53999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 383.1 74.46000000000004 L 383.16 72.84000000000003 L 384.12 72.54000000000008 L 384.24 72.66000000000008 L 384.24 72.84000000000003 L 384.18 74.46000000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 383.70000000000005 72.84000000000003 L 382.68000000000006 71.51999999999998 L 388.26000000000005 71.34000000000003 L 383.64000000000004 74.46000000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 325.5 91.38 L 325.26 91.43999999999994 L 325.38 91.91999999999996 L 325.62 91.86000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 382.62 72.89999999999998 L 382.86 72.84000000000003 L 382.98 73.31999999999994 L 382.74 73.38" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 325.5 91.38 L 325.62 91.86000000000001 L 382.74 73.38 L 382.62 72.89999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 348.36 74.15999999999997 L 348.6 74.63999999999999 L 349.56 74.15999999999997 L 349.32 73.67999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 349.08 74.27999999999997 L 347.88 73.13999999999999 L 347.15999999999997 72.48000000000002 L 348.18 72.29999999999995 L 353.7 71.33999999999992 L 355.44 70.98000000000002 L 354.12 72.17999999999995 L 349.97999999999996 75.89999999999998 L 349.2 76.62 L 349.08 75.60000000000002 L 349.32 75.17999999999995 L 353.46 71.45999999999992 L 354.12 72.17999999999995 L 353.88 72.29999999999995 L 348.35999999999996 73.25999999999999 L 348.18 72.29999999999995 L 348.59999999999997 72.41999999999996 L 349.8 73.55999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 349.08 75.60000000000002 L 348.9 73.98000000000002 L 349.8 73.56000000000006 L 349.91999999999996 73.68000000000006 L 349.91999999999996 73.86000000000001 L 350.09999999999997 75.48000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 349.44 73.91999999999996 L 348.24 72.77999999999997 L 353.76 71.81999999999994 L 349.62 75.53999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 312.24 92.03999999999996 L 312.06 92.15999999999997 L 312.3 92.57999999999993 L 312.48 92.45999999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 348.36 74.22000000000003 L 348.54 74.10000000000002 L 348.78000000000003 74.51999999999998 L 348.6 74.63999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 312.24 92.03999999999996 L 312.48 92.45999999999992 L 348.6 74.63999999999999 L 348.36 74.21999999999991" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 214.44 73.43999999999994 L 214.56 72.95999999999992 L 213.48 72.71999999999991 L 213.35999999999999 73.19999999999993" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 213.9 72.89999999999998 L 214.14000000000001 74.57999999999993 L 214.32 75.60000000000002 L 213.36 75.05999999999995 L 208.44 72.36000000000001 L 207.0 71.51999999999998 L 208.68 71.45999999999992 L 214.26000000000002 71.10000000000002 L 215.34 70.98000000000002 L 214.74 71.88 L 214.32 72.05999999999995 L 208.74 72.41999999999996 L 208.68 71.45999999999992 L 208.98000000000002 71.51999999999998 L 213.9 74.22000000000003 L 213.36 75.05999999999995 L 213.18 74.69999999999993 L 212.94 73.01999999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 214.74 71.88 L 213.84 73.25999999999999 L 212.94 73.01999999999998 L 212.88 72.84000000000003 L 213.0 72.65999999999997 L 213.9 71.27999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 213.42000000000002 72.96000000000004 L 213.66000000000003 74.63999999999999 L 208.74 71.94000000000005 L 214.32000000000002 71.58000000000004" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 303.90000000000003 93.65999999999997 L 304.14000000000004 93.71999999999991 L 304.26000000000005 93.24000000000001 L 304.02000000000004 93.17999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 214.44 73.43999999999994 L 214.2 73.38 L 214.32 72.89999999999998 L 214.56 72.95999999999992" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 303.90000000000003 93.65999999999997 L 304.02000000000004 93.17999999999995 L 214.56000000000003 72.95999999999992 L 214.44000000000003 73.43999999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 249.36 74.39999999999998 L 249.48000000000002 73.91999999999996 L 248.46 73.67999999999995 L 248.34 74.15999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 248.88 73.86000000000001 L 249.06 75.48000000000002 L 249.24 76.5 L 248.28 75.96000000000004 L 243.42 73.20000000000005 L 241.98 72.36000000000001 L 243.66 72.24000000000001 L 249.24 72.06000000000006 L 250.32 72.0 L 249.72 72.84000000000003 L 249.29999999999998 73.01999999999998 L 243.72 73.25999999999999 L 243.66 72.24000000000001 L 243.96 72.36000000000001 L 248.82 75.12 L 248.28 75.96000000000004 L 248.1 75.60000000000002 L 247.92 73.98000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 249.72 72.84000000000003 L 248.82 74.22000000000003 L 247.92 73.98000000000002 L 247.85999999999999 73.80000000000007 L 247.98 73.62 L 248.88 72.24000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 248.4 73.91999999999996 L 248.58 75.53999999999996 L 243.72 72.77999999999997 L 249.3 72.53999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 321.90000000000003 92.46000000000004 L 322.14000000000004 92.51999999999998 L 322.26000000000005 92.04000000000008 L 322.02000000000004 91.98000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 249.36 74.39999999999998 L 249.12 74.34000000000003 L 249.24 73.86000000000001 L 249.48000000000002 73.91999999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 321.90000000000003 92.46000000000004 L 322.02000000000004 91.98000000000002 L 249.48000000000002 73.92000000000007 L 249.36 74.40000000000009" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.16 45.48000000000002 L 319.68 45.60000000000002 L 319.92 46.620000000000005 L 320.40000000000003 46.5" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 319.86 46.139999999999986 L 321.24 45.24000000000001 L 322.08000000000004 44.639999999999986 L 322.02000000000004 45.72000000000003 L 321.72 51.299999999999955 L 321.66 52.98000000000002 L 320.82 51.539999999999964 L 318.12 46.67999999999995 L 317.58000000000004 45.77999999999997 L 318.6 45.89999999999998 L 318.96000000000004 46.139999999999986 L 321.66 51.0 L 320.82 51.539999999999964 L 320.76 51.24000000000001 L 321.06 45.65999999999997 L 322.02000000000004 45.72000000000003 L 321.84000000000003 46.08000000000004 L 320.46000000000004 46.98000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 318.6 45.89999999999998 L 320.22 46.07999999999993 L 320.46000000000004 46.98000000000002 L 320.28000000000003 47.10000000000002 L 320.1 47.039999999999964 L 318.48 46.860000000000014" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.16 46.559999999999945 L 321.54 45.65999999999997 L 321.24 51.239999999999895 L 318.54 46.379999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 314.34000000000003 19.5 L 314.28000000000003 19.25999999999999 L 313.8 19.379999999999995 L 313.86 19.620000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 320.16 45.48000000000002 L 320.22 45.72000000000003 L 319.74 45.84000000000003 L 319.68 45.60000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 314.34000000000003 19.5 L 313.86 19.620000000000005 L 319.68 45.60000000000002 L 320.16 45.48000000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 313.5 46.139999999999986 L 313.14 46.5 L 313.98 47.22000000000003 L 314.34 46.860000000000014" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 313.68 46.860000000000014 L 314.22 45.30000000000007 L 314.52 44.27999999999997 L 315.12 45.24000000000001 L 318.3 49.860000000000014 L 319.32 51.30000000000007 L 317.7 50.58000000000004 L 312.54 48.30000000000007 L 311.58 47.879999999999995 L 312.48 47.39999999999998 L 312.96 47.39999999999998 L 318.12 49.680000000000064 L 317.7 50.58000000000004 L 317.46 50.39999999999998 L 314.28000000000003 45.77999999999997 L 315.12 45.24000000000001 L 315.18 45.65999999999997 L 314.64 47.22000000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 312.48 47.39999999999998 L 313.92 46.620000000000005 L 314.64000000000004 47.22000000000003 L 314.58000000000004 47.39999999999998 L 314.40000000000003 47.45999999999992 L 312.96000000000004 48.24000000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 314.16 47.039999999999964 L 314.70000000000005 45.48000000000002 L 317.88000000000005 50.09999999999991 L 312.72 47.819999999999936" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 279.24 17.819999999999936 L 279.06 17.699999999999932 L 278.76 18.059999999999945 L 278.94 18.17999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 313.5 46.139999999999986 L 313.68 46.25999999999999 L 313.38 46.620000000000005 L 313.2 46.5" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 279.24 17.819999999999936 L 278.94 18.17999999999995 L 313.2 46.499999999999886 L 313.5 46.139999999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 307.32 50.34000000000003 L 307.08 50.82000000000005 L 308.04 51.30000000000007 L 308.28 50.82000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 307.68 51.0 L 307.86 49.379999999999995 L 307.92 48.360000000000014 L 308.7 49.08000000000004 L 312.78000000000003 52.91999999999996 L 314.04 54.120000000000005 L 312.36 53.75999999999999 L 306.90000000000003 52.620000000000005 L 305.88 52.440000000000055 L 306.6 51.77999999999997 L 307.08 51.65999999999997 L 312.54 52.799999999999955 L 312.36 53.75999999999999 L 312.12 53.639999999999986 L 308.04 49.799999999999955 L 308.7 49.08000000000004 L 308.82 49.5 L 308.64 51.120000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 306.6 51.77999999999997 L 307.8 50.69999999999993 L 308.64000000000004 51.120000000000005 L 308.64000000000004 51.299999999999955 L 308.52000000000004 51.41999999999996 L 307.32000000000005 52.5" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 308.16 51.059999999999945 L 308.34000000000003 49.43999999999994 L 312.42 53.27999999999997 L 306.96000000000004 52.139999999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 247.20000000000002 19.08000000000004 L 247.02 18.960000000000036 L 246.78000000000003 19.379999999999995 L 246.96 19.5" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 307.32 50.39999999999998 L 307.5 50.51999999999998 L 307.26 50.93999999999994 L 307.08 50.819999999999936" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 247.20000000000002 19.08000000000004 L 246.96 19.5 L 307.08000000000004 50.82000000000005 L 307.32000000000005 50.40000000000009" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 294.12 50.27999999999997 L 294.0 50.75999999999999 L 295.02 51.120000000000005 L 295.14 50.639999999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 294.54 50.879999999999995 L 294.48 49.200000000000045 L 294.48 48.17999999999995 L 295.32 48.77999999999997 L 299.88 52.01999999999998 L 301.32 53.039999999999964 L 299.58000000000004 52.98000000000002 L 294.0 52.67999999999995 L 292.98 52.620000000000005 L 293.58000000000004 51.84000000000003 L 294.06 51.65999999999997 L 299.64000000000004 51.960000000000036 L 299.58000000000004 52.98000000000002 L 299.28000000000003 52.860000000000014 L 294.72 49.620000000000005 L 295.32 48.77999999999997 L 295.56 49.200000000000045 L 295.62 50.879999999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 293.58 51.84000000000003 L 294.65999999999997 50.58000000000004 L 295.62 50.879999999999995 L 295.56 51.06000000000006 L 295.5 51.180000000000064 L 294.41999999999996 52.440000000000055" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 295.08 50.879999999999995 L 295.02 49.200000000000045 L 299.58 52.43999999999994 L 294.0 52.139999999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 205.56 19.559999999999945 L 205.32 19.5 L 205.14000000000001 19.979999999999905 L 205.38 20.039999999999964" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 294.18 50.27999999999997 L 294.42 50.33999999999992 L 294.24 50.819999999999936 L 294.0 50.75999999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 205.56 19.559999999999945 L 205.38 20.039999999999964 L 294.0 50.75999999999999 L 294.18 50.27999999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="16.86740279999998" x="163.9804905" y="13.206303500000104">SRC</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="118.73986719999999" x="196.38" y="13.386101000000053">X7 X6 X5 X4</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="118.79900059999989" x="348.12" y="15.186101000000008">X3 X2 X1 X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="21.32638079999998" x="159.54069090000002" y="66.36643100000015">DEST</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="118.74066629999999" x="199.56" y="67.566101">Y7 Y6 Y5 Y4</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="118.79979969999988" x="347.94" y="67.74610099999995">Y3 Y2 Y1 Y0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="31.137730600000026" x="219.1204879" y="93.36604950000003">00B - X4</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="33.29769790000006" x="176.5803994" y="93.60737769999992">Encoding</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="31.1481189000001" x="424.7392698" y="98.58589430000006">00B - X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="33.348041200000125" x="382.19918129999996" y="98.76569180000001">Encoding</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="31.137730600000026" x="219.1204879" y="102.3063803">01B - X5</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="38.6244984999999" x="171.2400141" y="102.48697689999995">of Fields in</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="28.86828660000009" x="262.14" y="106.92610100000002">ORDER</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="31.1481189000001" x="424.7392698" y="107.52542600000004">01B - X1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="38.658060699999794" x="376.8595951" y="107.70602259999998">of Fields in</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="31.137730600000026" x="219.1204879" y="111.24671109999997">10B - X6</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.917956000000004pt; fill: #000" textLength="28.868286599999976" x="181.0801315" y="111.42730769999991">ORDER</text></g></svg>
<p>10B - X2 ORDER 11B - X7 7 6 5 4 3 2 1 0 Operand 11B - X3 Operand</p>
<figcaption><span class="not-imported">Figure 4-16</span>. 256-bit VPSHUFD Instruction Operation</figcaption>
<p>The source operand can be an XMM register or a 128-bit memory location. The destination operand is an XMM register. The order operand is an 8-bit immediate. Note that this instruction permits a doubleword in the source operand to be copied to more than one doubleword location in the destination operand.</p>
<p>In 64-bit mode and not encoded in VEX/EVEX, using REX.R permits this instruction to access XMM8-XMM15.</p>
<p>128-bit Legacy SSE version: Bits (MAXVL-1:128) of the corresponding YMM destination register remain unchanged.</p>
<p>VEX.128 encoded version: The source operand can be an XMM register or a 128-bit memory location. The destination operand is an XMM register. Bits (MAXVL-1:128) of the corresponding ZMM register are zeroed.</p>
<p>VEX.256 encoded version: The source operand can be an YMM register or a 256-bit memory location. The destination operand is an YMM register. Bits (MAXVL-1:256) of the corresponding ZMM register are zeroed. Bits (255-1:128) of the destination stores the shuffled results of the upper 16 bytes of the source operand using the immediate byte as the order operand.</p>
<p>EVEX encoded version: The source operand can be an ZMM/YMM/XMM register, a 512/256/128-bit memory location, or a 512/256/128-bit vector broadcasted from a 32-bit memory location. The destination operand is a ZMM/YMM/XMM register updated according to the writemask.</p>
<p>Each 128-bit lane of the destination stores the shuffled results of the respective lane of the source operand using the immediate byte as the order operand.</p>
<p>Note: EVEX.vvvv and VEX.vvvv are reserved and must be 1111b otherwise instructions will #UD.</p>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="pshufd--128-bit-legacy-sse-version-">PSHUFD (128-bit Legacy SSE Version)<a class="anchor" href="#pshufd--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[31:0] := (SRC &gt;&gt; (ORDER[1:0] * 32))[31:0];
DEST[63:32] := (SRC &gt;&gt; (ORDER[3:2] * 32))[31:0];
DEST[95:64] := (SRC &gt;&gt; (ORDER[5:4] * 32))[31:0];
DEST[127:96] := (SRC &gt;&gt; (ORDER[7:6] * 32))[31:0];
DEST[MAXVL-1:128] (Unmodified)
</pre>
<h3 id="vpshufd--vex-128-encoded-version-">VPSHUFD (VEX.128 Encoded Version)<a class="anchor" href="#vpshufd--vex-128-encoded-version-">
</a></h3>
<pre>DEST[31:0] := (SRC &gt;&gt; (ORDER[1:0] * 32))[31:0];
DEST[63:32] := (SRC &gt;&gt; (ORDER[3:2] * 32))[31:0];
DEST[95:64] := (SRC &gt;&gt; (ORDER[5:4] * 32))[31:0];
DEST[127:96] := (SRC &gt;&gt; (ORDER[7:6] * 32))[31:0];
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="vpshufd--vex-256-encoded-version-">VPSHUFD (VEX.256 Encoded Version)<a class="anchor" href="#vpshufd--vex-256-encoded-version-">
</a></h3>
<pre>DEST[31:0] := (SRC[127:0] &gt;&gt; (ORDER[1:0] * 32))[31:0];
DEST[63:32] := (SRC[127:0] &gt;&gt; (ORDER[3:2] * 32))[31:0];
DEST[95:64] := (SRC[127:0] &gt;&gt; (ORDER[5:4] * 32))[31:0];
DEST[127:96] := (SRC[127:0] &gt;&gt; (ORDER[7:6] * 32))[31:0];
DEST[159:128] := (SRC[255:128] &gt;&gt; (ORDER[1:0] * 32))[31:0];
DEST[191:160] := (SRC[255:128] &gt;&gt; (ORDER[3:2] * 32))[31:0];
DEST[223:192] := (SRC[255:128] &gt;&gt; (ORDER[5:4] * 32))[31:0];
DEST[255:224] := (SRC[255:128] &gt;&gt; (ORDER[7:6] * 32))[31:0];
DEST[MAXVL-1:256] := 0
</pre>
<h3 id="vpshufd--evex-encoded-versions-">VPSHUFD (EVEX Encoded Versions)<a class="anchor" href="#vpshufd--evex-encoded-versions-">
</a></h3>
<pre>(KL, VL) = (4, 128), (8, 256), (16, 512)
FOR j := 0 TO KL-1
i := j * 32
IF (EVEX.b = 1) AND (SRC *is memory*)
THEN TMP_SRC[i+31:i] := SRC[31:0]
ELSE TMP_SRC[i+31:i] := SRC[i+31:i]
FI;
ENDFOR;
IF VL &gt;= 128
TMP_DEST[31:0] := (TMP_SRC[127:0] &gt;&gt; (ORDER[1:0] * 32))[31:0];
TMP_DEST[63:32] := (TMP_SRC[127:0] &gt;&gt; (ORDER[3:2] * 32))[31:0];
TMP_DEST[95:64] := (TMP_SRC[127:0] &gt;&gt; (ORDER[5:4] * 32))[31:0];
TMP_DEST[127:96] := (TMP_SRC[127:0] &gt;&gt; (ORDER[7:6] * 32))[31:0];
FI;
IF VL &gt;= 256
TMP_DEST[159:128] := (TMP_SRC[255:128]
&gt;&gt; (ORDER[1:0] * 32))[31:0];
TMP_DEST[191:160] := (TMP_SRC[255:128]
&gt;&gt; (ORDER[3:2] * 32))[31:0];
TMP_DEST[223:192] := (TMP_SRC[255:128]
&gt;&gt; (ORDER[5:4] * 32))[31:0];
TMP_DEST[255:224] := (TMP_SRC[255:128]
&gt;&gt; (ORDER[7:6] * 32))[31:0];
FI;
IF VL &gt;= 512
TMP_DEST[287:256] := (TMP_SRC[383:256]
&gt;&gt; (ORDER[1:0] * 32))[31:0];
TMP_DEST[319:288] := (TMP_SRC[383:256]
&gt;&gt; (ORDER[3:2] * 32))[31:0];
TMP_DEST[351:320] := (TMP_SRC[383:256]
&gt;&gt; (ORDER[5:4] * 32))[31:0];
TMP_DEST[383:352] := (TMP_SRC[383:256]
&gt;&gt; (ORDER[7:6] * 32))[31:0];
TMP_DEST[415:384] := (TMP_SRC[511:384]
&gt;&gt; (ORDER[1:0] * 32))[31:0];
TMP_DEST[447:416] := (TMP_SRC[511:384]
&gt;&gt; (ORDER[3:2] * 32))[31:0];
TMP_DEST[479:448] := (TMP_SRC[511:384]
&gt;&gt; (ORDER[5:4] * 32))[31:0];
TMP_DEST[511:480] := (TMP_SRC[511:384]
&gt;&gt; (ORDER[7:6] * 32))[31:0];
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>
<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>VPSHUFD __m512i _mm512_shuffle_epi32(__m512i a, int n );
</pre>
<pre>VPSHUFD __m512i _mm512_mask_shuffle_epi32(__m512i s, __mmask16 k, __m512i a, int n );
</pre>
<pre>VPSHUFD __m512i _mm512_maskz_shuffle_epi32( __mmask16 k, __m512i a, int n );
</pre>
<pre>VPSHUFD __m256i _mm256_mask_shuffle_epi32(__m256i s, __mmask8 k, __m256i a, int n );
</pre>
<pre>VPSHUFD __m256i _mm256_maskz_shuffle_epi32( __mmask8 k, __m256i a, int n );
</pre>
<pre>VPSHUFD __m128i _mm_mask_shuffle_epi32(__m128i s, __mmask8 k, __m128i a, int n );
</pre>
<pre>VPSHUFD __m128i _mm_maskz_shuffle_epi32( __mmask8 k, __m128i a, int n );
</pre>
<pre>(V)PSHUFD __m128i _mm_shuffle_epi32(__m128i a, int n)
</pre>
<pre>VPSHUFD __m256i _mm256_shuffle_epi32(__m256i a, const int n)
</pre>
<h2 id="flags-affected">Flags Affected<a class="anchor" href="#flags-affected">
</a></h2>
<p>None.</p>
<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 <span class="not-imported">Table 2-50</span>, “Type E4NF Class Exception Conditions.”</p>
<p>Additionally:</p>
<table>
<tr>
<td>#UD</td>
<td>If VEX.vvvv ≠ 1111B or EVEX.vvvv ≠ 1111B.</td></tr></table><footer><p>
This UNOFFICIAL, mechanically-separated, non-verified reference is provided for convenience, but it may be
inc<span style="opacity: 0.2">omp</span>lete or b<sub>r</sub>oke<sub>n</sub> in various obvious or non-obvious
ways. Refer to <a href="https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4">Intel® 64 and IA-32 Architectures Software Developers Manual</a> for anything serious.
</p></footer></body></html>