aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-arm.c36
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/arm/thumb32.d52
-rw-r--r--gas/testsuite/gas/arm/thumb32.s12
5 files changed, 84 insertions, 26 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index cc855cd..ac2afd0 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2009-01-29 Mark Mitchell <mark@codesourcery.com>
+ * config/tc-arm.c (insns): Add qasx, qsax, shasx, shsax, ssax,
+ uasx, uhasx, uhsx, uqasx, uqsax, usax.
+
+2009-01-29 Mark Mitchell <mark@codesourcery.com>
+
* config/tc-arm.c (insns): Correct encoding of qadd, qdadd, qsub,
qdsub in Thumb-2 mode.
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 0d4d005..8472798 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -15283,40 +15283,64 @@ static const struct asm_opcode insns[] =
TCE(pkhtb, 6800050, eac00020, 4, (RRnpc, RRnpc, RRnpc, oSHar), pkhtb, t_pkhtb),
TCE(qadd16, 6200f10, fa90f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(qadd8, 6200f90, fa80f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(qasx, 6200f30, faa0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for QASX. */
TCE(qaddsubx, 6200f30, faa0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(qsax, 6200f50, fae0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for QSAX. */
+ TCE(qsubaddx, 6200f50, fae0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(qsub16, 6200f70, fad0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(qsub8, 6200ff0, fac0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(qsubaddx, 6200f50, fae0f010, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(sadd16, 6100f10, fa90f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(sadd8, 6100f90, fa80f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(sasx, 6100f30, faa0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for SASX. */
TCE(saddsubx, 6100f30, faa0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(shadd16, 6300f10, fa90f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(shadd8, 6300f90, fa80f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(shasx, 6300f30, faa0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for SHASX. */
TCE(shaddsubx, 6300f30, faa0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(shsax, 6300f50, fae0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for SHSAX. */
+ TCE(shsubaddx, 6300f50, fae0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(shsub16, 6300f70, fad0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(shsub8, 6300ff0, fac0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(shsubaddx, 6300f50, fae0f020, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(ssax, 6100f50, fae0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for SSAX. */
+ TCE(ssubaddx, 6100f50, fae0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(ssub16, 6100f70, fad0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(ssub8, 6100ff0, fac0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(ssubaddx, 6100f50, fae0f000, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uadd16, 6500f10, fa90f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uadd8, 6500f90, fa80f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(uasx, 6500f30, faa0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for UASX. */
TCE(uaddsubx, 6500f30, faa0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uhadd16, 6700f10, fa90f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uhadd8, 6700f90, fa80f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(uhasx, 6700f30, faa0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for UHASX. */
TCE(uhaddsubx, 6700f30, faa0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(uhsax, 6700f50, fae0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for UHSAX. */
+ TCE(uhsubaddx, 6700f50, fae0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uhsub16, 6700f70, fad0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uhsub8, 6700ff0, fac0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(uhsubaddx, 6700f50, fae0f060, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uqadd16, 6600f10, fa90f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uqadd8, 6600f90, fa80f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(uqasx, 6600f30, faa0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for UQASX. */
TCE(uqaddsubx, 6600f30, faa0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(uqsax, 6600f50, fae0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for UQSAX. */
+ TCE(uqsubaddx, 6600f50, fae0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uqsub16, 6600f70, fad0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(uqsub8, 6600ff0, fac0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(uqsubaddx, 6600f50, fae0f050, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TCE(usub16, 6500f70, fad0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
- TCE(usub8, 6500ff0, fac0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(usax, 6500f50, fae0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ /* Old name for USAX. */
TCE(usubaddx, 6500f50, fae0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
+ TCE(usub8, 6500ff0, fac0f040, 3, (RRnpc, RRnpc, RRnpc), rd_rn_rm, t_simd),
TUF(rfeia, 8900a00, e990c000, 1, (RRw), rfe, rfe),
UF(rfeib, 9900a00, 1, (RRw), rfe),
UF(rfeda, 8100a00, 1, (RRw), rfe),
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 7bc3d8e..8895366 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2009-01-29 Mark Mitchell <mark@codesourcery.com>
+ * gas/arm/thumb32.s (qadd): Add tests for them.
+ * gas/arm/thumb32.d: Adjust accordingly.
+
+2009-01-29 Mark Mitchell <mark@codesourcery.com>
+
* gas/arm/thumb32.s (qadd): Add qadd, qdadd, qsub, and qdsub.
* gas/arm/thumb32.d: Likewise.
diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d
index 406100c..e77ed2f 100644
--- a/gas/testsuite/gas/arm/thumb32.d
+++ b/gas/testsuite/gas/arm/thumb32.d
@@ -686,42 +686,54 @@ Disassembly of section .text:
0[0-9a-f]+ <[^>]+> fa92 f113 qadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f113 qadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f113 qaddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f193 qdadd r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f1b3 qdsub r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f1a3 qsub r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f113 qsub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f113 qsub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f113 qsubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f113 qsubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa92 f103 sadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f103 sadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f103 saddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f103 saddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f103 ssub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f103 ssub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f103 ssubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f103 ssubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa92 f123 shadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f123 shadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f123 shaddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f123 shaddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f123 shsub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f123 shsub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f123 shsubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f123 shsubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa92 f143 uadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f143 uadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f143 uaddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f143 uaddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f143 usub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f143 usub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f143 usubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f143 usubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa92 f163 uhadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f163 uhadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f163 uhaddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f163 uhaddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f163 uhsub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f163 uhsub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f163 uhsubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f163 uhsubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> fa92 f153 uqadd16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa82 f153 uqadd8 r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f153 uqaddsubx r1, r2, r3
+0[0-9a-f]+ <[^>]+> faa2 f153 uqaddsubx r1, r2, r3
0[0-9a-f]+ <[^>]+> fad2 f153 uqsub16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fac2 f153 uqsub8 r1, r2, r3
0[0-9a-f]+ <[^>]+> fae2 f153 uqsubaddx r1, r2, r3
+0[0-9a-f]+ <[^>]+> fae2 f153 uqsubaddx r1, r2, r3
0[0-9a-f]+ <[^>]+> faa2 f183 sel r1, r2, r3
0[0-9a-f]+ <[^>]+> ba00 rev r0, r0
0[0-9a-f]+ <[^>]+> fa90 f080 rev\.w r0, r0
@@ -917,26 +929,26 @@ Disassembly of section .text:
0[0-9a-f]+ <[^>]+> fa52 f183 uxtab r1, r2, r3
0[0-9a-f]+ <[^>]+> fa32 f183 uxtab16 r1, r2, r3
0[0-9a-f]+ <[^>]+> fa12 f183 uxtah r1, r2, r3
-0[0-9a-f]+ <[^>]+> f89f 12aa ldrb\.w r1, \[pc, #682\] ; 0+e12 <[^>]+>
-0[0-9a-f]+ <[^>]+> f89f 1155 ldrb\.w r1, \[pc, #341\] ; 0+cc1 <[^>]+>
-0[0-9a-f]+ <[^>]+> f81f 12aa ldrb\.w r1, \[pc, #-682\] ; 0+8c6 <[^>]+>
-0[0-9a-f]+ <[^>]+> f81f 1155 ldrb\.w r1, \[pc, #-341\] ; 0+a1f <[^>]+>
-0[0-9a-f]+ <[^>]+> f99f 12aa ldrsb\.w r1, \[pc, #682\] ; 0+e22 <[^>]+>
-0[0-9a-f]+ <[^>]+> f99f 1155 ldrsb\.w r1, \[pc, #341\] ; 0+cd1 <[^>]+>
-0[0-9a-f]+ <[^>]+> f91f 12aa ldrsb\.w r1, \[pc, #-682\] ; 0+8d6 <[^>]+>
-0[0-9a-f]+ <[^>]+> f91f 1155 ldrsb\.w r1, \[pc, #-341\] ; 0+a2f <[^>]+>
-0[0-9a-f]+ <[^>]+> f8bf 12aa ldrh\.w r1, \[pc, #682\] ; 0+e32 <[^>]+>
-0[0-9a-f]+ <[^>]+> f8bf 1155 ldrh\.w r1, \[pc, #341\] ; 0+ce1 <[^>]+>
-0[0-9a-f]+ <[^>]+> f83f 12aa ldrh\.w r1, \[pc, #-682\] ; 0+8e6 <[^>]+>
-0[0-9a-f]+ <[^>]+> f83f 1155 ldrh\.w r1, \[pc, #-341\] ; 0+a3f <[^>]+>
-0[0-9a-f]+ <[^>]+> f9bf 12aa ldrsh\.w r1, \[pc, #682\] ; 0+e42 <[^>]+>
-0[0-9a-f]+ <[^>]+> f9bf 1155 ldrsh\.w r1, \[pc, #341\] ; 0+cf1 <[^>]+>
-0[0-9a-f]+ <[^>]+> f93f 12aa ldrsh\.w r1, \[pc, #-682\] ; 0+8f6 <[^>]+>
-0[0-9a-f]+ <[^>]+> f93f 1155 ldrsh\.w r1, \[pc, #-341\] ; 0+a4f <[^>]+>
-0[0-9a-f]+ <[^>]+> f8df 12aa ldr\.w r1, \[pc, #682\] ; 0+e52 <[^>]+>
-0[0-9a-f]+ <[^>]+> f8df 1155 ldr\.w r1, \[pc, #341\] ; 0+d01 <[^>]+>
-0[0-9a-f]+ <[^>]+> f85f 12aa ldr\.w r1, \[pc, #-682\] ; 0+906 <[^>]+>
-0[0-9a-f]+ <[^>]+> f85f 1155 ldr\.w r1, \[pc, #-341\] ; 0+a5f <[^>]+>
+0[0-9a-f]+ <[^>]+> f89f 12aa ldrb\.w r1, \[pc, #682\] ; 0+e42 <[^>]+>
+0[0-9a-f]+ <[^>]+> f89f 1155 ldrb\.w r1, \[pc, #341\] ; 0+cf1 <[^>]+>
+0[0-9a-f]+ <[^>]+> f81f 12aa ldrb\.w r1, \[pc, #-682\] ; 0+8f6 <[^>]+>
+0[0-9a-f]+ <[^>]+> f81f 1155 ldrb\.w r1, \[pc, #-341\] ; 0+a4f <[^>]+>
+0[0-9a-f]+ <[^>]+> f99f 12aa ldrsb\.w r1, \[pc, #682\] ; 0+e52 <[^>]+>
+0[0-9a-f]+ <[^>]+> f99f 1155 ldrsb\.w r1, \[pc, #341\] ; 0+d01 <[^>]+>
+0[0-9a-f]+ <[^>]+> f91f 12aa ldrsb\.w r1, \[pc, #-682\] ; 0+906 <[^>]+>
+0[0-9a-f]+ <[^>]+> f91f 1155 ldrsb\.w r1, \[pc, #-341\] ; 0+a5f <[^>]+>
+0[0-9a-f]+ <[^>]+> f8bf 12aa ldrh\.w r1, \[pc, #682\] ; 0+e62 <[^>]+>
+0[0-9a-f]+ <[^>]+> f8bf 1155 ldrh\.w r1, \[pc, #341\] ; 0+d11 <[^>]+>
+0[0-9a-f]+ <[^>]+> f83f 12aa ldrh\.w r1, \[pc, #-682\] ; 0+916 <[^>]+>
+0[0-9a-f]+ <[^>]+> f83f 1155 ldrh\.w r1, \[pc, #-341\] ; 0+a6f <[^>]+>
+0[0-9a-f]+ <[^>]+> f9bf 12aa ldrsh\.w r1, \[pc, #682\] ; 0+e72 <[^>]+>
+0[0-9a-f]+ <[^>]+> f9bf 1155 ldrsh\.w r1, \[pc, #341\] ; 0+d21 <[^>]+>
+0[0-9a-f]+ <[^>]+> f93f 12aa ldrsh\.w r1, \[pc, #-682\] ; 0+926 <[^>]+>
+0[0-9a-f]+ <[^>]+> f93f 1155 ldrsh\.w r1, \[pc, #-341\] ; 0+a7f <[^>]+>
+0[0-9a-f]+ <[^>]+> f8df 12aa ldr\.w r1, \[pc, #682\] ; 0+e82 <[^>]+>
+0[0-9a-f]+ <[^>]+> f8df 1155 ldr\.w r1, \[pc, #341\] ; 0+d31 <[^>]+>
+0[0-9a-f]+ <[^>]+> f85f 12aa ldr\.w r1, \[pc, #-682\] ; 0+936 <[^>]+>
+0[0-9a-f]+ <[^>]+> f85f 1155 ldr\.w r1, \[pc, #-341\] ; 0+a8f <[^>]+>
0[0-9a-f]+ <[^>]+> f200 0900 addw r9, r0, #0 ; 0x0
0[0-9a-f]+ <[^>]+> f60f 76ff addw r6, pc, #4095 ; 0xfff
0[0-9a-f]+ <[^>]+> f6a9 2685 subw r6, r9, #2693 ; 0xa85
diff --git a/gas/testsuite/gas/arm/thumb32.s b/gas/testsuite/gas/arm/thumb32.s
index a4653d0..2757899 100644
--- a/gas/testsuite/gas/arm/thumb32.s
+++ b/gas/testsuite/gas/arm/thumb32.s
@@ -529,42 +529,54 @@ qadd:
qadd r1, r2, r3
qadd16 r1, r2, r3
qadd8 r1, r2, r3
+ qasx r1, r2, r3
qaddsubx r1, r2, r3
qdadd r1, r2, r3
qdsub r1, r2, r3
qsub r1, r2, r3
qsub16 r1, r2, r3
qsub8 r1, r2, r3
+ qsax r1, r2, r3
qsubaddx r1, r2, r3
sadd16 r1, r2, r3
sadd8 r1, r2, r3
+ sasx r1, r2, r3
saddsubx r1, r2, r3
ssub16 r1, r2, r3
ssub8 r1, r2, r3
+ ssax r1, r2, r3
ssubaddx r1, r2, r3
shadd16 r1, r2, r3
shadd8 r1, r2, r3
+ shasx r1, r2, r3
shaddsubx r1, r2, r3
shsub16 r1, r2, r3
shsub8 r1, r2, r3
+ shsax r1, r2, r3
shsubaddx r1, r2, r3
uadd16 r1, r2, r3
uadd8 r1, r2, r3
+ uasx r1, r2, r3
uaddsubx r1, r2, r3
usub16 r1, r2, r3
usub8 r1, r2, r3
+ usax r1, r2, r3
usubaddx r1, r2, r3
uhadd16 r1, r2, r3
uhadd8 r1, r2, r3
+ uhasx r1, r2, r3
uhaddsubx r1, r2, r3
uhsub16 r1, r2, r3
uhsub8 r1, r2, r3
+ uhsax r1, r2, r3
uhsubaddx r1, r2, r3
uqadd16 r1, r2, r3
uqadd8 r1, r2, r3
+ uqasx r1, r2, r3
uqaddsubx r1, r2, r3
uqsub16 r1, r2, r3
uqsub8 r1, r2, r3
+ uqsax r1, r2, r3
uqsubaddx r1, r2, r3
sel r1, r2, r3