# Conditional execution

The Hexagon processor uses a conditional execution model based on
compare instructions that set predicate bits in one of four 8-bit
predicate registers (P0 through P3). These predicate bits can
conditionally execute certain instructions.

Conditional scalar operations examine only the least-significant bit
in a predicate register, while conditional vector operations examine
multiple bits in the register.

Branch instructions are the main consumers of the predicate
registers.

## Scalar predicates

Scalar predicates are 8-bit values in conditional instructions to
represent truth values:

- 0xFF represents true
- 0x00 represents false

The Hexagon processor provides the four 8-bit predicate registers P0
through P3 to hold scalar predicates ([predicate registers](https://docs.qualcomm.com/doc/80-N2040-60/topic/registers.html#v79-prm-predicate-registers)).
Predicate-generating instructions assign the predicate registers and
predicate-consuming instructions examine the predicate registers.

### Generating scalar predicates

The following instructions generate scalar predicates:

- Compare byte, halfword, word, doubleword
- Compare single- and double-precision floating point
- Classify floating-point value
- Compare bitmask
- Bounds check
- TLB match
- Store conditional

Scalar predicate-generating instructions

| **Syntax** | **Operation** |
| --- | --- |
| Pd = cmpb.eq(Rs,{Rt,#u8})<br>    Pd = cmph.eq(Rs,{Rt,#s8})<br>    Pd = [!]cmp.eq(Rs,{Rt,#s10})<br>    Pd = cmp.eq(Rss,Rtt)<br>    Pd = sfcmp.eq(Rs,Rt)<br>    Pd = dfcmp.eq(Rss,Rtt)<br>    Copy to clipboard | Equal (signed).<br><br><br>Compare register Rs to Rt or a signed immediate for equality.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmpb.gt(Rs,{Rt,#s8})<br>    Pd = cmph.gt(Rs,{Rt,#s8})<br>    Pd = [!]cmp.gt(Rs,{Rt,#s10})<br>    Pd = cmp.gt(Rss,Rtt)<br>    Pd = sfcmp.gt(Rs,Rt)<br>    Pd = dfcmp.gt(Rss,Rtt)<br>    Copy to clipboard | Greater than (signed).<br><br><br>Compare register Rs to Rt or a signed immediate for signed greater than.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmpb.gtu(Rs,{Rt,#u7})<br>    Pd = cmph.gtu(Rs,{Rt,#u7})<br>    Pd = [!]cmp.gtu(Rs,{Rt,#u9})<br>    Pd = cmp.gtu(Rss,Rtt)<br>    Copy to clipboard | Greater than (unsigned).<br><br><br>Compare register Rs to Rt or an unsigned immediate for unsigned greater than.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmp.ge(Rs,#s8)<br>    Pd = sfcmp.ge(Rs,Rt)<br>    Pd = dfcmp.ge(Rss,Rtt)<br>    Copy to clipboard | Greater than or equal (signed).<br><br><br>Compare register Rs to Rt or a signed immediate for signed greater than or equal.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmp.geu(Rs,#u8)<br>    Copy to clipboard | Greater than or equal (unsigned).<br><br><br>Compare register Rs to an unsigned immediate for unsigned greater than or equal.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmp.lt(Rs,Rt)<br>    Copy to clipboard | Less than (signed).<br><br><br>Compare register Rs to Rt for signed less than.<br><br><br>Assign Pd the resulting truth value. |
| Pd = cmp.ltu(Rs,Rt)<br>    Copy to clipboard | Less than (unsigned).<br><br><br>Compare register Rs to Rt for unsigned less than.<br><br><br>Assign Pd the resulting truth value. |
| Pd = sfcmp.uo(Rs,Rt)<br>    Pd = dfcmp.uo(Rss,Rtt)<br>    Copy to clipboard | Unordered (signed).<br><br><br>Determine if register Rs or Rt is set to the value NaN.<br><br><br>Assign Pd the resulting truth value. |
| Pd=sfclass(Rs,#u5)<br>    Pd=dfclass(Rss,#u5)<br>    Copy to clipboard | Classify value (signed).<br><br><br>Determine if register Rs is set to any of the specified classes.<br><br><br>Assign Pd the resulting truth value. |
| Pd = [!]tstbit(Rs,{Rt,#u5})<br>    Copy to clipboard | Test if bit set.<br><br><br>Rt or an unsigned immediate specifies a bit position.<br><br><br>Test if the bit in Rs that is specified by the bit position is set.<br><br><br>Assign Pd the resulting truth value. |
| Pd = [!]bitsclr(Rs,{Rt,#u6})<br>    Copy to clipboard | Test if bits clear.<br><br><br>Rt or an unsigned immediate specifies a bitmask.<br><br><br>Test if the bits in Rs that are specified by the bitmask are all clear.<br><br><br>Assign Pd the resulting truth value. |
| Pd = [!]bitsset(Rs,Rt)<br>    Copy to clipboard | Test if bits set.<br><br><br>Rt specifies a bitmask.<br><br><br>Test if the bits in Rs that are specified by the bitmask are all set.<br><br><br>Assign Pd the resulting truth value. |
| memw_locked(Rs,Pd) = Rt<br>    memd_locked(Rs,Pd) = Rtt<br>    Copy to clipboard | Store conditional.<br><br><br>If no other atomic operation has been performed at the address (atomicity is ensured),<br>perform the store to the word at address Rs.<br><br><br>Assign Pd the resulting truth value. |
| Pd = boundscheck(Rs,Rtt)<br>    Copy to clipboard | Bounds check.<br><br><br>Determine if Rs falls in the numeric range defined by Rtt.<br><br><br>Assign Pd the resulting truth value. |
| Pd = tlbmatch(Rss,Rt)<br>    Copy to clipboard | Determine if TLB entry in Rss matches the ASID:PPN specified in Rt.<br><br><br>Assign Pd the resulting truth value. |

Note

One of the compare instructions (cmp.eq) includes a variant
that stores a binary predicate value (0 or 1) in a general register
not a predicate register.

### Consuming scalar predicates

Certain instructions can be conditionally executed based on the value
of a scalar predicate (or alternatively specify a scalar predicate as
an input to their operation).

The conditional instructions that consume scalar predicates examine
only the least-significant bit of the predicate value. In the
simplest case, this bit value directly determines whether the
instruction executes:

- 1 indicates that the instruction executes
- 0 indicates that the instruction does not execute

If a conditional instruction includes the operator ! in its predicate
expression, the logical negation of the bit value determines whether
the instruction is executed.

Conditional instructions are expressed in assembly language with the
instruction prefix if (*pred\_expr*), where *pred\_expr* specifies the
predicate expression. For example:

if (P0) jump target       // Jump if P0 is true
    if (!P2) R2 = R5          // Assign register if !P2 is true
    if (P1) R0 = sub(R2,R3)   // Conditionally subtract if P1 is true
    if (P2) R0 = memw(R2)     // Conditionally load word if P2 is true
    Copy to clipboard

The following instructions can be used as conditional instructions:

- Jumps and calls ([software branches](https://docs.qualcomm.com/doc/80-N2040-60/topic/program-flow.html#v79-prm-software-branches))
- Load and store instructions ([conditional loadstores](https://docs.qualcomm.com/doc/80-N2040-60/topic/memory.html#v79-prm-conditional-loadstores))
- Logical instructions (including AND/OR/XOR)
- Shift halfword
- 32-bit add/subtract by register or short immediate
- Sign and zero extend
- 32-bit register transfer and 64-bit combine word
- Register transfer immediate
- Deallocate frame and return

When a conditional load or store executes and the predicate
expression is false, the instruction is canceled (including any
exceptions that might occur). For example, if a conditional load uses
an address with a memory permission violation, and the predicate
expression is false, the load does not execute and the exception is
not raised.

The mux instruction accepts a predicate as one of its basic operands:

Rd = mux(Ps,Rs,Rt)
    Copy to clipboard

The mux instruction selects either Rs or Rt based on the least
significant bit in Ps. If the least- significant bit in Ps is a 1, Rd
is set to Rs, otherwise it is set to Rt.

### Auto-AND predicates

If multiple compare instructions in a packet write to the same
predicate register, the result is the logical AND of the individual
compare results. For example:

{
    
       P0 = cmp(A)                            // If A && B, jump
       P0 = cmp(B)
       if (P0.new) jump:T taken_path
    
    }
    Copy to clipboard

To perform the corresponding OR operation, the following instructions
can compute the negation of an existing compare (using De Morgan’s
law):

- Pd = !cmp.{eq,gt}(Rs, {#s10,Rt})
- Pd = !cmp.gtu(Rs, {#u9,Rt})
- Pd = !tstbit(Rs, {#u5,Rt})
- Pd = !bitsclr(Rs, {#u6,Rt})
- Pd = !bitsset(Rs,Rt)

Auto-AND predicates have the following restrictions:

- If a packet contains endloopN, it cannot perform an auto-AND with
predicate register P3.
- If a packet contains a register transfer from a general register to a
predicate register, no other instruction in the packet can write to
the same predicate register. As a result, a register transfer to P3:0
or C5:4 cannot be grouped with any other predicate-writing
instruction.
- The instructions spNloop0, decbin, tlbmatch, memw\_locked,
memd\_locked, a, sub:carry, sfcmp, and dfcmp cannot be grouped with
another instruction that sets the same predicate register.

Note

A register transfer from a predicate register to a
predicate register has the same auto-AND behavior as a compare
instruction.

### Dot-new predicates

The Hexagon processor can generate and use a scalar predicate in the
same [instruction packet](https://docs.qualcomm.com/doc/80-N2040-60/topic/instructions.html#v79-prm-instruction-packets).
This feature is expressed in assembly language by appending the
suffix “.new” to the specified predicate register. For example:

if (P0.new) R3 = memw(R4)
    Copy to clipboard

The following C statement and the corresponding assembly code that is
generated from it by the compiler is an example of how to use dot-new
predicates.

**C statement**

if (R2 == 4)
       R3 = *R4;
    else
       R5 = 5;
    Copy to clipboard

**Assembly code**

{
       P0 = cmp.eq(R2,#4)
       if (P0.new) R3 = memw(R4)
       if (!P0.new) R5 = #5
    }
    Copy to clipboard

In this example, a scalar predicate is generated and then
consumed twice within the same instruction packet.

The following conditions apply to using dot-new predicates:

- An instruction in the same packet must generate the predicate.
The assembler normally enforces this restriction, but if the
processor executes a packet that violates this restriction, the
execution result is undefined.
- A single packet can contain both the dot-new and normal forms of
predicates. The normal form examines the old value in the predicate
register, rather than the newly-generated value. For example:

{
             P0 = cmp.eq(R2,#4)
             if (P0.new) R3 = memw(R4)    // Use newly-generated P0 value if (P0)
             R5 = #5                      // Use previous P0 value
        }
        Copy to clipboard

### Dependency constraints

Two instructions in an instruction packet should not write to the
same destination register
([dependency constraints](https://docs.qualcomm.com/doc/80-N2040-60/topic/instructions.html#v79-prm-instructions-dependency-constraints)).
An exception to this rule is when the two instructions are conditional,
and only one of them ever has the predicate expression value true
when the packet executes.

For example, the following packet is valid as long as P2 and P3 never
both evaluate to true when the packet is executed:

{
       if (P2) R3 = #4         // P2, P3, or both must be false
       if (P3) R3 = #7
    }
    Copy to clipboard

Because predicate values change at runtime, the programmer is
responsible for ensuring that such packets are always valid during
program execution. If they are invalid, the processor takes the
following actions:

- When writing to general registers, an error exception is raised.
- When writing to predicate or control registers, the result is
undefined.

## Vector predicates

The predicate registers are also used for conditional vector
operations. Unlike scalar predicates, vector predicates contain
multiple truth values which are generated by vector predicate-
generating operations.

For example, a vector compare instruction compares each element of a
vector and assigns the compare results to a predicate register. Each
bit in the predicate vector contains a truth value indicating the
outcome of a separate compare performed by the vector instruction.

The vector mux instruction uses a vector predicate to selectively
merge elements from two separate vectors into a single destination
vector. This operation is useful for enabling the vectorization of
loops with control flow (branches).

The vector instructions that use predicates are described in the
following sections.

### Vector compare

A vector compare instruction inputs two 64-bit vectors, performs
separate compares for each pair of vector elements, and generates a
predicate value which contains a bit vector of truth values.

In [vector byte compare](https://docs.qualcomm.com/doc/80-N2040-60/topic/conditional-execution.html#v79-vector-byte-compare) two 64-bit vectors of bytes
(contained in Rss and Rtt) are being compared. The result is assigned
as a vector predicate to the destination register Pd.

In the example vector predicate shown in [vector byte compare](https://docs.qualcomm.com/doc/80-N2040-60/topic/conditional-execution.html#v79-vector-byte-compare),
every other compare result in the predicate is true (for example, 1).

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pic_vcmpub.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.98422in" height="2.64656in" viewbox="0 0 358.864 190.552" xml:space="preserve" color-interpolation-filters="sRGB" class="st6"><title>pic_vcmpub</title><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvConvertTheme"></v:ud>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-1 .st2 { fill: #2a2aea; font-family: Arial; font-size: 0.75em }
.svg-1 .st3 { fill: #ffffff; stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-1 .st4 { marker-end: url("#mrkr13-52"); stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-1 .st5 { fill: #2a2aea; fill-opacity: 1; stroke: #2a2aea; stroke-opacity: 1; stroke-width: 0.32258064516129 }
.svg-1 .st6 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-52" class="st5" v:arrowtype="13" v:arrowsize="2" v:setback="9.3" refx="-9.3" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-3.1,-3.1) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<v:userdefs>		<v:ud v:nameu="SchemeName" v:val="VT4(Black &#38; White)"></v:ud>	</v:userdefs>	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(236.764,-38.1451)">		<title>Sheet.1</title>		<desc>Pd</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="15.75" cy="184.575" width="31.5" height="11.9549"></v:textrect>		<path d="M31.5 178.6 L0 178.6 L0 190.55 L31.5 190.55 L31.5 178.6" class="st1"></path>		<text x="10.25" y="187.28" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Pd</text>		</g>	<g id="shape10-5" v:mid="10" v:groupcontext="shape" transform="translate(93.1434,-33.5775)">		<title>Rectangle.163</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape11-8" v:mid="11" v:groupcontext="shape" transform="translate(111.143,-33.5775)">		<title>Rectangle.164</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape12-11" v:mid="12" v:groupcontext="shape" transform="translate(129.143,-33.5775)">		<title>Rectangle.165</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape13-14" v:mid="13" v:groupcontext="shape" transform="translate(147.143,-33.5775)">		<title>Rectangle.166</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape14-17" v:mid="14" v:groupcontext="shape" transform="translate(165.143,-33.5775)">		<title>Rectangle.167</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape15-20" v:mid="15" v:groupcontext="shape" transform="translate(183.143,-33.5775)">		<title>Rectangle.168</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape16-23" v:mid="16" v:groupcontext="shape" transform="translate(201.143,-33.5775)">		<title>Rectangle.169</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape17-26" v:mid="17" v:groupcontext="shape" transform="translate(219.143,-33.5775)">		<title>Rectangle.170</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="181.552" width="18" height="18"></v:textrect>		<rect x="0" y="172.552" width="18" height="18" class="st3"></rect>		<text x="6.5" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape18-29" v:mid="18" v:groupcontext="shape" transform="translate(210.903,-18.6)">		<title>Sheet.18</title>		<desc>0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="184.575" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 178.6 L0 178.6 L0 190.55 L35.24 190.55 L35.24 178.6" class="st1"></path>		<text x="15.12" y="187.28" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape20-33" v:mid="20" v:groupcontext="shape" transform="translate(84.9028,-18.6)">		<title>Sheet.20</title>		<desc>7</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="184.575" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 178.6 L0 178.6 L0 190.55 L35.24 190.55 L35.24 178.6" class="st1"></path>		<text x="15.12" y="187.28" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>7</text>		</g>	<g id="shape21-37" v:mid="21" v:groupcontext="shape" transform="translate(308.764,-158.452)">		<title>Sheet.21</title>		<desc>Rss</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="15.75" cy="184.575" width="31.5" height="11.9549"></v:textrect>		<path d="M31.5 178.6 L0 178.6 L0 190.55 L31.5 190.55 L31.5 178.6" class="st1"></path>		<text x="8" y="187.28" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rss</text>		</g>	<g id="shape22-41" v:mid="22" v:groupcontext="shape" transform="translate(20.7637,-153.952)">		<title>Rectangle.130</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape23-43" v:mid="23" v:groupcontext="shape" transform="translate(308.764,-132.577)">		<title>Sheet.23</title>		<desc>Rtt</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="13.5" cy="181.552" width="27" height="18"></v:textrect>		<path d="M27 172.55 L0 172.55 L0 190.55 L27 190.55 L27 172.55" class="st1"></path>		<text x="7.75" y="184.25" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rtt</text>		</g>	<g id="shape24-47" v:mid="24" v:groupcontext="shape" transform="translate(130.627,-62.8471) rotate(28.822)">		<title>Sheet.24</title>		<path d="M0 190.55 L61.18 190.55" class="st4"></path>	</g>	<g id="shape25-53" v:mid="25" v:groupcontext="shape" transform="translate(56.7637,-153.952)">		<title>Rectangle.25</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape26-55" v:mid="26" v:groupcontext="shape" transform="translate(92.7637,-153.952)">		<title>Rectangle.134</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape27-57" v:mid="27" v:groupcontext="shape" transform="translate(128.764,-153.952)">		<title>Rectangle.27</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape28-59" v:mid="28" v:groupcontext="shape" transform="translate(164.764,-153.952)">		<title>Rectangle.136</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape29-61" v:mid="29" v:groupcontext="shape" transform="translate(200.764,-153.952)">		<title>Rectangle.137</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape30-63" v:mid="30" v:groupcontext="shape" transform="translate(236.764,-153.952)">		<title>Rectangle.30</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape31-65" v:mid="31" v:groupcontext="shape" transform="translate(272.764,-153.952)">		<title>Rectangle.31</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape32-67" v:mid="32" v:groupcontext="shape" transform="translate(20.7637,-131.452)">		<title>Rectangle.140</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape33-69" v:mid="33" v:groupcontext="shape" transform="translate(56.7637,-131.452)">		<title>Rectangle.141</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape34-71" v:mid="34" v:groupcontext="shape" transform="translate(92.7637,-131.452)">		<title>Rectangle.142</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape35-73" v:mid="35" v:groupcontext="shape" transform="translate(128.764,-131.452)">		<title>Rectangle.143</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape36-75" v:mid="36" v:groupcontext="shape" transform="translate(164.764,-131.452)">		<title>Rectangle.36</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape37-77" v:mid="37" v:groupcontext="shape" transform="translate(200.764,-131.452)">		<title>Rectangle.37</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape38-79" v:mid="38" v:groupcontext="shape" transform="translate(236.764,-131.452)">		<title>Rectangle.38</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape39-81" v:mid="39" v:groupcontext="shape" transform="translate(272.764,-131.452)">		<title>Rectangle.39</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="172.552" width="36" height="18" class="st3"></rect>	</g>	<g id="shape40-83" v:mid="40" v:groupcontext="shape" transform="translate(238.316,59.1) rotate(90)">		<title>Sheet.40</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape41-88" v:mid="41" v:groupcontext="shape" transform="translate(220.316,36.6) rotate(90)">		<title>Sheet.41</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape42-93" v:mid="42" v:groupcontext="shape" transform="translate(20.7637,-86.4525)">		<title>Rounded rectangle</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape43-96" v:mid="43" v:groupcontext="shape" transform="translate(190.878,-46.9887) rotate(37.5428)">		<title>Sheet.43</title>		<path d="M0 190.55 L46.07 190.55" class="st4"></path>	</g>	<g id="shape44-101" v:mid="44" v:groupcontext="shape" transform="translate(274.316,59.1) rotate(90)">		<title>Sheet.44</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape45-106" v:mid="45" v:groupcontext="shape" transform="translate(256.316,36.6) rotate(90)">		<title>Sheet.45</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape46-111" v:mid="46" v:groupcontext="shape" transform="translate(56.7637,-86.4525)">		<title>Rounded rectangle.16</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape47-114" v:mid="47" v:groupcontext="shape" transform="translate(260.645,-13.5688) rotate(51.8652)">		<title>Sheet.47</title>		<path d="M0 190.55 L33.18 190.55" class="st4"></path>	</g>	<g id="shape48-119" v:mid="48" v:groupcontext="shape" transform="translate(310.316,59.1) rotate(90)">		<title>Sheet.48</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape49-124" v:mid="49" v:groupcontext="shape" transform="translate(292.316,36.6) rotate(90)">		<title>Sheet.49</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape50-129" v:mid="50" v:groupcontext="shape" transform="translate(92.7637,-86.4525)">		<title>Rounded rectangle.21</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape51-132" v:mid="51" v:groupcontext="shape" transform="translate(330.777,54.6091) rotate(74.9464)">		<title>Sheet.51</title>		<path d="M0 190.55 L24.95 190.55" class="st4"></path>	</g>	<g id="shape52-137" v:mid="52" v:groupcontext="shape" transform="translate(346.316,59.1) rotate(90)">		<title>Sheet.52</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape53-142" v:mid="53" v:groupcontext="shape" transform="translate(328.316,36.6) rotate(90)">		<title>Sheet.53</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape54-147" v:mid="54" v:groupcontext="shape" transform="translate(128.764,-86.4525)">		<title>Rounded rectangle.30</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape55-150" v:mid="55" v:groupcontext="shape" transform="translate(367.749,149.824) rotate(103.884)">		<title>Sheet.55</title>		<path d="M0 190.55 L24.76 190.55" class="st4"></path>	</g>	<g id="shape56-155" v:mid="56" v:groupcontext="shape" transform="translate(382.316,59.1) rotate(90)">		<title>Sheet.56</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape57-160" v:mid="57" v:groupcontext="shape" transform="translate(364.316,36.6) rotate(90)">		<title>Sheet.57</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape58-165" v:mid="58" v:groupcontext="shape" transform="translate(164.764,-86.4525)">		<title>Rounded rectangle.44</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape59-168" v:mid="59" v:groupcontext="shape" transform="translate(370.233,219.717) rotate(127.355)">		<title>Sheet.59</title>		<path d="M0 190.55 L32.71 190.55" class="st4"></path>	</g>	<g id="shape60-173" v:mid="60" v:groupcontext="shape" transform="translate(418.316,59.1) rotate(90)">		<title>Sheet.60</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape61-178" v:mid="61" v:groupcontext="shape" transform="translate(400.316,36.6) rotate(90)">		<title>Sheet.61</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape62-183" v:mid="62" v:groupcontext="shape" transform="translate(200.764,-86.4525)">		<title>Rounded rectangle.48</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape63-186" v:mid="63" v:groupcontext="shape" transform="translate(372.108,254.235) rotate(141.989)">		<title>Sheet.63</title>		<path d="M0 190.55 L45.47 190.55" class="st4"></path>	</g>	<g id="shape64-191" v:mid="64" v:groupcontext="shape" transform="translate(454.316,59.1) rotate(90)">		<title>Sheet.64</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape65-196" v:mid="65" v:groupcontext="shape" transform="translate(436.316,36.6) rotate(90)">		<title>Sheet.65</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape66-201" v:mid="66" v:groupcontext="shape" transform="translate(236.764,-86.4525)">		<title>Rounded rectangle.52</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape67-204" v:mid="67" v:groupcontext="shape" transform="translate(383.479,270.576) rotate(150.885)">		<title>Sheet.67</title>		<path d="M0 190.55 L60.52 190.55" class="st4"></path>	</g>	<g id="shape68-209" v:mid="68" v:groupcontext="shape" transform="translate(490.316,59.1) rotate(90)">		<title>Sheet.68</title>		<path d="M0 190.55 L20.34 190.55" class="st4"></path>	</g>	<g id="shape69-214" v:mid="69" v:groupcontext="shape" transform="translate(472.316,36.6) rotate(90)">		<title>Sheet.69</title>		<path d="M0 190.55 L42.84 190.55" class="st4"></path>	</g>	<g id="shape70-219" v:mid="70" v:groupcontext="shape" transform="translate(272.764,-86.4525)">		<title>Rounded rectangle.56</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="18" cy="183.802" width="36" height="13.5"></v:textrect>		<path d="M29.25 190.55 A6.75005 6.75005 -180 0 0 36 183.8 A6.75005 6.75005 -180 0 0 29.25 177.05 L6.75 177.05 A6.75005					 6.75005 -180 0 0 0 183.8 A6.75005 6.75005 -180 0 0 6.75 190.55 L29.25 190.55 Z" class="st3"></path>		<text x="9.5" y="186.5" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g></g>
</svg>

**Vector byte compare**

[Vector halfword compare](https://docs.qualcomm.com/doc/80-N2040-60/topic/conditional-execution.html#v79-vector-halfword-compare) shows how a vector halfword compare
generates a vector predicate. Two 64-bit vectors of halfwords are
being compared. The result is assigned as a vector predicate to the
destination register Pd.

Because a vector halfword compare yields only four truth values, each
truth value is encoded as two bits in the generated vector predicate.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pic_vcmph.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="4.95417in" height="2.93318in" viewbox="0 0 356.7 211.189" xml:space="preserve" color-interpolation-filters="sRGB" class="st6"><title>pic_vcmpub</title><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvConvertTheme"></v:ud>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-2 .st1 { stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-2 .st2 { fill: #2a2aea; font-family: Arial; font-size: 0.75em }
.svg-2 .st3 { fill: #ffffff; stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-2 .st4 { marker-end: url("#mrkr13-30"); stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-2 .st5 { fill: #2a2aea; fill-opacity: 1; stroke: #2a2aea; stroke-opacity: 1; stroke-width: 0.32258064516129 }
.svg-2 .st6 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-30" class="st5" v:arrowtype="13" v:arrowsize="2" v:setback="9.3" refx="-9.3" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-3.1,-3.1) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<v:userdefs>		<v:ud v:nameu="SchemeName" v:val="VT4(Black &#38; White)"></v:ud>	</v:userdefs>	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(306.6,-179.089)">		<title>Sheet.1</title>		<desc>Rss</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="15.75" cy="205.211" width="31.5" height="11.9549"></v:textrect>		<path d="M31.5 199.23 L0 199.23 L0 211.19 L31.5 211.19 L31.5 199.23" class="st1"></path>		<text x="8" y="207.91" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rss</text>		</g>	<g id="shape2-5" v:mid="2" v:groupcontext="shape" transform="translate(162.6,-174.589)">		<title>Rectangle.72</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape3-7" v:mid="3" v:groupcontext="shape" transform="translate(234.6,-174.589)">		<title>Rectangle.73</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape4-9" v:mid="4" v:groupcontext="shape" transform="translate(18.6,-174.589)">		<title>Rectangle.74</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape5-11" v:mid="5" v:groupcontext="shape" transform="translate(90.6,-174.589)">		<title>Rectangle.75</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape6-13" v:mid="6" v:groupcontext="shape" transform="translate(306.6,-147.589)">		<title>Sheet.6</title>		<desc>Rtt</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="13.5" cy="205.211" width="27" height="11.9549"></v:textrect>		<path d="M27 199.23 L0 199.23 L0 211.19 L27 211.19 L27 199.23" class="st1"></path>		<text x="7.75" y="207.91" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rtt</text>		</g>	<g id="shape7-17" v:mid="7" v:groupcontext="shape" transform="translate(162.6,-143.089)">		<title>Rectangle.50</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape8-19" v:mid="8" v:groupcontext="shape" transform="translate(234.6,-143.089)">		<title>Rectangle.51</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape9-21" v:mid="9" v:groupcontext="shape" transform="translate(18.6,-143.089)">		<title>Rectangle.52</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape10-23" v:mid="10" v:groupcontext="shape" transform="translate(90.6,-143.089)">		<title>Rectangle.80</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="193.189" width="72" height="18" class="st3"></rect>	</g>	<g id="shape11-25" v:mid="11" v:groupcontext="shape" transform="translate(265.789,36.6) rotate(90)">		<title>Sheet.11</title>		<path d="M0 211.19 L51.84 211.19" class="st4"></path>	</g>	<g id="shape12-31" v:mid="12" v:groupcontext="shape" transform="translate(337.789,36.6) rotate(90)">		<title>Sheet.12</title>		<path d="M0 211.19 L51.84 211.19" class="st4"></path>	</g>	<g id="shape13-36" v:mid="13" v:groupcontext="shape" transform="translate(409.789,36.6) rotate(90)">		<title>Sheet.13</title>		<path d="M0 211.19 L51.84 211.19" class="st4"></path>	</g>	<g id="shape14-41" v:mid="14" v:groupcontext="shape" transform="translate(481.789,36.6) rotate(90)">		<title>Sheet.14</title>		<path d="M0 211.19 L51.84 211.19" class="st4"></path>	</g>	<g id="shape15-46" v:mid="15" v:groupcontext="shape" transform="translate(355.789,68.1) rotate(90)">		<title>Sheet.15</title>		<path d="M0 211.19 L20.34 211.19" class="st4"></path>	</g>	<g id="shape16-51" v:mid="16" v:groupcontext="shape" transform="translate(283.789,68.1) rotate(90)">		<title>Sheet.16</title>		<path d="M0 211.19 L20.34 211.19" class="st4"></path>	</g>	<g id="shape17-56" v:mid="17" v:groupcontext="shape" transform="translate(427.789,68.1) rotate(90)">		<title>Sheet.17</title>		<path d="M0 211.19 L20.34 211.19" class="st4"></path>	</g>	<g id="shape18-61" v:mid="18" v:groupcontext="shape" transform="translate(499.789,68.1) rotate(90)">		<title>Sheet.18</title>		<path d="M0 211.19 L20.34 211.19" class="st4"></path>	</g>	<g id="shape19-66" v:mid="19" v:groupcontext="shape" transform="translate(308.65,1.04489) rotate(55.0258)">		<title>Sheet.19</title>		<path d="M0 211.19 L34.62 211.19" class="st4"></path>	</g>	<g id="shape20-71" v:mid="20" v:groupcontext="shape" transform="translate(411.985,175.276) rotate(104.584)">		<title>Sheet.20</title>		<path d="M0 211.19 L27.6 211.19" class="st4"></path>	</g>	<g id="shape21-76" v:mid="21" v:groupcontext="shape" transform="translate(413.486,285.426) rotate(140.657)">		<title>Sheet.21</title>		<path d="M0 211.19 L48.01 211.19" class="st4"></path>	</g>	<g id="shape22-81" v:mid="22" v:groupcontext="shape" transform="translate(172.612,-58.7785) rotate(31.0766)">		<title>Sheet.22</title>		<path d="M0 211.19 L61.51 211.19" class="st4"></path>	</g>	<g id="shape31-86" v:mid="31" v:groupcontext="shape" transform="translate(98.8406,-33.5775)">		<title>Rectangle.119</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape32-89" v:mid="32" v:groupcontext="shape" transform="translate(116.841,-33.5775)">		<title>Rectangle.120</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape33-92" v:mid="33" v:groupcontext="shape" transform="translate(134.841,-33.5775)">		<title>Rectangle.121</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape34-95" v:mid="34" v:groupcontext="shape" transform="translate(152.841,-33.5775)">		<title>Rectangle.122</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape35-98" v:mid="35" v:groupcontext="shape" transform="translate(170.841,-33.5775)">		<title>Rectangle.123</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape36-101" v:mid="36" v:groupcontext="shape" transform="translate(188.841,-33.5775)">		<title>Rectangle.124</title>		<desc>1</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>1</text>		</g>	<g id="shape37-104" v:mid="37" v:groupcontext="shape" transform="translate(206.841,-33.5775)">		<title>Rectangle.125</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape38-107" v:mid="38" v:groupcontext="shape" transform="translate(224.841,-33.5775)">		<title>Rectangle.126</title>		<desc>0</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="9" cy="202.189" width="18" height="18"></v:textrect>		<rect x="0" y="193.189" width="18" height="18" class="st3"></rect>		<text x="6.5" y="204.89" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape39-110" v:mid="39" v:groupcontext="shape" transform="translate(216.6,-18.6)">		<title>Sheet.39</title>		<desc>0</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="205.211" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 199.23 L0 199.23 L0 211.19 L35.24 211.19 L35.24 199.23" class="st1"></path>		<text x="15.12" y="207.91" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>0</text>		</g>	<g id="shape41-114" v:mid="41" v:groupcontext="shape" transform="translate(90.6,-18.6)">		<title>Sheet.41</title>		<desc>7</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="205.211" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 199.23 L0 199.23 L0 211.19 L35.24 211.19 L35.24 199.23" class="st1"></path>		<text x="15.12" y="207.91" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>7</text>		</g>	<g id="shape42-118" v:mid="42" v:groupcontext="shape" transform="translate(200.179,-38.9803) rotate(40.2944)">		<title>Sheet.42</title>		<path d="M0 211.19 L46.84 211.19" class="st4"></path>	</g>	<g id="shape43-123" v:mid="43" v:groupcontext="shape" transform="translate(341.87,76.7862) rotate(77.61)">		<title>Sheet.43</title>		<path d="M0 211.19 L27.25 211.19" class="st4"></path>	</g>	<g id="shape44-128" v:mid="44" v:groupcontext="shape" transform="translate(377.36,247.727) rotate(126.503)">		<title>Sheet.44</title>		<path d="M0 211.19 L35.51 211.19" class="st4"></path>	</g>	<g id="shape45-133" v:mid="45" v:groupcontext="shape" transform="translate(386.689,304.124) rotate(149.531)">		<title>Sheet.45</title>		<path d="M0 211.19 L62.82 211.19" class="st4"></path>	</g>	<g id="shape46-138" v:mid="46" v:groupcontext="shape" transform="translate(41.1,-89.0887)">		<title>Rounded rectangle.62</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="199.939" width="45" height="22.5"></v:textrect>		<path d="M36 211.19 A9.00007 9.00007 -180 0 0 45 202.19 L45 197.69 A9.00007 9.00007 -180 0 0 36 188.69 L9 188.69 A9.00007					 9.00007 -180 0 0 0 197.69 L0 202.19 A9.00007 9.00007 -180 0 0 9 211.19 L36 211.19 Z" class="st3"></path>		<text x="14" y="202.64" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape47-141" v:mid="47" v:groupcontext="shape" transform="translate(113.1,-89.0887)">		<title>Rounded rectangle.63</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="199.939" width="45" height="22.5"></v:textrect>		<path d="M36 211.19 A9.00007 9.00007 -180 0 0 45 202.19 L45 197.69 A9.00007 9.00007 -180 0 0 36 188.69 L9 188.69 A9.00007					 9.00007 -180 0 0 0 197.69 L0 202.19 A9.00007 9.00007 -180 0 0 9 211.19 L36 211.19 Z" class="st3"></path>		<text x="14" y="202.64" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape48-144" v:mid="48" v:groupcontext="shape" transform="translate(185.1,-89.0887)">		<title>Rounded rectangle.64</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="199.939" width="45" height="22.5"></v:textrect>		<path d="M36 211.19 A9.00007 9.00007 -180 0 0 45 202.19 L45 197.69 A9.00007 9.00007 -180 0 0 36 188.69 L9 188.69 A9.00007					 9.00007 -180 0 0 0 197.69 L0 202.19 A9.00007 9.00007 -180 0 0 9 211.19 L36 211.19 Z" class="st3"></path>		<text x="14" y="202.64" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape49-147" v:mid="49" v:groupcontext="shape" transform="translate(257.1,-89.0887)">		<title>Rounded rectangle.65</title>		<desc>cmp</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="22.5" cy="199.939" width="45" height="22.5"></v:textrect>		<path d="M36 211.19 A9.00007 9.00007 -180 0 0 45 202.19 L45 197.69 A9.00007 9.00007 -180 0 0 36 188.69 L9 188.69 A9.00007					 9.00007 -180 0 0 0 197.69 L0 202.19 A9.00007 9.00007 -180 0 0 9 211.19 L36 211.19 Z" class="st3"></path>		<text x="14" y="202.64" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>cmp</text>		</g>	<g id="shape50-150" v:mid="50" v:groupcontext="shape" transform="translate(243.6,-38.1113)">		<title>Sheet.50</title>		<desc>Pd</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="15.75" cy="205.211" width="31.5" height="11.9549"></v:textrect>		<path d="M31.5 199.23 L0 199.23 L0 211.19 L31.5 211.19 L31.5 199.23" class="st1"></path>		<text x="10.25" y="207.91" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Pd</text>		</g></g>
</svg>

**Vector halfword compare**

### Vector mux instruction

A vector mux instruction conditionally selects the elements from two
vectors. The instruction takes as input two source vectors and a
predicate register. For each byte in the vector, the corresponding
bit in the predicate register is used to choose from one of the two
input vectors. The combined result is written to the destination
register.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pic_vmux.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="5.07917in" height="2.26667in" viewbox="0 0 365.7 163.2" xml:space="preserve" color-interpolation-filters="sRGB" class="st7"><title>pic_addh</title><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvConvertTheme"></v:ud>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-3 .st1 { stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-3 .st2 { fill: #2a2aea; font-family: Arial; font-size: 0.75em }
.svg-3 .st3 { fill: #ffffff; stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-3 .st4 { stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-3 .st5 { marker-end: url("#mrkr13-49"); stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.2 }
.svg-3 .st6 { fill: #2a2aea; fill-opacity: 1; stroke: #2a2aea; stroke-opacity: 1; stroke-width: 0.32258064516129 }
.svg-3 .st7 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend13">		<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"></path>	</g>	<marker id="mrkr13-49" class="st6" v:arrowtype="13" v:arrowsize="2" v:setback="9.3" refx="-9.3" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend13" transform="scale(-3.1,-3.1) "></use>	</marker></defs><g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<v:userdefs>		<v:ud v:nameu="SchemeName" v:val="VT4(Black &#38; White)"></v:ud>	</v:userdefs>	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape1-1" v:mid="1" v:groupcontext="shape" transform="translate(320.1,-131.1)">		<title>Sheet.1</title>		<desc>Rss</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="13.5" cy="157.223" width="27" height="11.9549"></v:textrect>		<path d="M27 151.25 L0 151.25 L0 163.2 L27 163.2 L27 151.25" class="st1"></path>		<text x="5.75" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rss</text>		</g>	<g id="shape2-5" v:mid="2" v:groupcontext="shape" transform="translate(32.1,-126.6)">		<title>Rectangle.22</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape3-7" v:mid="3" v:groupcontext="shape" transform="translate(320.1,-104.1)">		<title>Sheet.3</title>		<desc>Rtt</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="11.25" cy="154.2" width="22.51" height="18"></v:textrect>		<path d="M22.5 145.2 L0 145.2 L0 163.2 L22.5 163.2 L22.5 145.2" class="st1"></path>		<text x="5.5" y="156.9" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rtt</text>		</g>	<g id="shape4-11" v:mid="4" v:groupcontext="shape" transform="translate(-95.1,104.1) rotate(-90)">		<title>Sheet.4</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape5-14" v:mid="5" v:groupcontext="shape" transform="translate(68.1,-126.6)">		<title>Rectangle.25</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape6-16" v:mid="6" v:groupcontext="shape" transform="translate(104.1,-126.6)">		<title>Rectangle.26</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape7-18" v:mid="7" v:groupcontext="shape" transform="translate(140.1,-126.6)">		<title>Rectangle.27</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape8-20" v:mid="8" v:groupcontext="shape" transform="translate(176.1,-126.6)">		<title>Rectangle.28</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape9-22" v:mid="9" v:groupcontext="shape" transform="translate(212.1,-126.6)">		<title>Rectangle.29</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape10-24" v:mid="10" v:groupcontext="shape" transform="translate(248.1,-126.6)">		<title>Rectangle.30</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape11-26" v:mid="11" v:groupcontext="shape" transform="translate(284.1,-126.6)">		<title>Rectangle.31</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape12-28" v:mid="12" v:groupcontext="shape" transform="translate(32.1,-104.1)">		<title>Rectangle.32</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape13-30" v:mid="13" v:groupcontext="shape" transform="translate(68.1,-104.1)">		<title>Rectangle.33</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape14-32" v:mid="14" v:groupcontext="shape" transform="translate(104.1,-104.1)">		<title>Rectangle.34</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape15-34" v:mid="15" v:groupcontext="shape" transform="translate(140.1,-104.1)">		<title>Rectangle.15</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape16-36" v:mid="16" v:groupcontext="shape" transform="translate(176.1,-104.1)">		<title>Rectangle.16</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape17-38" v:mid="17" v:groupcontext="shape" transform="translate(212.1,-104.1)">		<title>Rectangle.37</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape18-40" v:mid="18" v:groupcontext="shape" transform="translate(248.1,-104.1)">		<title>Rectangle.38</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape19-42" v:mid="19" v:groupcontext="shape" transform="translate(284.1,-104.1)">		<title>Rectangle.39</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape20-44" v:mid="20" v:groupcontext="shape" transform="translate(222.3,59.1) rotate(90)">		<title>Sheet.20</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape21-50" v:mid="21" v:groupcontext="shape" transform="translate(204.3,36.6) rotate(90)">		<title>Sheet.21</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape22-55" v:mid="22" v:groupcontext="shape" transform="translate(36.6,-59.1)">		<title>Rounded rectangle.42</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape23-58" v:mid="23" v:groupcontext="shape" transform="translate(258.3,59.1) rotate(90)">		<title>Sheet.23</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape24-63" v:mid="24" v:groupcontext="shape" transform="translate(240.3,36.6) rotate(90)">		<title>Sheet.24</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape25-68" v:mid="25" v:groupcontext="shape" transform="translate(294.3,59.1) rotate(90)">		<title>Sheet.25</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape26-73" v:mid="26" v:groupcontext="shape" transform="translate(276.3,36.6) rotate(90)">		<title>Sheet.26</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape27-78" v:mid="27" v:groupcontext="shape" transform="translate(330.3,59.1) rotate(90)">		<title>Sheet.27</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape28-83" v:mid="28" v:groupcontext="shape" transform="translate(312.3,36.6) rotate(90)">		<title>Sheet.28</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape29-88" v:mid="29" v:groupcontext="shape" transform="translate(366.3,59.1) rotate(90)">		<title>Sheet.29</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape30-93" v:mid="30" v:groupcontext="shape" transform="translate(348.3,36.6) rotate(90)">		<title>Sheet.30</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape31-98" v:mid="31" v:groupcontext="shape" transform="translate(402.3,59.1) rotate(90)">		<title>Sheet.31</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape32-103" v:mid="32" v:groupcontext="shape" transform="translate(384.3,36.6) rotate(90)">		<title>Sheet.32</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape33-108" v:mid="33" v:groupcontext="shape" transform="translate(438.3,59.1) rotate(90)">		<title>Sheet.33</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape68-113" v:mid="68" v:groupcontext="shape" transform="translate(420.3,36.6) rotate(90)">		<title>Sheet.68</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape69-118" v:mid="69" v:groupcontext="shape" transform="translate(474.3,59.1) rotate(90)">		<title>Sheet.69</title>		<path d="M0 163.2 L20.34 163.2" class="st5"></path>	</g>	<g id="shape70-123" v:mid="70" v:groupcontext="shape" transform="translate(456.3,36.6) rotate(90)">		<title>Sheet.70</title>		<path d="M0 163.2 L42.84 163.2" class="st5"></path>	</g>	<g id="shape73-128" v:mid="73" v:groupcontext="shape" transform="translate(32.1,-18.6)">		<title>Rectangle.199</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape74-130" v:mid="74" v:groupcontext="shape" transform="translate(68.1,-18.6)">		<title>Rectangle.200</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape75-132" v:mid="75" v:groupcontext="shape" transform="translate(104.1,-18.6)">		<title>Rectangle.201</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape76-134" v:mid="76" v:groupcontext="shape" transform="translate(140.1,-18.6)">		<title>Rectangle.202</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape77-136" v:mid="77" v:groupcontext="shape" transform="translate(176.1,-18.6)">		<title>Rectangle.203</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape78-138" v:mid="78" v:groupcontext="shape" transform="translate(212.1,-18.6)">		<title>Rectangle.204</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape79-140" v:mid="79" v:groupcontext="shape" transform="translate(248.1,-18.6)">		<title>Rectangle.205</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape80-142" v:mid="80" v:groupcontext="shape" transform="translate(284.1,-18.6)">		<title>Rectangle.206</title>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<rect x="0" y="145.2" width="36" height="18" class="st3"></rect>	</g>	<g id="shape81-144" v:mid="81" v:groupcontext="shape" transform="translate(72.6,-59.1)">		<title>Rounded rectangle.46</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape82-147" v:mid="82" v:groupcontext="shape" transform="translate(108.6,-59.1)">		<title>Rounded rectangle.50</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape83-150" v:mid="83" v:groupcontext="shape" transform="translate(144.6,-59.1)">		<title>Rounded rectangle.54</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape84-153" v:mid="84" v:groupcontext="shape" transform="translate(180.6,-59.1)">		<title>Rounded rectangle.58</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape85-156" v:mid="85" v:groupcontext="shape" transform="translate(216.6,-59.1)">		<title>Rounded rectangle.90</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape86-159" v:mid="86" v:groupcontext="shape" transform="translate(252.6,-59.1)">		<title>Rounded rectangle.94</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape87-162" v:mid="87" v:groupcontext="shape" transform="translate(288.6,-59.1)">		<title>Rounded rectangle.98</title>		<desc>mux</desc>		<v:userdefs>			<v:ud v:nameu="visVersion" v:val="VT0(10):26"></v:ud>		</v:userdefs>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="13.5" cy="156.45" width="27" height="13.5"></v:textrect>		<path d="M20.25 163.2 A6.75005 6.75005 -180 0 0 27 156.45 A6.75005 6.75005 -180 0 0 20.25 149.7 L6.75 149.7 A6.75005					 6.75005 -180 0 0 0 156.45 A6.75005 6.75005 -180 0 0 6.75 163.2 L20.25 163.2 Z" class="st3"></path>		<text x="5" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mux</text>		</g>	<g id="shape88-165" v:mid="88" v:groupcontext="shape" transform="translate(54.9797,-45.6)">		<title>Sheet.88</title>		<desc>P[6]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="157.223" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 151.25 L0 151.25 L0 163.2 L35.24 163.2 L35.24 151.25" class="st1"></path>		<text x="9.62" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[6]</text>		</g>	<g id="shape89-169" v:mid="89" v:groupcontext="shape" transform="translate(68.1,-65.85)">		<title>Sheet.89</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape90-172" v:mid="90" v:groupcontext="shape" transform="translate(-59.1,104.1) rotate(-90)">		<title>Sheet.90</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape91-175" v:mid="91" v:groupcontext="shape" transform="translate(90.9797,-45.6)">		<title>Sheet.91</title>		<desc>P[5]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="157.223" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 151.25 L0 151.25 L0 163.2 L35.24 163.2 L35.24 151.25" class="st1"></path>		<text x="9.62" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[5]</text>		</g>	<g id="shape92-179" v:mid="92" v:groupcontext="shape" transform="translate(104.1,-65.85)">		<title>Sheet.92</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape93-182" v:mid="93" v:groupcontext="shape" transform="translate(-22.7203,104.1) rotate(-90)">		<title>Sheet.93</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape94-185" v:mid="94" v:groupcontext="shape" transform="translate(127.359,-45.6)">		<title>Sheet.94</title>		<desc>P[4]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="157.223" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 151.25 L0 151.25 L0 163.2 L35.24 163.2 L35.24 151.25" class="st1"></path>		<text x="9.62" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[4]</text>		</g>	<g id="shape95-189" v:mid="95" v:groupcontext="shape" transform="translate(140.48,-65.85)">		<title>Sheet.95</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape96-192" v:mid="96" v:groupcontext="shape" transform="translate(13.6594,104.1) rotate(-90)">		<title>Sheet.96</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape97-195" v:mid="97" v:groupcontext="shape" transform="translate(163.359,-45.6)">		<title>Sheet.97</title>		<desc>P[3]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="15.3703" cy="156.45" width="30.75" height="13.5"></v:textrect>		<path d="M30.74 149.7 L0 149.7 L0 163.2 L30.74 163.2 L30.74 149.7" class="st1"></path>		<text x="7.37" y="159.15" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[3]</text>		</g>	<g id="shape98-199" v:mid="98" v:groupcontext="shape" transform="translate(176.859,-65.85)">		<title>Sheet.98</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape99-202" v:mid="99" v:groupcontext="shape" transform="translate(48.9,104.1) rotate(-90)">		<title>Sheet.99</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape100-205" v:mid="100" v:groupcontext="shape" transform="translate(198.6,-45.6)">		<title>Sheet.100</title>		<desc>P[2]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="157.223" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 151.25 L0 151.25 L0 163.2 L35.24 163.2 L35.24 151.25" class="st1"></path>		<text x="9.62" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[2]</text>		</g>	<g id="shape101-209" v:mid="101" v:groupcontext="shape" transform="translate(212.1,-65.85)">		<title>Sheet.101</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape102-212" v:mid="102" v:groupcontext="shape" transform="translate(84.9,104.1) rotate(-90)">		<title>Sheet.102</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape103-215" v:mid="103" v:groupcontext="shape" transform="translate(239.1,-41.1)">		<title>Sheet.103</title>		<desc>P[1]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="11.25" cy="151.95" width="22.5" height="22.5"></v:textrect>		<path d="M22.5 140.7 L0 140.7 L0 163.2 L22.5 163.2 L22.5 140.7" class="st1"></path>		<text x="3.25" y="154.65" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[1]</text>		</g>	<g id="shape104-219" v:mid="104" v:groupcontext="shape" transform="translate(248.1,-65.85)">		<title>Sheet.104</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape105-222" v:mid="105" v:groupcontext="shape" transform="translate(120.9,104.1) rotate(-90)">		<title>Sheet.105</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape106-225" v:mid="106" v:groupcontext="shape" transform="translate(275.1,-41.1)">		<title>Sheet.106</title>		<desc>P[0]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="11.25" cy="151.95" width="22.5" height="22.5"></v:textrect>		<path d="M22.5 140.7 L0 140.7 L0 163.2 L22.5 163.2 L22.5 140.7" class="st1"></path>		<text x="3.25" y="154.65" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[0]</text>		</g>	<g id="shape107-229" v:mid="107" v:groupcontext="shape" transform="translate(284.1,-65.85)">		<title>Sheet.107</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape108-232" v:mid="108" v:groupcontext="shape" transform="translate(-131.1,104.1) rotate(-90)">		<title>Sheet.108</title>		<path d="M0 163.2 L6.75 163.2" class="st4"></path>	</g>	<g id="shape109-235" v:mid="109" v:groupcontext="shape" transform="translate(18.6,-45.6)">		<title>Sheet.109</title>		<desc>P[7]</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="17.6203" cy="157.223" width="35.25" height="11.9549"></v:textrect>		<path d="M35.24 151.25 L0 151.25 L0 163.2 L35.24 163.2 L35.24 151.25" class="st1"></path>		<text x="9.62" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>P[7]</text>		</g>	<g id="shape110-239" v:mid="110" v:groupcontext="shape" transform="translate(32.1,-65.85)">		<title>Sheet.110</title>		<path d="M0 163.2 L4.5 163.2" class="st4"></path>	</g>	<g id="shape111-242" v:mid="111" v:groupcontext="shape" transform="translate(213.3,104.1) rotate(90)">		<title>Sheet.111</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape112-247" v:mid="112" v:groupcontext="shape" transform="translate(249.3,104.1) rotate(90)">		<title>Sheet.112</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape113-252" v:mid="113" v:groupcontext="shape" transform="translate(285.3,104.1) rotate(90)">		<title>Sheet.113</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape114-257" v:mid="114" v:groupcontext="shape" transform="translate(321.3,104.1) rotate(90)">		<title>Sheet.114</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape115-262" v:mid="115" v:groupcontext="shape" transform="translate(357.3,104.1) rotate(90)">		<title>Sheet.115</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape116-267" v:mid="116" v:groupcontext="shape" transform="translate(393.3,104.1) rotate(90)">		<title>Sheet.116</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape117-272" v:mid="117" v:groupcontext="shape" transform="translate(429.3,104.1) rotate(90)">		<title>Sheet.117</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape118-277" v:mid="118" v:groupcontext="shape" transform="translate(465.3,104.1) rotate(90)">		<title>Sheet.118</title>		<path d="M0 163.2 L11.34 163.2" class="st5"></path>	</g>	<g id="shape119-282" v:mid="119" v:groupcontext="shape" transform="translate(320.1,-21.6225)">		<title>Sheet.119</title>		<desc>Rdd</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="13.5" cy="157.223" width="27" height="11.9549"></v:textrect>		<path d="M27 151.25 L0 151.25 L0 163.2 L27 163.2 L27 151.25" class="st1"></path>		<text x="5.24" y="159.92" class="st2" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Rdd</text>		</g></g>
</svg>

**Vector mux instruction**

Vector mux instruction

| **Syntax** | **Operation** |
| --- | --- |
| Rdd = vmux(Ps,Rss,Rtt) | Select bytes from Rss and Rtt |

Changing the order of the source operands in a mux instruction
enables formation of both senses of the result. For example:

R1:0 = vmux(P0,R3:2,R5:4)    // Choose bytes from R3:2 if true
    R1:0 = vmux(P0,R5:4,R3:2)    // Choose bytes from R3:2 if false
    Copy to clipboard

Note

By replicating the predicate bits generated by word or
halfword compares, the vector mux instruction can select words or
halfwords.

### Using vector conditionals

Vector conditional support is used to vectorize loops with
conditional statements. Consider the following C statement:

for (i=0; i<8; i++) {
       if (A[i]) {
          B[i] = C[i];
       }
    }
    Copy to clipboard

Assuming arrays of bytes, this code can be vectorized as follows:

R1:0 = memd(R_A)             // R1:0 holds A[7]-A[0]
    R3 = #0                      // Clear R3:2
    R2 = #0
    P0 = vcmpb.eq(R1:0,R3:2)     // Compare bytes in A to zero
    R5:4 = memd(R_B)             // R5:4 holds B[7]-B[0]
    R7:6 = memd(R_C)             // R7:6 holds C[7]-C[0]
    R3:2 = vmux(P0,R7:6,R5:4)    // if A[i]) B[i]=C[i]
    memd(R_B) = R3:2             // store B[7]-B[0]
    Copy to clipboard

## Predicate operations

The Hexagon processor provides a set of operations for manipulating
and moving predicate registers.

**Table 6-3 Predicate register instructions**

| **Syntax** | **Operation** |
| --- | --- |
| `Pd = Ps` | Transfer predicate Ps to Pd |
| `Pd = Rs` | Transfer register Rs to predicate Pd |
| `Rd = Ps` | Transfer predicate Ps to register Rd |
| `Pd = and(Ps,[!]Pt)` | Set Pd to bitwise AND of Ps and [NOT] Pt |
| `Pd = or(Ps,[!]Pt)` | Set Pd to bitwise OR of Ps and [NOT] Pt |
| `Pd = and(Ps, and(Pt,[!]Pu)` | Set Pd to AND of Ps and (AND of Pt and [NOT] Pu) |
| `Pd = and(Ps, or(Pt,[!]Pu)` | Set Pd to AND of Ps and (OR of Pt and [NOT] Pu) |
| `Pd = or(Ps, and(Pt,[!]Pu)` | Set Pd to OR of Ps and (AND of Pt and [NOT] Pu) |
| `Pd = or(Ps, or(Pt,[!]Pu)` | Set Pd to OR of Ps and (OR of Pt and [NOT] Pu) |
| `Pd = not(Ps)` | Set Pd to bitwise inversion of Ps |
| `Pd = xor(Ps,Pt)` | Set Pd to bitwise exclusive OR of Ps and Pt |
| `Pd = any8(Ps)` | Set Pd to 0xFF if any bit in Ps is 1, 0x00 otherwise |
| `Pd = all8(Ps)` | Set Pd to 0x00 if any bit in Ps is 0, 0xFF otherwise |

Note

These instructions belong to instruction class CR.

Predicate registers can be transferred to and from the general
registers either individually or as register quadruples
([predicate registers](https://docs.qualcomm.com/doc/80-N2040-60/topic/registers.html#v79-prm-predicate-registers)).

Last Published: Jan 16, 2025

[Previous Topic
Memory](https://docs.qualcomm.com/bundle/publicresource/80-N2040-60/topics/memory.md) [Next Topic
Software stack](https://docs.qualcomm.com/bundle/publicresource/80-N2040-60/topics/software-stack.md)