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

399 lines
56 KiB
HTML
Raw 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>HSUBPS
— Packed Single Precision Floating-Point Horizontal Subtract</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>HSUBPS
— Packed Single Precision Floating-Point Horizontal Subtract</h1>
<table>
<tr>
<th>Opcode/Instruction</th>
<th>Op/En</th>
<th>64/32-bit Mode</th>
<th>CPUID Feature Flag</th>
<th>Description</th></tr>
<tr>
<td>F2 0F 7D /r HSUBPS xmm1, xmm2/m128</td>
<td>RM</td>
<td>V/V</td>
<td>SSE3</td>
<td>Horizontal subtract packed single precision floating-point values from xmm2/m128 to xmm1.</td></tr>
<tr>
<td>VEX.128.F2.0F.WIG 7D /r VHSUBPS xmm1, xmm2, xmm3/m128</td>
<td>RVM</td>
<td>V/V</td>
<td>AVX</td>
<td>Horizontal subtract packed single precision floating-point values from xmm2 and xmm3/mem.</td></tr>
<tr>
<td>VEX.256.F2.0F.WIG 7D /r VHSUBPS ymm1, ymm2, ymm3/m256</td>
<td>RVM</td>
<td>V/V</td>
<td>AVX</td>
<td>Horizontal subtract packed single precision floating-point values from ymm2 and ymm3/mem.</td></tr></table>
<h2 id="instruction-operand-encoding">Instruction Operand Encoding<a class="anchor" href="#instruction-operand-encoding">
</a></h2>
<table>
<tr>
<th>Op/En</th>
<th>Operand 1</th>
<th>Operand 2</th>
<th>Operand 3</th>
<th>Operand 4</th></tr>
<tr>
<td>RM</td>
<td>ModRM:reg (r, w)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td>
<td>N/A</td></tr>
<tr>
<td>RVM</td>
<td>ModRM:reg (w)</td>
<td>VEX.vvvv (r)</td>
<td>ModRM:r/m (r)</td>
<td>N/A</td></tr></table>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>Subtracts the single precision floating-point value in the second dword of the destination operand from the first dword of the destination operand and stores the result in the first dword of the destination operand.</p>
<p>Subtracts the single precision floating-point value in the fourth dword of the destination operand from the third dword of the destination operand and stores the result in the second dword of the destination operand.</p>
<p>Subtracts the single precision floating-point value in the second dword of the source operand from the first dword of the source operand and stores the result in the third dword of the destination operand.</p>
<p>Subtracts the single precision floating-point value in the fourth dword of the source operand from the third dword of the source operand and stores the result in the fourth dword of the destination operand.</p>
<p>In 64-bit mode, use of the REX.R prefix permits this instruction to access additional registers (XMM8-XMM15).</p>
<p>See <a href='hsubps.html#fig-3-23'>Figure 3-23</a> for HSUBPS; see <a href='hsubps.html#fig-3-24'>Figure 3-24</a> for VHSUBPS.</p>
<figure id="fig-3-23">
<svg style="width: 433.3668pt; height: 259.2108pt" viewBox="118.292 0.0 366.139 221.00900000000001">
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
<rect height="216.00900000000001" style="stroke: rgb(0%, 0%, 0%)" width="361.139" x="120.792" y="0.0"></rect>
<rect height="47.152" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="144.769"></rect>
<rect height="47.152" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="144.769"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="27.00100000000009"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="27.000999999999976"></rect>
<rect height="47.152" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="144.769"></rect>
<rect height="47.152" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="144.769"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="27.00100000000009"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="27.000999999999976"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="86.39800000000002"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="360.427" y="86.39800000000002"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="86.39800000000002"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="292.924" y="86.39800000000002"></rect>
<rect height="47.152" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="144.769"></rect>
<rect height="47.152" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="144.769"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="27.00100000000009"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="27.000999999999976"></rect>
<rect height="47.152" style="fill: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="144.769"></rect>
<rect height="47.152" style="stroke: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="144.769"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="27.00100000000009"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="27.000999999999976"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="86.39800000000002"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="67.503" x="225.422" y="86.39800000000002"></rect>
<rect height="27.001" style="fill: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="86.39800000000002"></rect>
<rect height="27.001" style="stroke: rgb(0%, 0%, 0%)" width="68.628" x="156.794" y="86.39800000000002"></rect>
<path d="M 326.676 113.399 L 326.676 121.50900000000001 L 394.179 121.50900000000001 L 394.179 140.69000000000005" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 396.218 140.69000000000005 L 394.178 144.7700000000001 L 392.13800000000003 140.69000000000005 L 396.218 140.69000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 394.178 123.62400000000002 L 394.178 113.404" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 191.67 113.399 L 191.67 126.00999999999999 L 326.67499999999995 126.00999999999999 L 326.67499999999995 140.69000000000005" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 328.716 140.69000000000005 L 326.676 144.7700000000001 L 324.636 140.69000000000005 L 328.716 140.69000000000005" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 259.173 126.005 L 259.173 113.39499999999998" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 259.173 54.00199999999995 L 259.173 65.25199999999995 L 135.418 65.25199999999995 L 135.418 135.005 L 191.67000000000002 135.005 L 191.67000000000002 140.82499999999993" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 193.71 140.82600000000002 L 191.67000000000002 144.90600000000006 L 189.63 140.82600000000002 L 193.71 140.82600000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 326.676 54.002000000000066 L 326.676 75.38300000000004" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 394.179 54.002000000000066 L 394.179 75.37300000000005 L 146.66899999999995 75.37300000000005 L 146.66899999999995 130.5050000000001 L 259.174 130.5050000000001 L 259.174 140.82500000000005" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<path d="M 261.213 140.82600000000002 L 259.173 144.90600000000006 L 257.13300000000004 140.82600000000002 L 261.213 140.82600000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 191.107 54.002000000000066 L 191.107 65.25200000000007" style="fill-rule: nonzero; stroke: rgb(0%, 0%, 0%)"></path>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="105.35595070000016" x="231.2468" y="19.268063000000097">HSUBPS xmm1, xmm2/m128</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="24.00090000000006" x="434.4048181400001" y="39.78163223000013">xmm2/</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="28.913084200000014" x="176.6646" y="44.58216300000004">[127:96]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="24.464917400000047" x="246.94240000000002" y="44.58216300000004">[95:64]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="24.464917400000047" x="314.4451" y="44.58216300000004">[63:32]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="20.016750600000023" x="384.1678" y="44.58216300000004">[31:0]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="20.008750300000088" x="434.4048181400001" y="49.38199223000015">m128</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="21.776816600000075" x="434.40479832000005" y="103.97799026000007">xmm1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="28.913084200000014" x="176.6646" y="103.97836300000006">[127:96]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="24.464917400000047" x="246.94240000000002" y="103.97836300000006">[95:64]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="24.464917400000047" x="314.4451" y="103.97836300000006">[63:32]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="20.016750600000023" x="384.1678" y="103.97836300000006">[31:0]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="40.20614563452435" x="171.73440000000002" y="162.7515772180758">xmm2/m128</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="40.20614563452429" x="239.81210000000002" y="162.7515772180758">xmm2/m128</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="32.30521139999996" x="434.4048181400001" y="167.44961960000012">RESULT:</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="46.599953588662856" x="304.17470000000003" y="167.5518772180758">xmm1[95:64] -</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="42.55616558866285" x="373.6374" y="167.5518772180758">xmm1[31:0] -</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="50.624217317262236" x="166.64402730000003" y="172.35193721807582">[95:64] - xmm2/</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="46.580429317262144" x="236.68180080000002" y="172.35193721807582">[31:0] - xmm2/</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277799999951pt; fill: #000" textLength="21.776816600000075" x="434.4048181400001" y="177.04997960000014">xmm1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="46.18041431726209" x="304.37470750000006" y="177.1522372180758">xmm1[127:96]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="42.136626317262085" x="373.8272253" y="177.1522372180758">xmm1[63:32]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="44.57308131726222" x="169.56413680000003" y="181.95229721807584">m128[127:96]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.063515733038685pt; fill: #000" textLength="40.52929331726213" x="239.60191030000001" y="181.95229721807584">m128[63:32]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277800000008pt; fill: #000" textLength="28.913084200000014" x="177.21982082" y="206.63863989000004">[127:96]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277800000008pt; fill: #000" textLength="24.46491740000002" x="246.95283571000002" y="206.63863989000004">[95:64]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277800000008pt; fill: #000" textLength="24.464917400000047" x="309.95453161" y="206.63863989000004">[63:32]</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 7.408277800000008pt; fill: #000" textLength="20.016750600000023" x="388.6774836100001" y="206.63863989000004">[31:0]</text></g></svg>
<figcaption><a href='hsubps.html#fig-3-23'>Figure 3-23</a>. HSUBPS—Packed Single Precision Floating-Point Horizontal Subtract</figcaption></figure>
<figure id="fig-3-24">
<svg style="width: 381.02399999999994pt; height: 97.776012pt" viewBox="154.82 0.0 322.52 86.48001">
<g xmlns="http://www.w3.org/2000/svg" style="fill: none; stroke: none">
<path d="M 262.26 53.46001000000001 L 265.8 51.060010000000034 L 266.4 50.70001000000002 L 266.58 51.36000999999999 L 271.56 66.12001000000004 L 272.15999999999997 67.80000999999999 L 270.78 66.66001 L 258.71999999999997 56.76001000000002 L 258.18 56.34001000000001 L 258.71999999999997 55.92000999999999 L 259.32 55.98000999999999 L 271.38 65.88001000000003 L 270.78 66.66001 L 270.59999999999997 66.42000999999999 L 265.62 51.66001 L 266.58 51.36000999999999 L 266.4 51.90001000000001 L 262.86 54.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 258.72 55.92000999999999 L 262.26000000000005 53.46001000000001 L 262.86 54.300009999999986 L 259.32000000000005 56.760009999999966" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 262.56 53.88000999999997 L 266.1 51.48000999999999 L 271.08 66.24000999999998 L 259.02 56.34000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 235.8 13.200009999999963 L 234.18 14.34000999999995 L 261.48 54.12000999999998 L 263.1 52.980009999999936" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 258.90000000000003 58.14000999999996 L 259.02000000000004 57.960009999999954 L 259.08000000000004 57.78000999999995 C 259.208 56.76800999999995 258.19700000000006 56.222009999999955 257.40000000000003 56.82000999999997L 257.16 57.18000999999998 C 256.843 58.109009999999955 257.70700000000005 58.88400999999999 258.6 58.44000999999997L 258.78000000000003 58.32000999999997 L 258.90000000000003 58.14000999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 258.12 57.540009999999995 L 260.64 54.12000999999998 L 261.0 53.580010000000016 L 261.42 54.12000999999998 L 271.02 66.36000999999999 L 272.1 67.74000999999998 L 270.48 67.14001000000002 L 255.84 61.800009999999986 L 255.18 61.56000999999998 L 255.6 61.02001000000001 L 256.14 60.84001000000001 L 270.78000000000003 66.18000999999998 L 270.48 67.14001000000002 L 270.24 66.96001000000001 L 260.64 54.72001 L 261.42 54.12000999999998 L 261.42 54.72001 L 258.9 58.14001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 255.60000000000002 61.02001000000001 L 258.12 57.540009999999995 L 258.90000000000003 58.14001000000002 L 256.38 61.620010000000036" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 258.48 57.84001000000001 L 261.0 54.42000999999999 L 270.6 66.66001 L 255.96 61.320010000000025" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 198.42000000000002 12.960010000000011 L 197.28000000000003 14.580010000000016 L 257.58000000000004 58.44001000000003 L 258.72 56.820010000000025" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 404.22 57.84001000000001 L 404.34000000000003 57.72001 L 404.40000000000003 57.540009999999995 C 404.71700000000004 56.53401000000002 403.56800000000004 55.89600999999999 402.78000000000003 56.52001000000001L 402.66 56.64001000000002 L 402.54 56.820010000000025 C 402.16900000000004 57.75101000000001 403.079 58.60001 403.98 58.14001000000002L 404.1 58.02001000000001 L 404.22 57.84001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 403.5 57.240009999999984 L 406.08 53.82000999999997 L 406.5 53.34001000000001 L 406.86 53.82000999999997 L 416.22 66.36000999999999 L 417.3 67.80000999999999 L 401.1 61.44000999999997 L 400.44 61.20000999999996 L 400.86 60.66001 L 401.4 60.48000999999999 L 415.98 66.18000999999998 L 415.62 67.14000999999996 L 415.38 66.96001000000001 L 406.08 54.42000999999999 L 406.86 53.82000999999997 L 406.86 54.42000999999999 L 404.28 57.84001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 400.86 60.66001 L 403.5 57.240009999999984 L 404.28000000000003 57.84001000000001 L 401.64 61.26001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 403.86 57.540009999999995 L 406.44 54.12000999999998 L 415.8 66.66001 L 401.22 60.96001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 346.92 12.960010000000011 L 345.72 14.520010000000013 L 402.84000000000003 58.02001000000001 L 404.04 56.46001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 408.0 54.300009999999986 L 408.24 54.06000999999998 C 408.843 53.27900999999997 407.967 52.20101 407.04 52.56000999999998L 406.68 52.800009999999986 C 406.097 53.522009999999966 406.584 54.65400999999997 407.64 54.48000999999999L 407.82 54.42000999999999 L 408.0 54.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 407.40000000000003 53.46001000000001 L 410.94000000000005 51.060010000000034 L 411.54 50.76001000000002 L 411.72 51.36000999999999 L 416.64000000000004 66.12001000000004 L 417.24 67.80000999999999 L 415.86 66.66001 L 403.86 56.76001000000002 L 403.32000000000005 56.34001000000001 L 403.86 55.92000999999999 L 404.46000000000004 55.98000999999999 L 416.46000000000004 65.88001000000003 L 415.86 66.66001 L 415.68 66.42000999999999 L 410.76000000000005 51.66001 L 411.72 51.36000999999999 L 411.54 51.90001000000001 L 408.00000000000006 54.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 403.86 55.92000999999999 L 407.40000000000003 53.46001000000001 L 408.0 54.300009999999986 L 404.46000000000004 56.760009999999966" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 407.70000000000005 53.88000999999997 L 411.24000000000007 51.48000999999999 L 416.16 66.24000999999998 L 404.16 56.34000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 380.94 13.200009999999963 L 379.32 14.34000999999995 L 406.62 54.12000999999998 L 408.24 52.980009999999936" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 309.24 51.42000999999999 L 309.42 51.42000999999999 L 309.6 51.36000999999999 C 310.508 50.99601000000001 310.356 49.679010000000005 309.42 49.44000999999997L 309.0 49.44000999999997 C 308.064 49.679010000000005 307.91200000000003 50.99601000000001 308.82 51.36000999999999L 309.0 51.42000999999999 L 309.24 51.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 309.24 50.46001000000001 L 314.16 50.46001000000001 L 313.98 51.120010000000036 L 309.72 66.12001000000004 L 309.24 67.80000999999999 L 308.76 66.12001000000004 L 304.44 51.120010000000036 L 304.26 50.46001000000001 L 304.92 50.46001000000001 L 305.40000000000003 50.820010000000025 L 309.72 65.82001000000002 L 308.76 66.12001000000004 L 308.76 65.82001000000002 L 313.02 50.820010000000025 L 313.98 51.120010000000036 L 313.5 51.48000999999999 L 309.24 51.48000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="304.92" y="50.46001000000001"></rect>
<path d="M 309.24 50.94000999999997 L 313.5 50.94000999999997 L 309.24 65.94000999999997 L 304.92 50.94000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<rect height="36.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="308.28000000000003" y="13.74001000000004"></rect>
<path d="M 299.46 54.72001 L 299.58 54.60001 L 299.7 54.42000999999999 C 300.169 53.42000999999999 299.351 52.689009999999996 298.38 52.98000999999999L 298.26 53.10001 L 298.08 53.22001 C 297.464 54.08501000000001 298.046 55.03501 299.09999999999997 54.90001000000001L 299.28 54.84001000000001 L 299.46 54.72001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 298.86 53.94000999999997 L 302.28000000000003 51.36000999999999 L 302.88 51.000009999999975 L 303.06 51.60001 L 308.58000000000004 66.18000999999998 L 309.24 67.80000999999999 L 307.8 66.72000999999995 L 295.38 57.300009999999986 L 294.84000000000003 56.88000999999997 L 295.38 56.52000999999996 L 295.98 56.52000999999996 L 308.40000000000003 65.94000999999997 L 307.8 66.72000999999995 L 307.62 66.48001 L 302.1 51.90000999999995 L 303.06 51.60001 L 302.88 52.14000999999996 L 299.46000000000004 54.720009999999945" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 295.38 56.52001000000001 L 298.86 53.94001000000003 L 299.46 54.72001 L 295.98 57.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 299.16 54.300009999999986 L 302.58000000000004 51.72001 L 308.1 66.30000999999999 L 295.68 56.88000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 269.52 13.140009999999961 L 267.96 14.34000999999995 L 298.08 54.480009999999936 L 299.64 53.28000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="177.60000000000002" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.60000000000002" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.36" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="177.36" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="251.82" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.82" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.58" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="326.1" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="326.1" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="325.86" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="400.32" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.32" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.08" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="437.46000000000004" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.46000000000004" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="474.36" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.22" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="9.999999974752427e-06"></rect>
<path d="M 454.32 51.42000999999999 L 454.56 51.42000999999999 L 454.74 51.36000999999999 C 455.64799999999997 50.99601000000001 455.496 49.679010000000005 454.56 49.44000999999997L 454.14 49.44000999999997 C 453.204 49.679010000000005 453.052 50.99601000000001 453.96 51.36000999999999L 454.14 51.42000999999999 L 454.32 51.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 454.32 50.46001000000001 L 459.3 50.46001000000001 L 459.12 51.120010000000036 L 454.8 66.12001000000004 L 454.32 67.80000999999999 L 453.84 66.12001000000004 L 449.58 51.120010000000036 L 449.4 50.46001000000001 L 450.06 50.46001000000001 L 450.54 50.820010000000025 L 454.8 65.82001000000002 L 453.84 66.12001000000004 L 453.84 65.82001000000002 L 458.15999999999997 50.820010000000025 L 459.12 51.120010000000036 L 458.64 51.48000999999999 L 454.32 51.48000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.26" x="450.06" y="50.46001000000001"></rect>
<path d="M 454.32 50.94000999999997 L 458.64 50.94000999999997 L 454.32 65.94000999999997 L 450.06 50.94000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<rect height="36.72" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="453.36" y="13.74001000000004"></rect>
<path d="M 445.08 54.300009999999986 L 445.26 54.18000999999998 L 445.38 54.06000999999998 C 445.887 53.26900999999998 445.125 52.189009999999996 444.18 52.56000999999998L 443.82 52.800009999999986 L 443.7 52.98000999999999 L 443.58 53.10001 L 443.58 53.280010000000004 L 443.52 53.52001000000001 L 443.64 53.88000999999997 L 443.7 54.06000999999998 L 443.82 54.240009999999984 L 444.0 54.36000999999999 L 444.35999999999996 54.48000999999999 L 444.71999999999997 54.48000999999999 L 444.9 54.42000999999999 L 445.08 54.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 444.54 53.46001000000001 L 448.08000000000004 51.060010000000034 L 448.68 50.76001000000002 L 448.86 51.36000999999999 L 453.78000000000003 66.12001000000004 L 454.38 67.80000999999999 L 453.0 66.66001 L 441.0 56.76001000000002 L 440.46000000000004 56.34001000000001 L 441.0 55.92000999999999 L 441.6 55.98000999999999 L 453.6 65.88001000000003 L 453.0 66.66001 L 452.82 66.42000999999999 L 447.90000000000003 51.66001 L 448.86 51.36000999999999 L 448.68 51.90001000000001 L 445.14000000000004 54.300009999999986" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 441.0 55.92000999999999 L 444.54 53.46001000000001 L 445.14 54.300009999999986 L 441.6 56.760009999999966" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 444.84000000000003 53.88000999999997 L 448.38000000000005 51.48000999999999 L 453.3 66.24000999999998 L 441.3 56.34000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 418.08 13.200009999999963 L 416.46 14.34000999999995 L 443.76 54.12000999999998 L 445.38 52.980009999999936" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="400.32" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.32" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.08" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="9.999999974752427e-06"></rect>
<path d="M 363.24 0.24000999999998385 L 400.32 0.24000999999998385 L 400.32 13.740009999999984 L 363.24 13.740009999999984" style="fill: rgb(100%, 100%, 100%); fill-rule: nonzero"></path>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.24" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.0" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="326.1" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="326.1" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="325.86" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="288.96" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.96" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.72" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="251.82" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.82" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.58" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="214.68" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.68" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.44" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="177.60000000000002" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.60000000000002" y="0.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="0.24000999999998385"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.36" y="13.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="177.36" y="9.999999974752427e-06"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="437.46000000000004" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.46000000000004" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="474.36" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.22" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="400.32" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.32" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="400.08" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="30.36000999999999"></rect>
<path d="M 363.24 30.600009999999997 L 400.32 30.600009999999997 L 400.32 44.10001 L 363.24 44.10001" style="fill: rgb(100%, 100%, 100%); fill-rule: nonzero"></path>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.24" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.0" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="326.1" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="326.1" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="325.86" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="288.96" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.96" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.72" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="251.82" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.82" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="251.58" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="214.68" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.68" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.44" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.08" x="177.60000000000002" y="30.600009999999997"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.60000000000002" y="30.360029999999938"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="30.60000999999994"></rect>
<rect height="0.47998" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="177.36" y="43.86002999999994"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="177.36" y="30.36000999999999"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="437.46000000000004" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.46000000000004" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="474.36" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="437.22" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="437.22" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="214.68" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.68" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48" x="251.58" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="214.44" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="214.44" y="67.50000999999997"></rect>
<rect height="13.5" style="fill: rgb(100%, 100%, 100%)" width="37.14" x="288.96" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.96" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.47998" x="325.86" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.38" x="288.72" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="288.72" y="67.50000999999997"></rect>
<path d="M 363.24 67.74000999999998 L 400.32 67.74000999999998 L 400.32 81.24000999999998 L 363.24 81.24000999999998" style="fill: rgb(100%, 100%, 100%); fill-rule: nonzero"></path>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.24" y="67.5"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="400.08" y="67.74000999999998"></rect>
<rect height="0.48001000000000005" style="fill: rgb(0%, 0%, 0%)" width="37.32" x="363.0" y="81.0"></rect>
<rect height="13.74" style="fill: rgb(0%, 0%, 0%)" width="0.48001000000000005" x="363.0" y="67.50000999999997"></rect>
<path d="M 194.46 51.42000999999999 L 194.64000000000001 51.42000999999999 L 194.82000000000002 51.36000999999999 C 195.737 51.07700999999997 195.63500000000002 49.641009999999994 194.64000000000001 49.44000999999997L 194.28 49.44000999999997 C 193.321 49.627009999999984 193.178 50.97100999999998 194.04000000000002 51.36000999999999L 194.28 51.42000999999999 L 194.46 51.42000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 194.46 50.46001000000001 L 199.44 50.46001000000001 L 199.26000000000002 51.120010000000036 L 194.94 66.12001000000004 L 194.46 67.80000999999999 L 193.98000000000002 66.12001000000004 L 189.66 51.120010000000036 L 189.48000000000002 50.46001000000001 L 190.14000000000001 50.46001000000001 L 190.62 50.820010000000025 L 194.94 65.82001000000002 L 193.98000000000002 66.12001000000004 L 193.98000000000002 65.82001000000002 L 198.3 50.820010000000025 L 199.26000000000002 51.120010000000036 L 198.78 51.48000999999999 L 194.46 51.48000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<rect height="1.02" style="fill: rgb(0%, 0%, 0%)" width="4.32" x="190.14000000000001" y="50.46001000000001"></rect>
<path d="M 194.46 50.94000999999997 L 198.78 50.94000999999997 L 194.46 65.94000999999997 L 190.14000000000001 50.94000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<rect height="6.36" style="fill: rgb(0%, 0%, 0%)" width="1.98" x="193.5" y="44.10001"></rect>
<path d="M 208.20000000000002 58.98000999999999 L 208.32000000000002 59.16001 L 208.68 59.40001000000001 L 208.86 59.46001000000001 L 209.22000000000003 59.46001000000001 L 209.4 59.40001000000001 L 209.76000000000002 59.16001 C 210.092 58.84300999999999 210.067 58.726009999999974 210.06000000000003 58.32000999999997L 210.00000000000003 58.080010000000016 L 209.88000000000002 57.90001000000001 L 209.76000000000002 57.780010000000004 C 209.139 57.08801 207.95200000000003 57.58200999999997 208.08 58.62000999999998L 208.20000000000002 58.98000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 209.04 58.500009999999975 L 211.38 62.10001 L 211.67999999999998 62.70000999999996 L 211.07999999999998 62.82000999999997 L 196.07999999999998 67.26000999999997 L 194.39999999999998 67.80000999999999 L 195.54 66.48001 L 205.92 54.78000999999995 L 206.4 54.240009999999984 L 206.76 54.84000999999995 L 206.7 55.44000999999997 L 196.32 67.14000999999996 L 195.54 66.48001 L 195.78 66.30000999999999 L 210.78 61.86000999999999 L 211.07999999999998 62.82000999999997 L 210.48 62.64000999999996 L 208.14 59.040009999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 206.76 54.84001000000001 L 209.04 58.50001000000003 L 208.14 59.040009999999995 L 205.85999999999999 55.38001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 208.62 58.740009999999984 L 210.96 62.34001000000001 L 195.96 66.78001 L 206.34 55.08000999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 232.14000000000001 44.94000999999997 L 231.06 43.260009999999966 L 208.5 57.60001 L 209.58 59.28000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 250.44 62.580010000000016 L 250.5 62.76001000000002 L 250.62 62.94001000000003 C 251.311 63.72401000000002 252.445 63.106010000000026 252.35999999999999 62.16001L 252.3 61.98000999999999 L 252.24 61.80001000000004 L 252.12 61.620010000000036 L 252.0 61.50001000000003 L 251.82 61.38001000000003 L 251.46 61.26001000000002 L 251.28 61.26001000000002 L 251.04 61.320010000000025 C 250.645 61.57501000000002 250.565 61.53701000000001 250.44 62.040009999999995L 250.38 62.22001 L 250.38 62.40001000000001 L 250.44 62.580010000000016" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 251.4 62.280010000000004 L 252.72 66.36000999999999 L 252.84 67.02001000000001 L 252.24 67.08001000000002 L 236.70000000000002 67.74000999999998 L 234.96 67.80000999999999 L 236.4 66.78001 L 249.24 57.96001000000001 L 249.78 57.60001 L 250.02 58.20001000000002 L 249.78 58.800009999999986 L 236.94 67.62000999999998 L 236.4 66.78001 L 236.64000000000001 66.72001 L 252.18 66.06000999999998 L 252.24 67.08001000000002 L 251.70000000000002 66.72001 L 250.38 62.64001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 250.02 58.20000999999996 L 251.4 62.28000999999995 L 250.38000000000002 62.64000999999996 L 249.0 58.56000999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 250.92000000000002 62.46001000000001 L 252.24 66.54001 L 236.70000000000002 67.20001000000002 L 249.54000000000002 58.38001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 306.12 45.06000999999998 L 305.52 43.20000999999996 L 251.1 61.38000999999997 L 251.7 63.240009999999984" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 248.70000000000002 58.98000999999999 L 248.82000000000002 59.16001 L 249.18 59.40001000000001 L 249.36 59.46001000000001 L 249.72000000000003 59.46001000000001 L 249.9 59.40001000000001 L 250.26000000000002 59.16001 C 250.592 58.84300999999999 250.567 58.726009999999974 250.56000000000003 58.32000999999997L 250.50000000000003 58.080010000000016 L 250.38000000000002 57.90001000000001 L 250.26000000000002 57.780010000000004 C 249.657 57.10001 248.45000000000002 57.56900999999999 248.58 58.62000999999998L 248.70000000000002 58.98000999999999" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 249.54 58.500009999999975 L 251.88 62.10001 L 252.17999999999998 62.70000999999996 L 251.57999999999998 62.82000999999997 L 236.57999999999998 67.26000999999997 L 234.89999999999998 67.80000999999999 L 236.04 66.48001 L 246.42 54.78000999999995 L 246.9 54.240009999999984 L 247.26 54.84000999999995 L 247.2 55.44000999999997 L 236.82 67.14000999999996 L 236.04 66.48001 L 236.28 66.30000999999999 L 251.28 61.86000999999999 L 251.57999999999998 62.82000999999997 L 250.98 62.64000999999996 L 248.64 59.040009999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 247.26000000000002 54.84001000000001 L 249.54000000000002 58.50001000000003 L 248.64000000000001 59.040009999999995 L 246.36 55.38001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 249.12 58.740009999999984 L 251.46 62.34001000000001 L 236.46 66.78001 L 246.84 55.08000999999996" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 272.64 44.94000999999997 L 271.56 43.260009999999966 L 249.0 57.60001 L 250.07999999999998 59.28000999999995" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 340.68 51.60001 L 341.04 51.48000999999999 L 341.16 51.36000999999999 L 341.34000000000003 51.240009999999984 L 341.40000000000003 51.06000999999998 L 341.46 50.88000999999997 L 341.52 50.70001000000002 L 341.52 50.46001000000001 L 341.46 50.280010000000004 L 341.40000000000003 50.10001 L 341.1 49.800009999999986 L 340.98 49.740009999999984 L 340.8 49.68000999999998 L 340.56 49.62000999999998 L 340.38 49.62000999999998 L 340.2 49.68000999999998 C 339.25 49.893010000000004 339.36 51.39701000000002 340.26 51.60001L 340.68 51.60001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 340.5 50.64000999999996 L 344.76 50.04000999999994 L 345.42 49.980009999999936 L 345.3 50.64000999999996 L 343.2 66.06000999999998 L 342.96 67.80000999999999 L 342.3 66.18000999999998 L 335.94 51.960009999999954 L 335.64 51.36000999999999 L 336.3 51.240009999999984 L 336.84 51.54000999999994 L 343.2 65.76000999999997 L 342.3 66.18000999999998 L 342.24 65.88000999999997 L 344.34 50.460009999999954 L 345.3 50.64000999999996 L 344.88 51.06000999999998 L 340.62 51.66000999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 336.3 51.240009999999984 L 340.5 50.64000999999996 L 340.62 51.66001 L 336.42 52.260009999999966" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 340.56 51.12000999999998 L 344.82 50.52000999999996 L 342.72 65.94000999999997 L 336.36 51.72001" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 340.62 43.98000999999999 L 338.64 44.22001 L 339.54 50.760009999999966 L 341.52 50.52001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 356.34000000000003 58.38000999999997 L 356.46000000000004 58.56000999999998 L 356.58000000000004 58.68000999999998 C 357.44500000000005 59.14000999999996 358.432 58.35001 358.08000000000004 57.42000999999999L 357.96000000000004 57.240009999999984 L 357.84000000000003 57.12000999999998 C 357.07300000000004 56.411009999999976 356.033 57.01100999999994 356.16 58.02000999999996L 356.22 58.20000999999996 L 356.34000000000003 58.38000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 357.12 57.84001000000001 L 359.64 61.320010000000025 L 360.0 61.86000999999999 L 359.34000000000003 62.10001 L 344.58 67.20001000000002 L 342.96 67.80000999999999 L 344.04 66.42000999999999 L 353.82 54.300009999999986 L 354.24 53.76001000000002 L 354.66 54.300009999999986 L 354.6 54.90001000000001 L 344.82 67.02001000000001 L 344.04 66.42000999999999 L 344.28000000000003 66.24000999999998 L 359.04 61.14001000000002 L 359.34000000000003 62.10001 L 358.8 61.92000999999999 L 356.28000000000003 58.44001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 354.66 54.300009999999986 L 357.12 57.84001000000001 L 356.28000000000003 58.44000999999997 L 353.82000000000005 54.90001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 356.70000000000005 58.14000999999996 L 359.22 61.62000999999998 L 344.46000000000004 66.72000999999995 L 354.24000000000007 54.60000999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 377.34000000000003 44.94000999999997 L 376.20000000000005 43.32000999999997 L 356.58000000000004 57.06000999999998 L 357.72 58.68000999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 395.58 62.580010000000016 L 395.64 62.76001000000002 L 395.76 62.94001000000003 C 396.39099999999996 63.73000999999999 397.582 63.07301000000001 397.5 62.16001L 397.38 61.80001000000004 C 396.84999999999997 60.88701000000003 395.59299999999996 61.21100999999999 395.52 62.22001L 395.52 62.40001000000001 L 395.58 62.580010000000016" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 396.54 62.280010000000004 L 397.86 66.36000999999999 L 397.98 67.02001000000001 L 397.38 67.08001000000002 L 381.84000000000003 67.74000999999998 L 380.1 67.80000999999999 L 381.54 66.78001 L 394.38 57.96001000000001 L 394.92 57.60001 L 395.16 58.20001000000002 L 394.92 58.800009999999986 L 382.08000000000004 67.62000999999998 L 381.54 66.78001 L 381.78000000000003 66.72001 L 397.32 66.06000999999998 L 397.38 67.08001000000002 L 396.84000000000003 66.72001 L 395.52000000000004 62.64001000000002" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 395.16 58.20000999999996 L 396.54 62.28000999999995 L 395.52000000000004 62.64000999999996 L 394.14000000000004 58.56000999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 396.06 62.46001000000001 L 397.38 66.54001 L 381.84 67.20001000000002 L 394.68 58.38001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 451.26 45.06000999999998 L 450.65999999999997 43.20000999999996 L 396.18 61.38000999999997 L 396.78 63.240009999999984" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 393.42 58.38000999999997 L 393.72 58.68000999999998 C 394.62600000000003 59.13600999999994 395.57300000000004 58.34300999999999 395.16 57.42000999999999L 395.1 57.240009999999984 L 394.98 57.12000999999998 L 394.62 56.88000999999997 L 394.44 56.82000999999997 L 394.08000000000004 56.82000999999997 L 393.84000000000003 56.88000999999997 L 393.72 57.000009999999975 L 393.54 57.12000999999998 L 393.42 57.300009999999986 L 393.24 57.84000999999995 L 393.3 58.02000999999996 L 393.42 58.38000999999997" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 394.26 57.84001000000001 L 396.71999999999997 61.320010000000025 L 397.08 61.86000999999999 L 396.42 62.10001 L 381.71999999999997 67.20001000000002 L 380.09999999999997 67.80000999999999 L 381.18 66.42000999999999 L 390.96 54.300009999999986 L 391.38 53.76001000000002 L 391.8 54.300009999999986 L 391.74 54.90001000000001 L 381.96 67.02001000000001 L 381.18 66.42000999999999 L 381.42 66.24000999999998 L 396.12 61.14001000000002 L 396.42 62.10001 L 395.88 61.92000999999999 L 393.42 58.44001000000003" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 391.8 54.300009999999986 L 394.26 57.84001000000001 L 393.42 58.44000999999997 L 390.96000000000004 54.90001000000001" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<path d="M 393.84000000000003 58.14000999999996 L 396.3 61.62000999999998 L 381.6 66.72000999999995 L 391.38000000000005 54.60000999999994" style="fill: rgb(0%, 0%, 0%); fill-rule: evenodd"></path>
<path d="M 414.42 44.94000999999997 L 413.28000000000003 43.32000999999997 L 393.72 57.06000999999998 L 394.86 58.68000999999998" style="fill: rgb(0%, 0%, 0%); fill-rule: nonzero"></path>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="269.1524850999999" x="188.64000000000001" y="10.350907799999959">X7 X6 X5 X4 X3 X2 X1 X0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="20.02646278000003" x="157.56100611999997" y="11.970848299999943">SRC1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="269.1524850999999" x="188.64000000000001" y="40.770907799999975">Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.970668259999997" x="157.32" y="42.39090779999998">SRC2</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.80058169554718pt; fill: #000" textLength="208.3387843959895" x="180.96" y="77.9239192632262">Y6-Y7 Y4-Y5 X6-X7 X4-X5 Y2-Y3 Y0-Y1</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="19.963882439999992" x="157.32124047999997" y="77.85060477999997">DEST</text>
<text lengthAdjust="spacingAndGlyphs" style="font-size: 8.414416800000026pt; fill: #000" textLength="57.89361789999998" x="403.74" y="79.47090779999996">X2-X3 X0-X1</text></g></svg>
<figcaption><a href='hsubps.html#fig-3-24'>Figure 3-24</a>. VHSUBPS Operation</figcaption></figure>
<p>128-bit Legacy SSE version: The second source can be an XMM register or an 128-bit memory location. The destination is not distinct from the first source XMM register and the upper bits (MAXVL-1:128) of the corresponding YMM register destination are unmodified.</p>
<p>VEX.128 encoded version: the first source operand is an XMM register or 128-bit memory location. The destination operand is an XMM register. The upper bits (MAXVL-1:128) of the corresponding YMM register destination are zeroed.</p>
<p>VEX.256 encoded version: The first source operand is a YMM register. The second source operand can be a YMM register or a 256-bit memory location. The destination operand is a YMM register.</p>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<h3 id="hsubps--128-bit-legacy-sse-version-">HSUBPS (128-bit Legacy SSE Version)<a class="anchor" href="#hsubps--128-bit-legacy-sse-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[31:0] - SRC1[63:32]
DEST[63:32] := SRC1[95:64] - SRC1[127:96]
DEST[95:64] := SRC2[31:0] - SRC2[63:32]
DEST[127:96] := SRC2[95:64] - SRC2[127:96]
DEST[MAXVL-1:128] (Unmodified)
</pre>
<h3 id="vhsubps--vex-128-encoded-version-">VHSUBPS (VEX.128 Encoded Version)<a class="anchor" href="#vhsubps--vex-128-encoded-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[31:0] - SRC1[63:32]
DEST[63:32] := SRC1[95:64] - SRC1[127:96]
DEST[95:64] := SRC2[31:0] - SRC2[63:32]
DEST[127:96] := SRC2[95:64] - SRC2[127:96]
DEST[MAXVL-1:128] := 0
</pre>
<h3 id="vhsubps--vex-256-encoded-version-">VHSUBPS (VEX.256 Encoded Version)<a class="anchor" href="#vhsubps--vex-256-encoded-version-">
</a></h3>
<pre>DEST[31:0] := SRC1[31:0] - SRC1[63:32]
DEST[63:32] := SRC1[95:64] - SRC1[127:96]
DEST[95:64] := SRC2[31:0] - SRC2[63:32]
DEST[127:96] := SRC2[95:64] - SRC2[127:96]
DEST[159:128] := SRC1[159:128] - SRC1[191:160]
DEST[191:160] := SRC1[223:192] - SRC1[255:224]
DEST[223:192] := SRC2[159:128] - SRC2[191:160]
DEST[255:224] := SRC2[223:192] - SRC2[255:224]
</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>HSUBPS __m128 _mm_hsub_ps(__m128 a, __m128 b);
</pre>
<pre>VHSUBPS __m256 _mm256_hsub_ps (__m256 a, __m256 b);
</pre>
<h2 class="exceptions" id="exceptions">Exceptions<a class="anchor" href="#exceptions">
</a></h2>
<p>When the source operand is a memory operand, the operand must be aligned on a 16-byte boundary or a general-protection exception (#GP) will be generated.</p>
<h2 class="exceptions" id="numeric-exceptions">Numeric Exceptions<a class="anchor" href="#numeric-exceptions">
</a></h2>
<p>Overflow, Underflow, Invalid, Precision, Denormal.</p>
<h2 class="exceptions" id="other-exceptions">Other Exceptions<a class="anchor" href="#other-exceptions">
</a></h2>
<p>See <span class="not-imported">Table 2-19</span>, “Type 2 Class Exception Conditions.”</p><footer><p>
This UNOFFICIAL, mechanically-separated, non-verified reference is provided for convenience, but it may be
inc<span style="opacity: 0.2">omp</span>lete or b<sub>r</sub>oke<sub>n</sub> in various obvious or non-obvious
ways. Refer to <a href="https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4">Intel® 64 and IA-32 Architectures Software Developers Manual</a> for anything serious.
</p></footer></body></html>