Thumb2 assembly parsing and encoding for UQADD16/UQADD8.
[oota-llvm.git] / test / MC / ARM / basic-thumb2-instructions.s
index 65299ca231f8829e80ddefe31ee86918acd1b3ad..71a5aaa693c7bea73ff70b42f3981ea53641168d 100644 (file)
@@ -2686,3 +2686,143 @@ _func:
 @ CHECK: ite   gt                      @ encoding: [0xcc,0xbf]
 @ CHECK: uadd16gt      r1, r2, r3      @ encoding: [0x92,0xfa,0x43,0xf1]
 @ CHECK: uadd8le       r1, r2, r3      @ encoding: [0x82,0xfa,0x43,0xf1]
+
+
+@------------------------------------------------------------------------------
+@ UASX
+@------------------------------------------------------------------------------
+        uasx r9, r12, r0
+        it eq
+        uasxeq r9, r12, r0
+        uaddsubx r9, r12, r0
+        it eq
+        uaddsubxeq r9, r12, r0
+
+@ CHECK: uasx  r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
+@ CHECK: it    eq                      @ encoding: [0x08,0xbf]
+@ CHECK: uasxeq        r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
+@ CHECK: uasx  r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
+@ CHECK: it    eq                      @ encoding: [0x08,0xbf]
+@ CHECK: uasxeq        r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
+
+
+@------------------------------------------------------------------------------
+@ UBFX
+@------------------------------------------------------------------------------
+        ubfx r4, r5, #16, #1
+        it gt
+        ubfxgt r4, r5, #16, #16
+
+@ CHECK: ubfx  r4, r5, #16, #1         @ encoding: [0xc5,0xf3,0x00,0x44]
+@ CHECK: it    gt                      @ encoding: [0xc8,0xbf]
+@ CHECK: ubfxgt        r4, r5, #16, #16        @ encoding: [0xc5,0xf3,0x0f,0x44]
+
+
+@------------------------------------------------------------------------------
+@ UHADD16/UHADD8
+@------------------------------------------------------------------------------
+        uhadd16 r4, r8, r2
+        uhadd8 r4, r8, r2
+        itt gt
+        uhadd16gt r4, r8, r2
+        uhadd8gt r4, r8, r2
+
+@ CHECK: uhadd16       r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
+@ CHECK: uhadd8        r4, r8, r2              @ encoding: [0x88,0xfa,0x62,0xf4]
+@ CHECK: itt   gt                      @ encoding: [0xc4,0xbf]
+@ CHECK: uhadd16gt     r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
+@ CHECK: uhadd8gt      r4, r8, r2      @ encoding: [0x88,0xfa,0x62,0xf4]
+
+
+@------------------------------------------------------------------------------
+@ UHASX/UHSAX
+@------------------------------------------------------------------------------
+        uhasx r4, r1, r5
+        uhsax r5, r6, r6
+        itt gt
+        uhasxgt r6, r9, r8
+        uhsaxgt r7, r8, r12
+        uhaddsubx r4, r1, r5
+        uhsubaddx r5, r6, r6
+        itt gt
+        uhaddsubxgt r6, r9, r8
+        uhsubaddxgt r7, r8, r12
+
+@ CHECK: uhasx r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
+@ CHECK: uhsax r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
+@ CHECK: itt   gt                      @ encoding: [0xc4,0xbf]
+@ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
+@ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
+@ CHECK: uhasx r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
+@ CHECK: uhsax r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
+@ CHECK: itt   gt                      @ encoding: [0xc4,0xbf]
+@ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
+@ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
+
+
+@------------------------------------------------------------------------------
+@ UHSUB16/UHSUB8
+@------------------------------------------------------------------------------
+        uhsub16 r5, r8, r3
+        uhsub8 r1, r7, r6
+        itt lt
+        uhsub16lt r4, r9, r12
+        uhsub8lt r3, r1, r5
+
+@ CHECK: uhsub16       r5, r8, r3      @ encoding: [0xd8,0xfa,0x63,0xf5]
+@ CHECK: uhsub8        r1, r7, r6              @ encoding: [0xc7,0xfa,0x66,0xf1]
+@ CHECK: itt   lt                      @ encoding: [0xbc,0xbf]
+@ CHECK: uhsub16lt     r4, r9, r12     @ encoding: [0xd9,0xfa,0x6c,0xf4]
+@ CHECK: uhsub8lt      r3, r1, r5      @ encoding: [0xc1,0xfa,0x65,0xf3]
+
+
+@------------------------------------------------------------------------------
+@ UMAAL
+@------------------------------------------------------------------------------
+        umaal r3, r4, r5, r6
+        it lt
+        umaallt r3, r4, r5, r6
+
+@ CHECK: umaal r3, r4, r5, r6          @ encoding: [0xe5,0xfb,0x66,0x34]
+@ CHECK: it    lt                      @ encoding: [0xb8,0xbf]
+@ CHECK: umaallt       r3, r4, r5, r6  @ encoding: [0xe5,0xfb,0x66,0x34]
+
+
+@------------------------------------------------------------------------------
+@ UMLAL
+@------------------------------------------------------------------------------
+        umlal r2, r4, r6, r8
+        it gt
+        umlalgt r6, r1, r2, r6
+
+@ CHECK: umlal r2, r4, r6, r8          @ encoding: [0xe6,0xfb,0x08,0x24]
+@ CHECK: it    gt                      @ encoding: [0xc8,0xbf]
+@ CHECK: umlalgt       r6, r1, r2, r6  @ encoding: [0xe2,0xfb,0x06,0x61]
+
+
+@------------------------------------------------------------------------------
+@ UMULL
+@------------------------------------------------------------------------------
+        umull r2, r4, r6, r8
+        it gt
+        umullgt r6, r1, r2, r6
+
+@ CHECK: umull r2, r4, r6, r8          @ encoding: [0xa6,0xfb,0x08,0x24]
+@ CHECK: it    gt                      @ encoding: [0xc8,0xbf]
+@ CHECK: umullgt       r6, r1, r2, r6  @ encoding: [0xa2,0xfb,0x06,0x61]
+
+
+@------------------------------------------------------------------------------
+@ UQADD16/UQADD8
+@------------------------------------------------------------------------------
+        uqadd16 r1, r2, r3
+        uqadd8 r3, r4, r8
+        ite gt
+        uqadd16gt r4, r7, r9
+        uqadd8le r8, r1, r2
+
+@ CHECK: uqadd16       r1, r2, r3      @ encoding: [0x92,0xfa,0x53,0xf1]
+@ CHECK: uqadd8        r3, r4, r8              @ encoding: [0x84,0xfa,0x58,0xf3]
+@ CHECK: ite   gt                      @ encoding: [0xcc,0xbf]
+@ CHECK: uqadd16gt     r4, r7, r9      @ encoding: [0x97,0xfa,0x59,0xf4]
+@ CHECK: uqadd8le      r8, r1, r2      @ encoding: [0x81,0xfa,0x52,0xf8]