ia32-64/x86/pshufd.html
2025-07-08 02:23:29 -03:00

446 lines
53 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>