Home | History | Annotate | Download | only in ARM
      1 @ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s
      2   .syntax unified
      3   .globl _func
      4 
      5 @ Check that the assembler can handle the documented syntax from the ARM ARM.
      6 @ For complex constructs like shifter operands, check more thoroughly for them
      7 @ once then spot check that following instructions accept the form generally.
      8 @ This gives us good coverage while keeping the overall size of the test
      9 @ more reasonable.
     10 
     11 
     12 @ FIXME: Some 3-operand instructions have a 2-operand assembly syntax.
     13 
     14 _func:
     15 @ CHECK: _func
     16 
     17 @------------------------------------------------------------------------------
     18 @ ADC (immediate)
     19 @------------------------------------------------------------------------------
     20         adc r0, r1, #4
     21         adcs r0, r1, #0
     22         adc r1, r2, #255
     23         adc r3, r7, #0x00550055
     24         adc r8, r12, #0xaa00aa00
     25         adc r9, r7, #0xa5a5a5a5
     26         adc r5, r3, #0x87000000
     27         adc r4, r2, #0x7f800000
     28         adc r4, r2, #0x00000680
     29 
     30 @ CHECK: adc	r0, r1, #4              @ encoding: [0x41,0xf1,0x04,0x00]
     31 @ CHECK: adcs	r0, r1, #0              @ encoding: [0x51,0xf1,0x00,0x00]
     32 @ CHECK: adc	r1, r2, #255            @ encoding: [0x42,0xf1,0xff,0x01]
     33 @ CHECK: adc	r3, r7, #5570645        @ encoding: [0x47,0xf1,0x55,0x13]
     34 @ CHECK: adc	r8, r12, #2852170240    @ encoding: [0x4c,0xf1,0xaa,0x28]
     35 @ CHECK: adc	r9, r7, #2779096485     @ encoding: [0x47,0xf1,0xa5,0x39]
     36 @ CHECK: adc	r5, r3, #2264924160     @ encoding: [0x43,0xf1,0x07,0x45]
     37 @ CHECK: adc	r4, r2, #2139095040     @ encoding: [0x42,0xf1,0xff,0x44]
     38 @ CHECK: adc	r4, r2, #1664           @ encoding: [0x42,0xf5,0xd0,0x64]
     39 
     40 @------------------------------------------------------------------------------
     41 @ ADC (register)
     42 @------------------------------------------------------------------------------
     43         adc r4, r5, r6
     44         adcs r4, r5, r6
     45         adc.w r9, r1, r3
     46         adcs.w r9, r1, r3
     47         adc	r0, r1, r3, ror #4
     48         adcs	r0, r1, r3, lsl #7
     49         adc.w	r0, r1, r3, lsr #31
     50         adcs.w	r0, r1, r3, asr #32
     51         add r2, sp, ip
     52 
     53 @ CHECK: adc.w	r4, r5, r6              @ encoding: [0x45,0xeb,0x06,0x04]
     54 @ CHECK: adcs.w	r4, r5, r6              @ encoding: [0x55,0xeb,0x06,0x04]
     55 @ CHECK: adc.w	r9, r1, r3              @ encoding: [0x41,0xeb,0x03,0x09]
     56 @ CHECK: adcs.w	r9, r1, r3              @ encoding: [0x51,0xeb,0x03,0x09]
     57 @ CHECK: adc.w	r0, r1, r3, ror #4      @ encoding: [0x41,0xeb,0x33,0x10]
     58 @ CHECK: adcs.w	r0, r1, r3, lsl #7      @ encoding: [0x51,0xeb,0xc3,0x10]
     59 @ CHECK: adc.w	r0, r1, r3, lsr #31     @ encoding: [0x41,0xeb,0xd3,0x70]
     60 @ CHECK: adcs.w	r0, r1, r3, asr #32     @ encoding: [0x51,0xeb,0x23,0x00]
     61 @ CHECK: add.w	r2, sp, r12             @ encoding: [0x0d,0xeb,0x0c,0x02]
     62 
     63 
     64 @------------------------------------------------------------------------------
     65 @ ADD (immediate)
     66 @------------------------------------------------------------------------------
     67         itet eq
     68         addeq r1, r2, #4
     69         addwne r5, r3, #1023
     70         addeq r4, r5, #293
     71         add r2, sp, #1024
     72         add r2, r8, #0xff00
     73         add r2, r3, #257
     74         addw r2, r3, #257
     75         add r12, r6, #0x100
     76         addw r12, r6, #0x100
     77         adds r1, r2, #0x1f0
     78 	add r2, #1
     79         add r0, r0, #32
     80         adds r2, r2, #56
     81         adds r2, #56
     82 
     83         adds.w r2, #-16
     84         adds.w r2, r2, #-16
     85         addw r2, #-16
     86         addw r2, #-16
     87         addw r2, r2, #-16
     88 
     89 @ CHECK: itet	eq                      @ encoding: [0x0a,0xbf]
     90 @ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
     91 @ CHECK: addwne	r5, r3, #1023           @ encoding: [0x03,0xf2,0xff,0x35]
     92 @ CHECK: addweq	r4, r5, #293            @ encoding: [0x05,0xf2,0x25,0x14]
     93 @ CHECK: add.w	r2, sp, #1024           @ encoding: [0x0d,0xf5,0x80,0x62]
     94 @ CHECK: add.w	r2, r8, #65280          @ encoding: [0x08,0xf5,0x7f,0x42]
     95 @ CHECK: addw	r2, r3, #257            @ encoding: [0x03,0xf2,0x01,0x12]
     96 @ CHECK: addw	r2, r3, #257            @ encoding: [0x03,0xf2,0x01,0x12]
     97 @ CHECK: add.w	r12, r6, #256           @ encoding: [0x06,0xf5,0x80,0x7c]
     98 @ CHECK: addw	r12, r6, #256           @ encoding: [0x06,0xf2,0x00,0x1c]
     99 @ CHECK: adds.w	r1, r2, #496            @ encoding: [0x12,0xf5,0xf8,0x71]
    100 @ CHECK: add.w	r2, r2, #1              @ encoding: [0x02,0xf1,0x01,0x02]
    101 @ CHECK: add.w	r0, r0, #32             @ encoding: [0x00,0xf1,0x20,0x00]
    102 @ CHECK: adds	r2, #56                 @ encoding: [0x38,0x32]
    103 @ CHECK: adds	r2, #56                 @ encoding: [0x38,0x32]
    104 
    105 @ CHECK: subs.w	r2, r2, #16             @ encoding: [0xb2,0xf1,0x10,0x02]
    106 @ CHECK: subs.w	r2, r2, #16             @ encoding: [0xb2,0xf1,0x10,0x02]
    107 @ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
    108 @ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
    109 @ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
    110 
    111 
    112 @------------------------------------------------------------------------------
    113 @ ADD (register)
    114 @------------------------------------------------------------------------------
    115         add r1, r2, r8
    116         add r5, r9, r2, asr #32
    117         adds r7, r3, r1, lsl #31
    118         adds.w r0, r3, r6, lsr #25
    119         add.w r4, r8, r1, ror #12
    120         add r10, r8
    121         add r10, r10, r8
    122 
    123 @ CHECK: add.w	r1, r2, r8              @ encoding: [0x02,0xeb,0x08,0x01]
    124 @ CHECK: add.w	r5, r9, r2, asr #32     @ encoding: [0x09,0xeb,0x22,0x05]
    125 @ CHECK: adds.w	r7, r3, r1, lsl #31     @ encoding: [0x13,0xeb,0xc1,0x77]
    126 @ CHECK: adds.w	r0, r3, r6, lsr #25     @ encoding: [0x13,0xeb,0x56,0x60]
    127 @ CHECK: add.w	r4, r8, r1, ror #12     @ encoding: [0x08,0xeb,0x31,0x34]
    128 @ CHECK: add	r10, r8                 @ encoding: [0xc2,0x44]
    129 @ CHECK: add	r10, r8                 @ encoding: [0xc2,0x44]
    130 
    131 
    132 @------------------------------------------------------------------------------
    133 @ FIXME: ADR
    134 @------------------------------------------------------------------------------
    135 
    136         subw r11, pc, #3270
    137         adr.w r11, #-826
    138         adr.w r1, #-0x0
    139 
    140 @ CHECK: subw	r11, pc, #3270          @ encoding: [0xaf,0xf6,0xc6,0x4b]
    141 @ CHECK: adr.w	r11, #-826              @ encoding: [0xaf,0xf2,0x3a,0x3b]
    142 @ CHECK: adr.w	r1, #-0                 @ encoding: [0xaf,0xf2,0x00,0x01]
    143 
    144 @------------------------------------------------------------------------------
    145 @ AND (immediate)
    146 @------------------------------------------------------------------------------
    147         and r2, r5, #0xff000
    148         ands r3, r12, #0xf
    149         and r1, #0xff
    150         and r1, r1, #0xff
    151 
    152 @ CHECK: and	r2, r5, #1044480        @ encoding: [0x05,0xf4,0x7f,0x22]
    153 @ CHECK: ands	r3, r12, #15            @ encoding: [0x1c,0xf0,0x0f,0x03]
    154 @ CHECK: and	r1, r1, #255            @ encoding: [0x01,0xf0,0xff,0x01]
    155 @ CHECK: and	r1, r1, #255            @ encoding: [0x01,0xf0,0xff,0x01]
    156 
    157 
    158 @------------------------------------------------------------------------------
    159 @ AND (register)
    160 @------------------------------------------------------------------------------
    161         and r4, r9, r8
    162         and r1, r4, r8, asr #3
    163         ands r2, r1, r7, lsl #1
    164         ands.w r4, r5, r2, lsr #20
    165         and.w r9, r12, r1, ror #17
    166 
    167 @ CHECK: and.w	r4, r9, r8              @ encoding: [0x09,0xea,0x08,0x04]
    168 @ CHECK: and.w	r1, r4, r8, asr #3      @ encoding: [0x04,0xea,0xe8,0x01]
    169 @ CHECK: ands.w	r2, r1, r7, lsl #1      @ encoding: [0x11,0xea,0x47,0x02]
    170 @ CHECK: ands.w	r4, r5, r2, lsr #20     @ encoding: [0x15,0xea,0x12,0x54]
    171 @ CHECK: and.w	r9, r12, r1, ror #17    @ encoding: [0x0c,0xea,0x71,0x49]
    172 
    173 @------------------------------------------------------------------------------
    174 @ ASR (immediate)
    175 @------------------------------------------------------------------------------
    176         asr r2, r3, #12
    177         asrs r8, r3, #32
    178         asrs.w r2, r3, #1
    179         asr r2, r3, #4
    180         asrs r2, r12, #15
    181 
    182         asr r3, #19
    183         asrs r8, #2
    184         asrs.w r7, #5
    185         asr.w r12, #21
    186 
    187 @ CHECK: asr.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x23,0x32]
    188 @ CHECK: asrs.w	r8, r3, #32             @ encoding: [0x5f,0xea,0x23,0x08]
    189 @ CHECK: asrs.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x63,0x02]
    190 @ CHECK: asr.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x23,0x12]
    191 @ CHECK: asrs.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xec,0x32]
    192 
    193 @ CHECK: asr.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xe3,0x43]
    194 @ CHECK: asrs.w	r8, r8, #2              @ encoding: [0x5f,0xea,0xa8,0x08]
    195 @ CHECK: asrs.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x67,0x17]
    196 @ CHECK: asr.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x6c,0x5c]
    197 
    198 
    199 @------------------------------------------------------------------------------
    200 @ ASR (register)
    201 @------------------------------------------------------------------------------
    202         asr r3, r4, r2
    203         asr.w r1, r2
    204         asrs r3, r4, r8
    205 
    206 @ CHECK: asr.w	r3, r4, r2              @ encoding: [0x44,0xfa,0x02,0xf3]
    207 @ CHECK: asr.w	r1, r1, r2              @ encoding: [0x41,0xfa,0x02,0xf1]
    208 @ CHECK: asrs.w	r3, r4, r8              @ encoding: [0x54,0xfa,0x08,0xf3]
    209 
    210 
    211 @------------------------------------------------------------------------------
    212 @ B
    213 @------------------------------------------------------------------------------
    214         b.w   _bar
    215         beq.w   _bar
    216         it eq
    217         beq.w _bar
    218         bmi.w   #-183396
    219 
    220 @ CHECK: b.w	_bar                    @ encoding: [A,0xf0'A',A,0x90'A']
    221           @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
    222 @ CHECK: beq.w	_bar                    @ encoding: [A,0xf0'A',A,0x80'A']
    223           @   fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
    224 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
    225 @ CHECK: beq.w	_bar                    @ encoding: [A,0xf0'A',A,0x90'A']
    226           @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
    227 @ CHECK: bmi.w   #-183396                @ encoding: [0x13,0xf5,0xce,0xa9]
    228 
    229 
    230 @------------------------------------------------------------------------------
    231 @ BFC
    232 @------------------------------------------------------------------------------
    233         bfc r5, #3, #17
    234         it lo
    235         bfccc r5, #3, #17
    236 
    237 @ CHECK: bfc	r5, #3, #17             @ encoding: [0x6f,0xf3,0xd3,0x05]
    238 @ CHECK: it	lo                      @ encoding: [0x38,0xbf]
    239 @ CHECK: bfclo	r5, #3, #17             @ encoding: [0x6f,0xf3,0xd3,0x05]
    240 
    241 
    242 @------------------------------------------------------------------------------
    243 @ BFI
    244 @------------------------------------------------------------------------------
    245         bfi r5, r2, #3, #17
    246         it ne
    247         bfine r5, r2, #3, #17
    248 
    249 @ CHECK: bfi	r5, r2, #3, #17         @ encoding: [0x62,0xf3,0xd3,0x05]
    250 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
    251 @ CHECK: bfine	r5, r2, #3, #17         @ encoding: [0x62,0xf3,0xd3,0x05]
    252 
    253 
    254 @------------------------------------------------------------------------------
    255 @ BIC
    256 @------------------------------------------------------------------------------
    257         bic r10, r1, #0xf
    258         bic r12, r3, r6
    259         bic r11, r2, r6, lsl #12
    260         bic r8, r4, r1, lsr #11
    261         bic r7, r5, r7, lsr #15
    262         bic r6, r7, r9, asr #32
    263         bic r5, r6, r8, ror #1
    264 
    265         @ destination register is optional
    266         bic r1, #0xf
    267         bic r1, r1
    268         bic r4, r2, lsl #31
    269         bic r6, r3, lsr #12
    270         bic r7, r4, lsr #7
    271         bic r8, r5, asr #15
    272         bic r12, r6, ror #29
    273 
    274 @ CHECK: bic	r10, r1, #15            @ encoding: [0x21,0xf0,0x0f,0x0a]
    275 @ CHECK: bic.w	r12, r3, r6             @ encoding: [0x23,0xea,0x06,0x0c]
    276 @ CHECK: bic.w	r11, r2, r6, lsl #12    @ encoding: [0x22,0xea,0x06,0x3b]
    277 @ CHECK: bic.w	r8, r4, r1, lsr #11     @ encoding: [0x24,0xea,0xd1,0x28]
    278 @ CHECK: bic.w	r7, r5, r7, lsr #15     @ encoding: [0x25,0xea,0xd7,0x37]
    279 @ CHECK: bic.w	r6, r7, r9, asr #32     @ encoding: [0x27,0xea,0x29,0x06]
    280 @ CHECK: bic.w	r5, r6, r8, ror #1      @ encoding: [0x26,0xea,0x78,0x05]
    281 
    282 @ CHECK: bic	r1, r1, #15             @ encoding: [0x21,0xf0,0x0f,0x01]
    283 @ CHECK: bic.w	r1, r1, r1              @ encoding: [0x21,0xea,0x01,0x01]
    284 @ CHECK: bic.w	r4, r4, r2, lsl #31     @ encoding: [0x24,0xea,0xc2,0x74]
    285 @ CHECK: bic.w	r6, r6, r3, lsr #12     @ encoding: [0x26,0xea,0x13,0x36]
    286 @ CHECK: bic.w	r7, r7, r4, lsr #7      @ encoding: [0x27,0xea,0xd4,0x17]
    287 @ CHECK: bic.w	r8, r8, r5, asr #15     @ encoding: [0x28,0xea,0xe5,0x38]
    288 @ CHECK: bic.w	r12, r12, r6, ror #29   @ encoding: [0x2c,0xea,0x76,0x7c]
    289 
    290 @------------------------------------------------------------------------------
    291 @ BKPT
    292 @------------------------------------------------------------------------------
    293         it pl
    294         bkpt #234
    295 
    296 @ CHECK: it pl                      @ encoding: [0x58,0xbf]
    297 @ CHECK: bkpt #234                    @ encoding: [0xea,0xbe]
    298 
    299 @------------------------------------------------------------------------------
    300 @ BXJ
    301 @------------------------------------------------------------------------------
    302         bxj r5
    303         it ne
    304         bxjne r7
    305 
    306 @ CHECK: bxj	r5                      @ encoding: [0xc5,0xf3,0x00,0x8f]
    307 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
    308 @ CHECK: bxjne	r7                      @ encoding: [0xc7,0xf3,0x00,0x8f]
    309 
    310 
    311 @------------------------------------------------------------------------------
    312 @ CBZ/CBNZ
    313 @------------------------------------------------------------------------------
    314         cbnz    r7, #6
    315         cbnz    r7, #12
    316         cbz   r6, _bar
    317         cbnz   r6, _bar
    318 
    319 @ CHECK: cbnz    r7, #6                  @ encoding: [0x1f,0xb9]
    320 @ CHECK: cbnz    r7, #12                 @ encoding: [0x37,0xb9]
    321 @ CHECK: cbz	r6, _bar                @ encoding: [0x06'A',0xb1'A']
    322            @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
    323 @ CHECK: cbnz	r6, _bar                @ encoding: [0x06'A',0xb9'A']
    324            @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
    325 
    326 
    327 @------------------------------------------------------------------------------
    328 @ CDP/CDP2
    329 @------------------------------------------------------------------------------
    330   cdp  p7, #1, c1, c1, c1, #4
    331   cdp2  p7, #1, c1, c1, c1, #4
    332 
    333 @ CHECK: cdp	p7, #1, c1, c1, c1, #4  @ encoding: [0x11,0xee,0x81,0x17]
    334 @ CHECK: cdp2	p7, #1, c1, c1, c1, #4  @ encoding: [0x11,0xfe,0x81,0x17]
    335 
    336 
    337 @------------------------------------------------------------------------------
    338 @ CLREX
    339 @------------------------------------------------------------------------------
    340         clrex
    341         it ne
    342         clrexne
    343 
    344 @ CHECK: clrex                           @ encoding: [0xbf,0xf3,0x2f,0x8f]
    345 @ CHECK: it	ne                       @ encoding: [0x18,0xbf]
    346 @ CHECK: clrexne                         @ encoding: [0xbf,0xf3,0x2f,0x8f]
    347 
    348 
    349 @------------------------------------------------------------------------------
    350 @ CLZ
    351 @------------------------------------------------------------------------------
    352         clz r1, r2
    353         it eq
    354         clzeq r1, r2
    355 
    356 @ CHECK: clz	r1, r2                  @ encoding: [0xb2,0xfa,0x82,0xf1]
    357 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
    358 @ CHECK: clzeq	r1, r2                  @ encoding: [0xb2,0xfa,0x82,0xf1]
    359 
    360 
    361 @------------------------------------------------------------------------------
    362 @ CMN
    363 @------------------------------------------------------------------------------
    364         cmn r1, #0xf
    365         cmn r8, r6
    366         cmn r1, r6, lsl #10
    367         cmn r1, r6, lsr #10
    368         cmn sp, r6, lsr #10
    369         cmn r1, r6, asr #10
    370         cmn r1, r6, ror #10
    371 
    372 @ CHECK: cmn.w	r1, #15                 @ encoding: [0x11,0xf1,0x0f,0x0f]
    373 @ CHECK: cmn.w	r8, r6                  @ encoding: [0x18,0xeb,0x06,0x0f]
    374 @ CHECK: cmn.w	r1, r6, lsl #10         @ encoding: [0x11,0xeb,0x86,0x2f]
    375 @ CHECK: cmn.w	r1, r6, lsr #10         @ encoding: [0x11,0xeb,0x96,0x2f]
    376 @ CHECK: cmn.w	sp, r6, lsr #10         @ encoding: [0x1d,0xeb,0x96,0x2f]
    377 @ CHECK: cmn.w	r1, r6, asr #10         @ encoding: [0x11,0xeb,0xa6,0x2f]
    378 @ CHECK: cmn.w	r1, r6, ror #10         @ encoding: [0x11,0xeb,0xb6,0x2f]
    379 
    380 
    381 @------------------------------------------------------------------------------
    382 @ CMP
    383 @------------------------------------------------------------------------------
    384         cmp r5, #0xff00
    385         cmp.w r4, r12
    386         cmp r9, r6, lsl #12
    387         cmp r3, r7, lsr #31
    388         cmp sp, r6, lsr #1
    389         cmp r2, r5, asr #24
    390         cmp r1, r4, ror #15
    391         cmp r2, #-2
    392         cmp r9, #1
    393 
    394 @ CHECK: cmp.w	r5, #65280              @ encoding: [0xb5,0xf5,0x7f,0x4f]
    395 @ CHECK: cmp.w	r4, r12                 @ encoding: [0xb4,0xeb,0x0c,0x0f]
    396 @ CHECK: cmp.w	r9, r6, lsl #12         @ encoding: [0xb9,0xeb,0x06,0x3f]
    397 @ CHECK: cmp.w	r3, r7, lsr #31         @ encoding: [0xb3,0xeb,0xd7,0x7f]
    398 @ CHECK: cmp.w	sp, r6, lsr #1          @ encoding: [0xbd,0xeb,0x56,0x0f]
    399 @ CHECK: cmp.w	r2, r5, asr #24         @ encoding: [0xb2,0xeb,0x25,0x6f]
    400 @ CHECK: cmp.w	r1, r4, ror #15         @ encoding: [0xb1,0xeb,0xf4,0x3f]
    401 @ CHECK: cmn.w	r2, #2                  @ encoding: [0x12,0xf1,0x02,0x0f]
    402 @ CHECK: cmp.w	r9, #1                  @ encoding: [0xb9,0xf1,0x01,0x0f]
    403 
    404 
    405 @------------------------------------------------------------------------------
    406 @ DBG
    407 @------------------------------------------------------------------------------
    408         dbg #5
    409         dbg #0
    410         dbg #15
    411 
    412 @ CHECK: dbg	#5                      @ encoding: [0xaf,0xf3,0xf5,0x80]
    413 @ CHECK: dbg	#0                      @ encoding: [0xaf,0xf3,0xf0,0x80]
    414 @ CHECK: dbg	#15                     @ encoding: [0xaf,0xf3,0xff,0x80]
    415 
    416 
    417 @------------------------------------------------------------------------------
    418 @ DMB
    419 @------------------------------------------------------------------------------
    420         dmb #0xf
    421         dmb #0xe
    422         dmb #0xd
    423         dmb #0xc
    424         dmb #0xb
    425         dmb #0xa
    426         dmb #0x9
    427         dmb #0x8
    428         dmb #0x7
    429         dmb #0x6
    430         dmb #0x5
    431         dmb #0x4
    432         dmb #0x3
    433         dmb #0x2
    434         dmb #0x1
    435         dmb #0x0
    436 
    437         dmb sy
    438         dmb st
    439         dmb sh
    440         dmb ish
    441         dmb shst
    442         dmb ishst
    443         dmb un
    444         dmb nsh
    445         dmb unst
    446         dmb nshst
    447         dmb osh
    448         dmb oshst
    449         dmb
    450 
    451 @ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
    452 @ CHECK: dmb	st                      @ encoding: [0xbf,0xf3,0x5e,0x8f]
    453 @ CHECK: dmb	#0xd                    @ encoding: [0xbf,0xf3,0x5d,0x8f]
    454 @ CHECK: dmb	#0xc                    @ encoding: [0xbf,0xf3,0x5c,0x8f]
    455 @ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
    456 @ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
    457 @ CHECK: dmb	#0x9                    @ encoding: [0xbf,0xf3,0x59,0x8f]
    458 @ CHECK: dmb	#0x8                    @ encoding: [0xbf,0xf3,0x58,0x8f]
    459 @ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
    460 @ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
    461 @ CHECK: dmb	#0x5                    @ encoding: [0xbf,0xf3,0x55,0x8f]
    462 @ CHECK: dmb	#0x4                    @ encoding: [0xbf,0xf3,0x54,0x8f]
    463 @ CHECK: dmb	osh                     @ encoding: [0xbf,0xf3,0x53,0x8f]
    464 @ CHECK: dmb	oshst                   @ encoding: [0xbf,0xf3,0x52,0x8f]
    465 @ CHECK: dmb	#0x1                    @ encoding: [0xbf,0xf3,0x51,0x8f]
    466 @ CHECK: dmb	#0x0                    @ encoding: [0xbf,0xf3,0x50,0x8f]
    467 
    468 @ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
    469 @ CHECK: dmb	st                      @ encoding: [0xbf,0xf3,0x5e,0x8f]
    470 @ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
    471 @ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
    472 @ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
    473 @ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
    474 @ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
    475 @ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
    476 @ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
    477 @ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
    478 @ CHECK: dmb	osh                     @ encoding: [0xbf,0xf3,0x53,0x8f]
    479 @ CHECK: dmb	oshst                   @ encoding: [0xbf,0xf3,0x52,0x8f]
    480 @ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
    481 
    482 
    483 @------------------------------------------------------------------------------
    484 @ DSB
    485 @------------------------------------------------------------------------------
    486         dsb #0xf
    487         dsb #0xe
    488         dsb #0xd
    489         dsb #0xc
    490         dsb #0xb
    491         dsb #0xa
    492         dsb #0x9
    493         dsb #0x8
    494         dsb #0x7
    495         dsb #0x6
    496         dsb #0x5
    497         dsb #0x4
    498         dsb #0x3
    499         dsb #0x2
    500         dsb #0x1
    501         dsb #0x0
    502 
    503         dsb sy
    504         dsb st
    505         dsb sh
    506         dsb ish
    507         dsb shst
    508         dsb ishst
    509         dsb un
    510         dsb nsh
    511         dsb unst
    512         dsb nshst
    513         dsb osh
    514         dsb oshst
    515         dsb
    516 
    517 @ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
    518 @ CHECK: dsb	st                      @ encoding: [0xbf,0xf3,0x4e,0x8f]
    519 @ CHECK: dsb	#0xd                    @ encoding: [0xbf,0xf3,0x4d,0x8f]
    520 @ CHECK: dsb	#0xc                    @ encoding: [0xbf,0xf3,0x4c,0x8f]
    521 @ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
    522 @ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
    523 @ CHECK: dsb	#0x9                    @ encoding: [0xbf,0xf3,0x49,0x8f]
    524 @ CHECK: dsb	#0x8                    @ encoding: [0xbf,0xf3,0x48,0x8f]
    525 @ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
    526 @ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
    527 @ CHECK: dsb	#0x5                    @ encoding: [0xbf,0xf3,0x45,0x8f]
    528 @ CHECK: dsb	#0x4                    @ encoding: [0xbf,0xf3,0x44,0x8f]
    529 @ CHECK: dsb	osh                     @ encoding: [0xbf,0xf3,0x43,0x8f]
    530 @ CHECK: dsb	oshst                   @ encoding: [0xbf,0xf3,0x42,0x8f]
    531 @ CHECK: dsb	#0x1                    @ encoding: [0xbf,0xf3,0x41,0x8f]
    532 @ CHECK: dsb	#0x0                    @ encoding: [0xbf,0xf3,0x40,0x8f]
    533 
    534 @ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
    535 @ CHECK: dsb	st                      @ encoding: [0xbf,0xf3,0x4e,0x8f]
    536 @ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
    537 @ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
    538 @ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
    539 @ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
    540 @ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
    541 @ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
    542 @ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
    543 @ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
    544 @ CHECK: dsb	osh                     @ encoding: [0xbf,0xf3,0x43,0x8f]
    545 @ CHECK: dsb	oshst                   @ encoding: [0xbf,0xf3,0x42,0x8f]
    546 @ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
    547 
    548 
    549 @------------------------------------------------------------------------------
    550 @ EOR
    551 @------------------------------------------------------------------------------
    552         eor r4, r5, #0xf000
    553         eor r4, r5, r6
    554         eor r4, r5, r6, lsl #5
    555         eor r4, r5, r6, lsr #5
    556         eor r4, r5, r6, lsr #5
    557         eor r4, r5, r6, asr #5
    558         eor r4, r5, r6, ror #5
    559 
    560 @ CHECK: eor	r4, r5, #61440          @ encoding: [0x85,0xf4,0x70,0x44]
    561 @ CHECK: eor.w	r4, r5, r6              @ encoding: [0x85,0xea,0x06,0x04]
    562 @ CHECK: eor.w	r4, r5, r6, lsl #5      @ encoding: [0x85,0xea,0x46,0x14]
    563 @ CHECK: eor.w	r4, r5, r6, lsr #5      @ encoding: [0x85,0xea,0x56,0x14]
    564 @ CHECK: eor.w	r4, r5, r6, lsr #5      @ encoding: [0x85,0xea,0x56,0x14]
    565 @ CHECK: eor.w	r4, r5, r6, asr #5      @ encoding: [0x85,0xea,0x66,0x14]
    566 @ CHECK: eor.w	r4, r5, r6, ror #5      @ encoding: [0x85,0xea,0x76,0x14]
    567 
    568 
    569 @------------------------------------------------------------------------------
    570 @ ISB
    571 @------------------------------------------------------------------------------
    572         isb sy
    573         isb
    574 
    575 @ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
    576 @ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
    577 
    578 
    579 @------------------------------------------------------------------------------
    580 @ IT
    581 @------------------------------------------------------------------------------
    582 @ Test encodings of a few full IT blocks, not just the IT instruction
    583 
    584         iteet eq
    585         addeq r0, r1, r2
    586         nopne
    587         subne r5, r6, r7
    588         addeq r1, r2, #4
    589 
    590 @ CHECK: iteet	eq                      @ encoding: [0x0d,0xbf]
    591 @ CHECK: addeq	r0, r1, r2              @ encoding: [0x88,0x18]
    592 @ CHECK: nopne                          @ encoding: [0x00,0xbf]
    593 @ CHECK: subne	r5, r6, r7              @ encoding: [0xf5,0x1b]
    594 @ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
    595 
    596 @ Should also work for UPPER CASE condition codes.
    597 
    598         ITEET EQ
    599         ADDEQ R0, R1, R2
    600         NOPNE
    601         SUBNE R5, R6, R7
    602         ADDEQ R1, R2, #4
    603 
    604 @ CHECK: iteet	eq                      @ encoding: [0x0d,0xbf]
    605 @ CHECK: addeq	r0, r1, r2              @ encoding: [0x88,0x18]
    606 @ CHECK: nopne                          @ encoding: [0x00,0xbf]
    607 @ CHECK: subne	r5, r6, r7              @ encoding: [0xf5,0x1b]
    608 @ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
    609 
    610 @------------------------------------------------------------------------------
    611 @ LDC{L}/LDC2{L}
    612 @------------------------------------------------------------------------------
    613         ldc2 p0, c8, [r1, #4]
    614         ldc2 p1, c7, [r2]
    615         ldc2 p2, c6, [r3, #-224]
    616         ldc2 p3, c5, [r4, #-120]!
    617         ldc2 p4, c4, [r5], #16
    618         ldc2 p5, c3, [r6], #-72
    619         ldc2l p6, c2, [r7, #4]
    620         ldc2l p7, c1, [r8]
    621         ldc2l p8, c0, [r9, #-224]
    622         ldc2l p9, c1, [r10, #-120]!
    623         ldc2l p10, c2, [r11], #16
    624         ldc2l p11, c3, [r12], #-72
    625 
    626         ldc p12, c4, [r0, #4]
    627         ldc p13, c5, [r1]
    628         ldc p14, c6, [r2, #-224]
    629         ldc p15, c7, [r3, #-120]!
    630         ldc p5, c8, [r4], #16
    631         ldc p4, c9, [r5], #-72
    632         ldcl p3, c10, [r6, #4]
    633         ldcl p2, c11, [r7]
    634         ldcl p1, c12, [r8, #-224]
    635         ldcl p0, c13, [r9, #-120]!
    636         ldcl p6, c14, [r10], #16
    637         ldcl p7, c15, [r11], #-72
    638 
    639         ldc2 p2, c8, [r1], { 25 }
    640 
    641 @ CHECK: ldc2	p0, c8, [r1, #4]        @ encoding: [0x91,0xfd,0x01,0x80]
    642 @ CHECK: ldc2	p1, c7, [r2]            @ encoding: [0x92,0xfd,0x00,0x71]
    643 @ CHECK: ldc2	p2, c6, [r3, #-224]     @ encoding: [0x13,0xfd,0x38,0x62]
    644 @ CHECK: ldc2	p3, c5, [r4, #-120]!    @ encoding: [0x34,0xfd,0x1e,0x53]
    645 @ CHECK: ldc2	p4, c4, [r5], #16       @ encoding: [0xb5,0xfc,0x04,0x44]
    646 @ CHECK: ldc2	p5, c3, [r6], #-72      @ encoding: [0x36,0xfc,0x12,0x35]
    647 @ CHECK: ldc2l	p6, c2, [r7, #4]        @ encoding: [0xd7,0xfd,0x01,0x26]
    648 @ CHECK: ldc2l	p7, c1, [r8]            @ encoding: [0xd8,0xfd,0x00,0x17]
    649 @ CHECK: ldc2l	p8, c0, [r9, #-224]     @ encoding: [0x59,0xfd,0x38,0x08]
    650 @ CHECK: ldc2l	p9, c1, [r10, #-120]!   @ encoding: [0x7a,0xfd,0x1e,0x19]
    651 @ CHECK: ldc2l	p10, c2, [r11], #16     @ encoding: [0xfb,0xfc,0x04,0x2a]
    652 @ CHECK: ldc2l	p11, c3, [r12], #-72    @ encoding: [0x7c,0xfc,0x12,0x3b]
    653 
    654 @ CHECK: ldc	p12, c4, [r0, #4]       @ encoding: [0x90,0xed,0x01,0x4c]
    655 @ CHECK: ldc	p13, c5, [r1]           @ encoding: [0x91,0xed,0x00,0x5d]
    656 @ CHECK: ldc	p14, c6, [r2, #-224]    @ encoding: [0x12,0xed,0x38,0x6e]
    657 @ CHECK: ldc	p15, c7, [r3, #-120]!   @ encoding: [0x33,0xed,0x1e,0x7f]
    658 @ CHECK: ldc	p5, c8, [r4], #16       @ encoding: [0xb4,0xec,0x04,0x85]
    659 @ CHECK: ldc	p4, c9, [r5], #-72      @ encoding: [0x35,0xec,0x12,0x94]
    660 @ CHECK: ldcl	p3, c10, [r6, #4]       @ encoding: [0xd6,0xed,0x01,0xa3]
    661 @ CHECK: ldcl	p2, c11, [r7]           @ encoding: [0xd7,0xed,0x00,0xb2]
    662 @ CHECK: ldcl	p1, c12, [r8, #-224]    @ encoding: [0x58,0xed,0x38,0xc1]
    663 @ CHECK: ldcl	p0, c13, [r9, #-120]!   @ encoding: [0x79,0xed,0x1e,0xd0]
    664 @ CHECK: ldcl	p6, c14, [r10], #16     @ encoding: [0xfa,0xec,0x04,0xe6]
    665 @ CHECK: ldcl	p7, c15, [r11], #-72    @ encoding: [0x7b,0xec,0x12,0xf7]
    666 
    667 @ CHECK: ldc2	p2, c8, [r1], {25}      @ encoding: [0x91,0xfc,0x19,0x82]
    668 
    669 
    670 @------------------------------------------------------------------------------
    671 @ LDMIA
    672 @------------------------------------------------------------------------------
    673         ldmia.w r4, {r4, r5, r8, r9}
    674         ldmia.w r4, {r5, r6}
    675         ldmia.w r5!, {r3, r8}
    676         ldm.w r4, {r4, r5, r8, r9}
    677         ldm.w r4, {r5, r6}
    678         ldm.w r5!, {r3, r8}
    679         ldm.w r5!, {r1, r2}
    680         ldm.w r2, {r1, r2}
    681 
    682         ldmia r4, {r4, r5, r8, r9}
    683         ldmia r4, {r5, r6}
    684         ldmia r5!, {r3, r8}
    685         ldm r4, {r4, r5, r8, r9}
    686         ldm r4, {r5, r6}
    687         ldm r5!, {r3, r8}
    688         ldmfd r5!, {r3, r8}
    689         ldmia sp!, {r4-r11, pc}
    690 
    691 @ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
    692 @ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
    693 @ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
    694 @ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
    695 @ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
    696 @ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
    697 @ CHECK: ldm.w	r5!, {r1, r2}           @ encoding: [0xb5,0xe8,0x06,0x00]
    698 @ CHECK: ldm.w	r2, {r1, r2}            @ encoding: [0x92,0xe8,0x06,0x00]
    699 
    700 @ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
    701 @ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
    702 @ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
    703 @ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
    704 @ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
    705 @ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
    706 @ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
    707 @ CHECK: pop.w	{pc, r4, r5, r6, r7, r8, r9, r10, r11} @ encoding: [0xbd,0xe8,0xf0,0x8f]
    708 
    709 
    710 @------------------------------------------------------------------------------
    711 @ LDMDB
    712 @------------------------------------------------------------------------------
    713         ldmdb r4, {r4, r5, r8, r9}
    714         ldmdb r4, {r5, r6}
    715         ldmdb r5!, {r3, r8}
    716         ldmea r5!, {r3, r8}
    717         ldmdb.w r4, {r5, r6}
    718         ldmdb.w r5!, {r3, r8}
    719 
    720 @ CHECK: ldmdb	r4, {r4, r5, r8, r9}    @ encoding: [0x14,0xe9,0x30,0x03]
    721 @ CHECK: ldmdb	r4, {r5, r6}            @ encoding: [0x14,0xe9,0x60,0x00]
    722 @ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
    723 @ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
    724 @ CHECK: ldmdb	r4, {r5, r6}            @ encoding: [0x14,0xe9,0x60,0x00]
    725 @ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
    726 
    727 
    728 @------------------------------------------------------------------------------
    729 @ LDR(immediate)
    730 @------------------------------------------------------------------------------
    731         ldr r5, [r5, #-4]
    732         ldr r5, [r6, #32]
    733         ldr r5, [r6, #33]
    734         ldr r5, [r6, #257]
    735         ldr.w pc, [r7, #257]
    736         ldr r2, [r4, #255]!
    737         ldr r8, [sp, #4]!
    738         ldr lr, [sp, #-4]!
    739         ldr r2, [r4], #255
    740         ldr r8, [sp], #4
    741         ldr lr, [sp], #-4
    742 
    743 @ CHECK: ldr	r5, [r5, #-4]           @ encoding: [0x55,0xf8,0x04,0x5c]
    744 @ CHECK: ldr	r5, [r6, #32]           @ encoding: [0x35,0x6a]
    745 @ CHECK: ldr.w	r5, [r6, #33]           @ encoding: [0xd6,0xf8,0x21,0x50]
    746 @ CHECK: ldr.w	r5, [r6, #257]          @ encoding: [0xd6,0xf8,0x01,0x51]
    747 @ CHECK: ldr.w	pc, [r7, #257]          @ encoding: [0xd7,0xf8,0x01,0xf1]
    748 @ CHECK: ldr	r2, [r4, #255]!         @ encoding: [0x54,0xf8,0xff,0x2f]
    749 @ CHECK: ldr	r8, [sp, #4]!           @ encoding: [0x5d,0xf8,0x04,0x8f]
    750 @ CHECK: ldr	lr, [sp, #-4]!          @ encoding: [0x5d,0xf8,0x04,0xed]
    751 @ CHECK: ldr	r2, [r4], #255          @ encoding: [0x54,0xf8,0xff,0x2b]
    752 @ CHECK: ldr	r8, [sp], #4            @ encoding: [0x5d,0xf8,0x04,0x8b]
    753 @ CHECK: ldr	lr, [sp], #-4           @ encoding: [0x5d,0xf8,0x04,0xe9]
    754 
    755 
    756 @------------------------------------------------------------------------------
    757 @ LDR(literal)
    758 @------------------------------------------------------------------------------
    759         ldr.w r5, _foo
    760         ldr   lr, (_strcmp-4)
    761 
    762 @ CHECK: ldr.w	r5, _foo                @ encoding: [0x5f'A',0xf8'A',A,0x50'A']
    763 @ CHECK: @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
    764 @ CHECK: ldr.w	lr, _strcmp-4           @ encoding: [0x5f'A',0xf8'A',A,0xe0'A']
    765 @ CHECK: @   fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
    766 
    767 
    768 @------------------------------------------------------------------------------
    769 @ LDR(register)
    770 @------------------------------------------------------------------------------
    771         ldr r1, [r8, r1]
    772         ldr.w r4, [r5, r2]
    773         ldr r6, [r0, r2, lsl #3]
    774         ldr r8, [r8, r2, lsl #2]
    775         ldr r7, [sp, r2, lsl #1]
    776         ldr r7, [sp, r2, lsl #0]
    777 
    778 @ CHECK: ldr.w	r1, [r8, r1]            @ encoding: [0x58,0xf8,0x01,0x10]
    779 @ CHECK: ldr.w	r4, [r5, r2]            @ encoding: [0x55,0xf8,0x02,0x40]
    780 @ CHECK: ldr.w	r6, [r0, r2, lsl #3]    @ encoding: [0x50,0xf8,0x32,0x60]
    781 @ CHECK: ldr.w	r8, [r8, r2, lsl #2]    @ encoding: [0x58,0xf8,0x22,0x80]
    782 @ CHECK: ldr.w	r7, [sp, r2, lsl #1]    @ encoding: [0x5d,0xf8,0x12,0x70]
    783 @ CHECK: ldr.w	r7, [sp, r2]            @ encoding: [0x5d,0xf8,0x02,0x70]
    784 
    785 
    786 @------------------------------------------------------------------------------
    787 @ LDRB(immediate)
    788 @------------------------------------------------------------------------------
    789         ldrb r5, [r5, #-4]
    790         ldrb r5, [r6, #32]
    791         ldrb r5, [r6, #33]
    792         ldrb r5, [r6, #257]
    793         ldrb.w lr, [r7, #257]
    794         ldrb r5, [r8, #255]!
    795         ldrb r2, [r5, #4]!
    796         ldrb r1, [r4, #-4]!
    797         ldrb lr, [r3], #255
    798         ldrb r9, [r2], #4
    799         ldrb r3, [sp], #-4
    800 
    801 @ CHECK: ldrb	r5, [r5, #-4]           @ encoding: [0x15,0xf8,0x04,0x5c]
    802 @ CHECK: ldrb.w	r5, [r6, #32]           @ encoding: [0x96,0xf8,0x20,0x50]
    803 @ CHECK: ldrb.w	r5, [r6, #33]           @ encoding: [0x96,0xf8,0x21,0x50]
    804 @ CHECK: ldrb.w	r5, [r6, #257]          @ encoding: [0x96,0xf8,0x01,0x51]
    805 @ CHECK: ldrb.w	lr, [r7, #257]          @ encoding: [0x97,0xf8,0x01,0xe1]
    806 @ CHECK: ldrb	r5, [r8, #255]!         @ encoding: [0x18,0xf8,0xff,0x5f]
    807 @ CHECK: ldrb	r2, [r5, #4]!           @ encoding: [0x15,0xf8,0x04,0x2f]
    808 @ CHECK: ldrb	r1, [r4, #-4]!          @ encoding: [0x14,0xf8,0x04,0x1d]
    809 @ CHECK: ldrb	lr, [r3], #255          @ encoding: [0x13,0xf8,0xff,0xeb]
    810 @ CHECK: ldrb	r9, [r2], #4            @ encoding: [0x12,0xf8,0x04,0x9b]
    811 @ CHECK: ldrb	r3, [sp], #-4           @ encoding: [0x1d,0xf8,0x04,0x39]
    812 
    813 
    814 @------------------------------------------------------------------------------
    815 @ LDRB(register)
    816 @------------------------------------------------------------------------------
    817         ldrb r1, [r8, r1]
    818         ldrb.w r4, [r5, r2]
    819         ldrb r6, [r0, r2, lsl #3]
    820         ldrb r8, [r8, r2, lsl #2]
    821         ldrb r7, [sp, r2, lsl #1]
    822         ldrb r7, [sp, r2, lsl #0]
    823 
    824 @ CHECK: ldrb.w	r1, [r8, r1]            @ encoding: [0x18,0xf8,0x01,0x10]
    825 @ CHECK: ldrb.w	r4, [r5, r2]            @ encoding: [0x15,0xf8,0x02,0x40]
    826 @ CHECK: ldrb.w	r6, [r0, r2, lsl #3]    @ encoding: [0x10,0xf8,0x32,0x60]
    827 @ CHECK: ldrb.w	r8, [r8, r2, lsl #2]    @ encoding: [0x18,0xf8,0x22,0x80]
    828 @ CHECK: ldrb.w	r7, [sp, r2, lsl #1]    @ encoding: [0x1d,0xf8,0x12,0x70]
    829 @ CHECK: ldrb.w	r7, [sp, r2]            @ encoding: [0x1d,0xf8,0x02,0x70]
    830 
    831 
    832 @------------------------------------------------------------------------------
    833 @ LDRBT
    834 @------------------------------------------------------------------------------
    835         ldrbt r1, [r2]
    836         ldrbt r1, [r8, #0]
    837         ldrbt r1, [r8, #3]
    838         ldrbt r1, [r8, #255]
    839 
    840 @ CHECK: ldrbt	r1, [r2]                @ encoding: [0x12,0xf8,0x00,0x1e]
    841 @ CHECK: ldrbt	r1, [r8]                @ encoding: [0x18,0xf8,0x00,0x1e]
    842 @ CHECK: ldrbt	r1, [r8, #3]            @ encoding: [0x18,0xf8,0x03,0x1e]
    843 @ CHECK: ldrbt	r1, [r8, #255]          @ encoding: [0x18,0xf8,0xff,0x1e]
    844 
    845 
    846 @------------------------------------------------------------------------------
    847 @ LDRD
    848 @------------------------------------------------------------------------------
    849         ldrd r3, r5, [r6, #24]
    850         ldrd r3, r5, [r6, #24]!
    851         ldrd r3, r5, [r6], #4
    852         ldrd r3, r5, [r6], #-8
    853         ldrd r3, r5, [r6]
    854         ldrd r8, r1, [r3, #0]
    855         ldrd r0, r1, [r2, #-0]
    856         ldrd r0, r1, [r2, #-0]!
    857         ldrd r0, r1, [r2], #-0
    858 
    859 @ CHECK: ldrd	r3, r5, [r6, #24]       @ encoding: [0xd6,0xe9,0x06,0x35]
    860 @ CHECK: ldrd	r3, r5, [r6, #24]!      @ encoding: [0xf6,0xe9,0x06,0x35]
    861 @ CHECK: ldrd	r3, r5, [r6], #4        @ encoding: [0xf6,0xe8,0x01,0x35]
    862 @ CHECK: ldrd	r3, r5, [r6], #-8       @ encoding: [0x76,0xe8,0x02,0x35]
    863 @ CHECK: ldrd	r3, r5, [r6]            @ encoding: [0xd6,0xe9,0x00,0x35]
    864 @ CHECK: ldrd	r8, r1, [r3]            @ encoding: [0xd3,0xe9,0x00,0x81]
    865 @ CHECK: ldrd	r0, r1, [r2, #-0]       @ encoding: [0x52,0xe9,0x00,0x01]
    866 @ CHECK: ldrd	r0, r1, [r2, #-0]!      @ encoding: [0x72,0xe9,0x00,0x01]
    867 @ CHECK: ldrd	r0, r1, [r2], #-0       @ encoding: [0x72,0xe8,0x00,0x01]
    868 
    869 
    870 @------------------------------------------------------------------------------
    871 @ FIXME: LDRD(literal)
    872 @------------------------------------------------------------------------------
    873 
    874 
    875 @------------------------------------------------------------------------------
    876 @ LDREX/LDREXB/LDREXH/LDREXD
    877 @------------------------------------------------------------------------------
    878         ldrex r1, [r4]
    879         ldrex r8, [r4, #0]
    880         ldrex r2, [sp, #128]
    881         ldrexb r5, [r7]
    882         ldrexh r9, [r12]
    883         ldrexd r9, r3, [r4]
    884 
    885 @ CHECK: ldrex	r1, [r4]                @ encoding: [0x54,0xe8,0x00,0x1f]
    886 @ CHECK: ldrex	r8, [r4]                @ encoding: [0x54,0xe8,0x00,0x8f]
    887 @ CHECK: ldrex	r2, [sp, #128]          @ encoding: [0x5d,0xe8,0x20,0x2f]
    888 @ CHECK: ldrexb	r5, [r7]                @ encoding: [0xd7,0xe8,0x4f,0x5f]
    889 @ CHECK: ldrexh	r9, [r12]               @ encoding: [0xdc,0xe8,0x5f,0x9f]
    890 @ CHECK: ldrexd	r9, r3, [r4]            @ encoding: [0xd4,0xe8,0x7f,0x93]
    891 
    892 
    893 @------------------------------------------------------------------------------
    894 @ LDRH(immediate)
    895 @------------------------------------------------------------------------------
    896         ldrh r5, [r5, #-4]
    897         ldrh r5, [r6, #32]
    898         ldrh r5, [r6, #33]
    899         ldrh r5, [r6, #257]
    900         ldrh.w lr, [r7, #257]
    901         ldrh r5, [r8, #255]!
    902         ldrh r2, [r5, #4]!
    903         ldrh r1, [r4, #-4]!
    904         ldrh lr, [r3], #255
    905         ldrh r9, [r2], #4
    906         ldrh r3, [sp], #-4
    907 
    908 @ CHECK: ldrh	r5, [r5, #-4]           @ encoding: [0x35,0xf8,0x04,0x5c]
    909 @ CHECK: ldrh	r5, [r6, #32]           @ encoding: [0x35,0x8c]
    910 @ CHECK: ldrh.w	r5, [r6, #33]           @ encoding: [0xb6,0xf8,0x21,0x50]
    911 @ CHECK: ldrh.w	r5, [r6, #257]          @ encoding: [0xb6,0xf8,0x01,0x51]
    912 @ CHECK: ldrh.w	lr, [r7, #257]          @ encoding: [0xb7,0xf8,0x01,0xe1]
    913 @ CHECK: ldrh	r5, [r8, #255]!         @ encoding: [0x38,0xf8,0xff,0x5f]
    914 @ CHECK: ldrh	r2, [r5, #4]!           @ encoding: [0x35,0xf8,0x04,0x2f]
    915 @ CHECK: ldrh	r1, [r4, #-4]!          @ encoding: [0x34,0xf8,0x04,0x1d]
    916 @ CHECK: ldrh	lr, [r3], #255          @ encoding: [0x33,0xf8,0xff,0xeb]
    917 @ CHECK: ldrh	r9, [r2], #4            @ encoding: [0x32,0xf8,0x04,0x9b]
    918 @ CHECK: ldrh	r3, [sp], #-4           @ encoding: [0x3d,0xf8,0x04,0x39]
    919 
    920 
    921 @------------------------------------------------------------------------------
    922 @ LDRH(register)
    923 @------------------------------------------------------------------------------
    924         ldrh r1, [r8, r1]
    925         ldrh.w r4, [r5, r2]
    926         ldrh r6, [r0, r2, lsl #3]
    927         ldrh r8, [r8, r2, lsl #2]
    928         ldrh r7, [sp, r2, lsl #1]
    929         ldrh r7, [sp, r2, lsl #0]
    930 
    931 @ CHECK: ldrh.w	r1, [r8, r1]            @ encoding: [0x38,0xf8,0x01,0x10]
    932 @ CHECK: ldrh.w	r4, [r5, r2]            @ encoding: [0x35,0xf8,0x02,0x40]
    933 @ CHECK: ldrh.w	r6, [r0, r2, lsl #3]    @ encoding: [0x30,0xf8,0x32,0x60]
    934 @ CHECK: ldrh.w	r8, [r8, r2, lsl #2]    @ encoding: [0x38,0xf8,0x22,0x80]
    935 @ CHECK: ldrh.w	r7, [sp, r2, lsl #1]    @ encoding: [0x3d,0xf8,0x12,0x70]
    936 @ CHECK: ldrh.w	r7, [sp, r2]            @ encoding: [0x3d,0xf8,0x02,0x70]
    937 
    938 
    939 @------------------------------------------------------------------------------
    940 @ LDRH(literal)
    941 @------------------------------------------------------------------------------
    942         ldrh r5, _bar
    943 
    944 @ CHECK: ldrh.w	r5, _bar                @ encoding: [0x3f'A',0xf8'A',A,0x50'A']
    945 @ CHECK:     @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
    946 
    947 
    948 @------------------------------------------------------------------------------
    949 @ LDRHT
    950 @------------------------------------------------------------------------------
    951         ldrht r1, [r2]
    952         ldrht r1, [r8, #0]
    953         ldrht r1, [r8, #3]
    954         ldrht r1, [r8, #255]
    955 
    956 @ CHECK: ldrht	r1, [r2]                @ encoding: [0x32,0xf8,0x00,0x1e]
    957 @ CHECK: ldrht	r1, [r8]                @ encoding: [0x38,0xf8,0x00,0x1e]
    958 @ CHECK: ldrht	r1, [r8, #3]            @ encoding: [0x38,0xf8,0x03,0x1e]
    959 @ CHECK: ldrht	r1, [r8, #255]          @ encoding: [0x38,0xf8,0xff,0x1e]
    960 
    961 
    962 @------------------------------------------------------------------------------
    963 @ LDRSB(immediate)
    964 @------------------------------------------------------------------------------
    965         ldrsb r5, [r5, #-4]
    966         ldrsb r5, [r6, #32]
    967         ldrsb r5, [r6, #33]
    968         ldrsb r5, [r6, #257]
    969         ldrsb.w lr, [r7, #257]
    970 
    971 @ CHECK: ldrsb	r5, [r5, #-4]            @ encoding: [0x15,0xf9,0x04,0x5c]
    972 @ CHECK: ldrsb.w r5, [r6, #32]           @ encoding: [0x96,0xf9,0x20,0x50]
    973 @ CHECK: ldrsb.w r5, [r6, #33]           @ encoding: [0x96,0xf9,0x21,0x50]
    974 @ CHECK: ldrsb.w r5, [r6, #257]          @ encoding: [0x96,0xf9,0x01,0x51]
    975 @ CHECK: ldrsb.w lr, [r7, #257]          @ encoding: [0x97,0xf9,0x01,0xe1]
    976 
    977 
    978 @------------------------------------------------------------------------------
    979 @ LDRSB(register)
    980 @------------------------------------------------------------------------------
    981         ldrsb r1, [r8, r1]
    982         ldrsb.w r4, [r5, r2]
    983         ldrsb r6, [r0, r2, lsl #3]
    984         ldrsb r8, [r8, r2, lsl #2]
    985         ldrsb r7, [sp, r2, lsl #1]
    986         ldrsb r7, [sp, r2, lsl #0]
    987         ldrsb r5, [r8, #255]!
    988         ldrsb r2, [r5, #4]!
    989         ldrsb r1, [r4, #-4]!
    990         ldrsb lr, [r3], #255
    991         ldrsb r9, [r2], #4
    992         ldrsb r3, [sp], #-4
    993 
    994 @ CHECK: ldrsb.w r1, [r8, r1]           @ encoding: [0x18,0xf9,0x01,0x10]
    995 @ CHECK: ldrsb.w r4, [r5, r2]           @ encoding: [0x15,0xf9,0x02,0x40]
    996 @ CHECK: ldrsb.w r6, [r0, r2, lsl #3]   @ encoding: [0x10,0xf9,0x32,0x60]
    997 @ CHECK: ldrsb.w r8, [r8, r2, lsl #2]   @ encoding: [0x18,0xf9,0x22,0x80]
    998 @ CHECK: ldrsb.w r7, [sp, r2, lsl #1]   @ encoding: [0x1d,0xf9,0x12,0x70]
    999 @ CHECK: ldrsb.w r7, [sp, r2]           @ encoding: [0x1d,0xf9,0x02,0x70]
   1000 @ CHECK: ldrsb	r5, [r8, #255]!         @ encoding: [0x18,0xf9,0xff,0x5f]
   1001 @ CHECK: ldrsb	r2, [r5, #4]!           @ encoding: [0x15,0xf9,0x04,0x2f]
   1002 @ CHECK: ldrsb	r1, [r4, #-4]!          @ encoding: [0x14,0xf9,0x04,0x1d]
   1003 @ CHECK: ldrsb	lr, [r3], #255          @ encoding: [0x13,0xf9,0xff,0xeb]
   1004 @ CHECK: ldrsb	r9, [r2], #4            @ encoding: [0x12,0xf9,0x04,0x9b]
   1005 @ CHECK: ldrsb	r3, [sp], #-4           @ encoding: [0x1d,0xf9,0x04,0x39]
   1006 
   1007 
   1008 @------------------------------------------------------------------------------
   1009 @ LDRSB(literal)
   1010 @------------------------------------------------------------------------------
   1011         ldrsb r5, _bar
   1012 
   1013 @ CHECK: ldrsb.w r5, _bar               @ encoding: [0x1f'A',0xf9'A',A,0x50'A']
   1014 @ CHECK:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
   1015 
   1016 
   1017 @------------------------------------------------------------------------------
   1018 @ LDRSBT
   1019 @------------------------------------------------------------------------------
   1020         ldrsbt r1, [r2]
   1021         ldrsbt r1, [r8, #0]
   1022         ldrsbt r1, [r8, #3]
   1023         ldrsbt r1, [r8, #255]
   1024 
   1025 @ CHECK: ldrsbt	r1, [r2]                @ encoding: [0x12,0xf9,0x00,0x1e]
   1026 @ CHECK: ldrsbt	r1, [r8]                @ encoding: [0x18,0xf9,0x00,0x1e]
   1027 @ CHECK: ldrsbt	r1, [r8, #3]            @ encoding: [0x18,0xf9,0x03,0x1e]
   1028 @ CHECK: ldrsbt	r1, [r8, #255]          @ encoding: [0x18,0xf9,0xff,0x1e]
   1029 
   1030 
   1031 @------------------------------------------------------------------------------
   1032 @ LDRSH(immediate)
   1033 @------------------------------------------------------------------------------
   1034         ldrsh r5, [r5, #-4]
   1035         ldrsh r5, [r6, #32]
   1036         ldrsh r5, [r6, #33]
   1037         ldrsh r5, [r6, #257]
   1038         ldrsh.w lr, [r7, #257]
   1039 
   1040 @ CHECK: ldrsh	r5, [r5, #-4]           @ encoding: [0x35,0xf9,0x04,0x5c]
   1041 @ CHECK: ldrsh.w r5, [r6, #32]          @ encoding: [0xb6,0xf9,0x20,0x50]
   1042 @ CHECK: ldrsh.w r5, [r6, #33]          @ encoding: [0xb6,0xf9,0x21,0x50]
   1043 @ CHECK: ldrsh.w r5, [r6, #257]         @ encoding: [0xb6,0xf9,0x01,0x51]
   1044 @ CHECK: ldrsh.w lr, [r7, #257]         @ encoding: [0xb7,0xf9,0x01,0xe1]
   1045 
   1046 
   1047 @------------------------------------------------------------------------------
   1048 @ LDRSH(register)
   1049 @------------------------------------------------------------------------------
   1050         ldrsh r1, [r8, r1]
   1051         ldrsh.w r4, [r5, r2]
   1052         ldrsh r6, [r0, r2, lsl #3]
   1053         ldrsh r8, [r8, r2, lsl #2]
   1054         ldrsh r7, [sp, r2, lsl #1]
   1055         ldrsh r7, [sp, r2, lsl #0]
   1056         ldrsh r5, [r8, #255]!
   1057         ldrsh r2, [r5, #4]!
   1058         ldrsh r1, [r4, #-4]!
   1059         ldrsh lr, [r3], #255
   1060         ldrsh r9, [r2], #4
   1061         ldrsh r3, [sp], #-4
   1062 
   1063 @ CHECK: ldrsh.w r1, [r8, r1]           @ encoding: [0x38,0xf9,0x01,0x10]
   1064 @ CHECK: ldrsh.w r4, [r5, r2]           @ encoding: [0x35,0xf9,0x02,0x40]
   1065 @ CHECK: ldrsh.w r6, [r0, r2, lsl #3]   @ encoding: [0x30,0xf9,0x32,0x60]
   1066 @ CHECK: ldrsh.w r8, [r8, r2, lsl #2]   @ encoding: [0x38,0xf9,0x22,0x80]
   1067 @ CHECK: ldrsh.w r7, [sp, r2, lsl #1]   @ encoding: [0x3d,0xf9,0x12,0x70]
   1068 @ CHECK: ldrsh.w r7, [sp, r2]           @ encoding: [0x3d,0xf9,0x02,0x70]
   1069 @ CHECK: ldrsh	r5, [r8, #255]!         @ encoding: [0x38,0xf9,0xff,0x5f]
   1070 @ CHECK: ldrsh	r2, [r5, #4]!           @ encoding: [0x35,0xf9,0x04,0x2f]
   1071 @ CHECK: ldrsh	r1, [r4, #-4]!          @ encoding: [0x34,0xf9,0x04,0x1d]
   1072 @ CHECK: ldrsh	lr, [r3], #255          @ encoding: [0x33,0xf9,0xff,0xeb]
   1073 @ CHECK: ldrsh	r9, [r2], #4            @ encoding: [0x32,0xf9,0x04,0x9b]
   1074 @ CHECK: ldrsh	r3, [sp], #-4           @ encoding: [0x3d,0xf9,0x04,0x39]
   1075 
   1076 
   1077 @------------------------------------------------------------------------------
   1078 @ LDRSH(literal)
   1079 @------------------------------------------------------------------------------
   1080         ldrsh r5, _bar
   1081 
   1082 @ CHECK: ldrsh.w r5, _bar               @ encoding: [0x3f'A',0xf9'A',A,0x50'A']
   1083 @ CHECK:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
   1084 
   1085 @ TEMPORARILY DISABLED:
   1086 @        ldrsh.w r4, [pc, #1435]
   1087 @      : ldrsh.w r4, [pc, #1435]               @ encoding: [0x3f,0xf9,0x9b,0x45]
   1088 
   1089 @------------------------------------------------------------------------------
   1090 @ LDRSHT
   1091 @------------------------------------------------------------------------------
   1092         ldrsht r1, [r2]
   1093         ldrsht r1, [r8, #0]
   1094         ldrsht r1, [r8, #3]
   1095         ldrsht r1, [r8, #255]
   1096 
   1097 @ CHECK: ldrsht	r1, [r2]                @ encoding: [0x32,0xf9,0x00,0x1e]
   1098 @ CHECK: ldrsht	r1, [r8]                @ encoding: [0x38,0xf9,0x00,0x1e]
   1099 @ CHECK: ldrsht	r1, [r8, #3]            @ encoding: [0x38,0xf9,0x03,0x1e]
   1100 @ CHECK: ldrsht	r1, [r8, #255]          @ encoding: [0x38,0xf9,0xff,0x1e]
   1101 
   1102 
   1103 @------------------------------------------------------------------------------
   1104 @ LDRT
   1105 @------------------------------------------------------------------------------
   1106         ldrt r1, [r2]
   1107         ldrt r2, [r6, #0]
   1108         ldrt r3, [r7, #3]
   1109         ldrt r4, [r9, #255]
   1110 
   1111 @ CHECK: ldrt	r1, [r2]                @ encoding: [0x52,0xf8,0x00,0x1e]
   1112 @ CHECK: ldrt	r2, [r6]                @ encoding: [0x56,0xf8,0x00,0x2e]
   1113 @ CHECK: ldrt	r3, [r7, #3]            @ encoding: [0x57,0xf8,0x03,0x3e]
   1114 @ CHECK: ldrt	r4, [r9, #255]          @ encoding: [0x59,0xf8,0xff,0x4e]
   1115 
   1116 
   1117 @------------------------------------------------------------------------------
   1118 @ LSL (immediate)
   1119 @------------------------------------------------------------------------------
   1120         lsl r2, r3, #12
   1121         lsls r8, r3, #31
   1122         lsls.w r2, r3, #1
   1123         lsl r2, r3, #4
   1124         lsls r2, r12, #15
   1125 
   1126         lsl r3, #19
   1127         lsls r8, #2
   1128         lsls.w r7, #5
   1129         lsl.w r12, #21
   1130 
   1131 @ CHECK: lsl.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x03,0x32]
   1132 @ CHECK: lsls.w	r8, r3, #31             @ encoding: [0x5f,0xea,0xc3,0x78]
   1133 @ CHECK: lsls.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x43,0x02]
   1134 @ CHECK: lsl.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x03,0x12]
   1135 @ CHECK: lsls.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xcc,0x32]
   1136 
   1137 @ CHECK: lsl.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xc3,0x43]
   1138 @ CHECK: lsls.w	r8, r8, #2              @ encoding: [0x5f,0xea,0x88,0x08]
   1139 @ CHECK: lsls.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x47,0x17]
   1140 @ CHECK: lsl.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x4c,0x5c]
   1141 
   1142 
   1143 @------------------------------------------------------------------------------
   1144 @ LSL (register)
   1145 @------------------------------------------------------------------------------
   1146         lsl r3, r4, r2
   1147         lsl.w r1, r2
   1148         lsls r3, r4, r8
   1149 
   1150 @ CHECK: lsl.w	r3, r4, r2              @ encoding: [0x04,0xfa,0x02,0xf3]
   1151 @ CHECK: lsl.w	r1, r1, r2              @ encoding: [0x01,0xfa,0x02,0xf1]
   1152 @ CHECK: lsls.w	r3, r4, r8              @ encoding: [0x14,0xfa,0x08,0xf3]
   1153 
   1154 
   1155 @------------------------------------------------------------------------------
   1156 @ LSR (immediate)
   1157 @------------------------------------------------------------------------------
   1158         lsr r2, r3, #12
   1159         lsrs r8, r3, #32
   1160         lsrs.w r2, r3, #1
   1161         lsr r2, r3, #4
   1162         lsrs r2, r12, #15
   1163 
   1164         lsr r3, #19
   1165         lsrs r8, #2
   1166         lsrs.w r7, #5
   1167         lsr.w r12, #21
   1168 
   1169 @ CHECK: lsr.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x13,0x32]
   1170 @ CHECK: lsrs.w	r8, r3, #32             @ encoding: [0x5f,0xea,0x13,0x08]
   1171 @ CHECK: lsrs.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x53,0x02]
   1172 @ CHECK: lsr.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x13,0x12]
   1173 @ CHECK: lsrs.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xdc,0x32]
   1174 
   1175 @ CHECK: lsr.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xd3,0x43]
   1176 @ CHECK: lsrs.w	r8, r8, #2              @ encoding: [0x5f,0xea,0x98,0x08]
   1177 @ CHECK: lsrs.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x57,0x17]
   1178 @ CHECK: lsr.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x5c,0x5c]
   1179 
   1180 
   1181 @------------------------------------------------------------------------------
   1182 @ LSR (register)
   1183 @------------------------------------------------------------------------------
   1184         lsr r3, r4, r2
   1185         lsr.w r1, r2
   1186         lsrs r3, r4, r8
   1187 
   1188 @ CHECK: lsr.w	r3, r4, r2              @ encoding: [0x24,0xfa,0x02,0xf3]
   1189 @ CHECK: lsr.w	r1, r1, r2              @ encoding: [0x21,0xfa,0x02,0xf1]
   1190 @ CHECK: lsrs.w	r3, r4, r8              @ encoding: [0x34,0xfa,0x08,0xf3]
   1191 
   1192 @------------------------------------------------------------------------------
   1193 @ MCR/MCR2
   1194 @------------------------------------------------------------------------------
   1195         mcr  p7, #1, r5, c1, c1, #4
   1196         mcr2  p7, #1, r5, c1, c1, #4
   1197         mcr p14, #0, r4, c0, c5
   1198         mcr2 p4, #2, r2, c1, c3
   1199 
   1200 @ CHECK: mcr	p7, #1, r5, c1, c1, #4  @ encoding: [0x21,0xee,0x91,0x57]
   1201 @ CHECK: mcr2	p7, #1, r5, c1, c1, #4  @ encoding: [0x21,0xfe,0x91,0x57]
   1202 @ CHECK: mcr	p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]
   1203 @ CHECK: mcr2	p4, #2, r2, c1, c3, #0  @ encoding: [0x41,0xfe,0x13,0x24]
   1204 
   1205 
   1206 @------------------------------------------------------------------------------
   1207 @ MCRR/MCRR2
   1208 @------------------------------------------------------------------------------
   1209         mcrr  p7, #15, r5, r4, c1
   1210         mcrr2  p7, #15, r5, r4, c1
   1211 
   1212 @ CHECK: mcrr	p7, #15, r5, r4, c1     @ encoding: [0x44,0xec,0xf1,0x57]
   1213 @ CHECK: mcrr2	p7, #15, r5, r4, c1     @ encoding: [0x44,0xfc,0xf1,0x57]
   1214 
   1215 
   1216 @------------------------------------------------------------------------------
   1217 @ MLA/MLS
   1218 @------------------------------------------------------------------------------
   1219         mla  r1,r2,r3,r4
   1220         mls  r1,r2,r3,r4
   1221 
   1222 @ CHECK: mla	r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x03,0x41]
   1223 @ CHECK: mls	r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x13,0x41]
   1224 
   1225 
   1226 @------------------------------------------------------------------------------
   1227 @ MOV(immediate)
   1228 @------------------------------------------------------------------------------
   1229         movs r1, #21
   1230         movs.w r1, #21
   1231         movs r8, #21
   1232         movw r0, #65535
   1233         movw r1, #43777
   1234         movw r1, #43792
   1235         mov.w r0, #0x3fc0000
   1236         mov r0, #0x3fc0000
   1237         movs.w r0, #0x3fc0000
   1238         itte eq
   1239         movseq r1, #12
   1240         moveq r1, #12
   1241         movne.w r1, #12
   1242         mov.w r6, #450
   1243         it lo
   1244         movlo r1, #-1
   1245 
   1246         @ alias for mvn
   1247 	mov r3, #-3
   1248 
   1249 
   1250 @ CHECK: movs	r1, #21                 @ encoding: [0x15,0x21]
   1251 @ CHECK: movs.w	r1, #21                 @ encoding: [0x5f,0xf0,0x15,0x01]
   1252 @ CHECK: movs.w	r8, #21                 @ encoding: [0x5f,0xf0,0x15,0x08]
   1253 @ CHECK: movw	r0, #65535              @ encoding: [0x4f,0xf6,0xff,0x70]
   1254 @ CHECK: movw	r1, #43777              @ encoding: [0x4a,0xf6,0x01,0x31]
   1255 @ CHECK: movw	r1, #43792              @ encoding: [0x4a,0xf6,0x10,0x31]
   1256 @ CHECK: mov.w	r0, #66846720           @ encoding: [0x4f,0xf0,0x7f,0x70]
   1257 @ CHECK: mov.w	r0, #66846720           @ encoding: [0x4f,0xf0,0x7f,0x70]
   1258 @ CHECK: movs.w	r0, #66846720           @ encoding: [0x5f,0xf0,0x7f,0x70]
   1259 @ CHECK: itte	eq                      @ encoding: [0x06,0xbf]
   1260 @ CHECK: movseq.w	r1, #12         @ encoding: [0x5f,0xf0,0x0c,0x01]
   1261 @ CHECK: moveq	r1, #12                 @ encoding: [0x0c,0x21]
   1262 @ CHECK: movne.w r1, #12                @ encoding: [0x4f,0xf0,0x0c,0x01]
   1263 @ CHECK: mov.w	r6, #450                @ encoding: [0x4f,0xf4,0xe1,0x76]
   1264 @ CHECK: it	lo                      @ encoding: [0x38,0xbf]
   1265 @ CHECK: movlo.w	r1, #-1         @ encoding: [0x4f,0xf0,0xff,0x31]
   1266 @ CHECK: mvn	r3, #2                  @ encoding: [0x6f,0xf0,0x02,0x03]
   1267 
   1268 @------------------------------------------------------------------------------
   1269 @ MOV(shifted register)
   1270 @------------------------------------------------------------------------------
   1271         mov r6, r2, lsl #16
   1272         mov r6, r2, lsr #16
   1273         movs r6, r2, asr #32
   1274         movs r6, r2, ror #5
   1275         movs r4, r4, lsl r5
   1276         movs r4, r4, lsr r5
   1277         movs r4, r4, asr r5
   1278         movs r4, r4, ror r5
   1279         mov r4, r4, lsl r5
   1280         movs r4, r4, ror r8
   1281         movs r4, r5, lsr r6
   1282         itttt eq
   1283         moveq r4, r4, lsl r5
   1284         moveq r4, r4, lsr r5
   1285         moveq r4, r4, asr r5
   1286         moveq r4, r4, ror r5
   1287         mov r4, r4, rrx
   1288 
   1289 @ CHECK: lsl.w	r6, r2, #16             @ encoding: [0x4f,0xea,0x02,0x46]
   1290 @ CHECK: lsr.w	r6, r2, #16             @ encoding: [0x4f,0xea,0x12,0x46]
   1291 @ CHECK: asrs	r6, r2, #32             @ encoding: [0x16,0x10]
   1292 @ CHECK: rors.w	r6, r2, #5              @ encoding: [0x5f,0xea,0x72,0x16]
   1293 @ CHECK: lsls	r4, r5                  @ encoding: [0xac,0x40]
   1294 @ CHECK: lsrs	r4, r5                  @ encoding: [0xec,0x40]
   1295 @ CHECK: asrs	r4, r5                  @ encoding: [0x2c,0x41]
   1296 @ CHECK: rors	r4, r5                  @ encoding: [0xec,0x41]
   1297 @ CHECK: lsl.w	r4, r4, r5              @ encoding: [0x04,0xfa,0x05,0xf4]
   1298 @ CHECK: rors.w	r4, r4, r8              @ encoding: [0x74,0xfa,0x08,0xf4]
   1299 @ CHECK: lsrs.w	r4, r5, r6              @ encoding: [0x35,0xfa,0x06,0xf4]
   1300 @ CHECK: itttt	eq                      @ encoding: [0x01,0xbf]
   1301 @ CHECK: lsleq	r4, r5                  @ encoding: [0xac,0x40]
   1302 @ CHECK: lsreq	r4, r5                  @ encoding: [0xec,0x40]
   1303 @ CHECK: asreq	r4, r5                  @ encoding: [0x2c,0x41]
   1304 @ CHECK: roreq	r4, r5                  @ encoding: [0xec,0x41]
   1305 @ CHECK: rrx	r4, r4                  @ encoding: [0x4f,0xea,0x34,0x04]
   1306 
   1307 
   1308 @------------------------------------------------------------------------------
   1309 @ MOVT
   1310 @------------------------------------------------------------------------------
   1311         movt r3, #7
   1312         movt r6, #0xffff
   1313         it eq
   1314         movteq r4, #0xff0
   1315 
   1316 @ CHECK: movt	r3, #7                  @ encoding: [0xc0,0xf2,0x07,0x03]
   1317 @ CHECK: movt	r6, #65535              @ encoding: [0xcf,0xf6,0xff,0x76]
   1318 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   1319 @ CHECK: movteq	r4, #4080               @ encoding: [0xc0,0xf6,0xf0,0x74]
   1320 
   1321 @------------------------------------------------------------------------------
   1322 @ MRC/MRC2
   1323 @------------------------------------------------------------------------------
   1324         mrc  p14, #0, r1, c1, c2, #4
   1325         mrc2  p14, #0, r1, c1, c2, #4
   1326         mrc p11, #1, r1, c2, c2
   1327         mrc2 p12, #3, r3, c3, c4
   1328 
   1329 @ CHECK: mrc	p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xee,0x92,0x1e]
   1330 @ CHECK: mrc2	p14, #0, r1, c1, c2, #4 @ encoding: [0x11,0xfe,0x92,0x1e]
   1331 @ CHECK: mrc	p11, #1, r1, c2, c2, #0 @ encoding: [0x32,0xee,0x12,0x1b]
   1332 @ CHECK: mrc2	p12, #3, r3, c3, c4, #0 @ encoding: [0x73,0xfe,0x14,0x3c]
   1333 
   1334 
   1335 @------------------------------------------------------------------------------
   1336 @ MRRC/MRRC2
   1337 @------------------------------------------------------------------------------
   1338         mrrc  p7, #1, r5, r4, c1
   1339         mrrc2  p7, #1, r5, r4, c1
   1340 
   1341 @ CHECK: mrrc	p7, #1, r5, r4, c1      @ encoding: [0x54,0xec,0x11,0x57]
   1342 @ CHECK: mrrc2	p7, #1, r5, r4, c1      @ encoding: [0x54,0xfc,0x11,0x57]
   1343 
   1344 
   1345 @------------------------------------------------------------------------------
   1346 @ MRS
   1347 @------------------------------------------------------------------------------
   1348         mrs  r8, apsr
   1349         mrs  r8, cpsr
   1350         mrs  r8, spsr
   1351 
   1352 @ CHECK: mrs	r8, apsr                @ encoding: [0xef,0xf3,0x00,0x88]
   1353 @ CHECK: mrs	r8, apsr                @ encoding: [0xef,0xf3,0x00,0x88]
   1354 @ CHECK: mrs	r8, spsr                @ encoding: [0xff,0xf3,0x00,0x88]
   1355 
   1356 
   1357 @------------------------------------------------------------------------------
   1358 @ MSR
   1359 @------------------------------------------------------------------------------
   1360         msr  apsr, r1
   1361         msr  apsr_g, r2
   1362         msr  apsr_nzcvq, r3
   1363         msr  APSR_nzcvq, r4
   1364         msr  apsr_nzcvqg, r5
   1365         msr  cpsr_fc, r6
   1366         msr  cpsr_c, r7
   1367         msr  cpsr_x, r8
   1368         msr  cpsr_fc, r9
   1369         msr  cpsr_all, r11
   1370         msr  cpsr_fsx, r12
   1371         msr  spsr_fc, r0
   1372         msr  SPSR_fsxc, r5
   1373         msr  cpsr_fsxc, r8
   1374         msr  cpsr, r3
   1375 
   1376 @ CHECK: msr	APSR_nzcvq, r1          @ encoding: [0x81,0xf3,0x00,0x88]
   1377 @ CHECK: msr	APSR_g, r2              @ encoding: [0x82,0xf3,0x00,0x84]
   1378 @ CHECK: msr	APSR_nzcvq, r3          @ encoding: [0x83,0xf3,0x00,0x88]
   1379 @ CHECK: msr	APSR_nzcvq, r4          @ encoding: [0x84,0xf3,0x00,0x88]
   1380 @ CHECK: msr	APSR_nzcvqg, r5         @ encoding: [0x85,0xf3,0x00,0x8c]
   1381 @ CHECK: msr	CPSR_fc, r6             @ encoding: [0x86,0xf3,0x00,0x89]
   1382 @ CHECK: msr	CPSR_c, r7              @ encoding: [0x87,0xf3,0x00,0x81]
   1383 @ CHECK: msr	CPSR_x, r8              @ encoding: [0x88,0xf3,0x00,0x82]
   1384 @ CHECK: msr	CPSR_fc, r9             @ encoding: [0x89,0xf3,0x00,0x89]
   1385 @ CHECK: msr	CPSR_fc, r11            @ encoding: [0x8b,0xf3,0x00,0x89]
   1386 @ CHECK: msr	CPSR_fsx, r12           @ encoding: [0x8c,0xf3,0x00,0x8e]
   1387 @ CHECK: msr	SPSR_fc, r0             @ encoding: [0x90,0xf3,0x00,0x89]
   1388 @ CHECK: msr	SPSR_fsxc, r5           @ encoding: [0x95,0xf3,0x00,0x8f]
   1389 @ CHECK: msr	CPSR_fsxc, r8           @ encoding: [0x88,0xf3,0x00,0x8f]
   1390 @ CHECK: msr	CPSR_fc, r3             @ encoding: [0x83,0xf3,0x00,0x89]
   1391 
   1392 
   1393 @------------------------------------------------------------------------------
   1394 @ MUL
   1395 @------------------------------------------------------------------------------
   1396         muls r3, r4, r3
   1397         mul r3, r4, r3
   1398         mul r3, r4, r6
   1399         it eq
   1400         muleq r3, r4, r5
   1401         it le
   1402         mulle r4, r4, r8
   1403         mul r5, r6
   1404 
   1405 @ CHECK: muls	r3, r4, r3              @ encoding: [0x63,0x43]
   1406 @ CHECK: mul	r3, r4, r3              @ encoding: [0x04,0xfb,0x03,0xf3]
   1407 @ CHECK: mul	r3, r4, r6              @ encoding: [0x04,0xfb,0x06,0xf3]
   1408 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   1409 @ CHECK: muleq	r3, r4, r5              @ encoding: [0x04,0xfb,0x05,0xf3]
   1410 @ CHECK: it	le                      @ encoding: [0xd8,0xbf]
   1411 @ CHECK: mulle	r4, r4, r8              @ encoding: [0x04,0xfb,0x08,0xf4]
   1412 @ CHECK: mul	r5, r6, r5              @ encoding: [0x06,0xfb,0x05,0xf5]
   1413 
   1414 
   1415 @------------------------------------------------------------------------------
   1416 @ MVN(immediate)
   1417 @------------------------------------------------------------------------------
   1418         mvns r8, #21
   1419         mvn r0, #0x3fc0000
   1420         mvns r0, #0x3fc0000
   1421         itte eq
   1422         mvnseq r1, #12
   1423         mvneq.w r1, #12
   1424         mvnne r1, #12
   1425 
   1426 @ CHECK: mvns	r8, #21                 @ encoding: [0x7f,0xf0,0x15,0x08]
   1427 @ CHECK: mvn	r0, #66846720           @ encoding: [0x6f,0xf0,0x7f,0x70]
   1428 @ CHECK: mvns	r0, #66846720           @ encoding: [0x7f,0xf0,0x7f,0x70]
   1429 @ CHECK: itte	eq                      @ encoding: [0x06,0xbf]
   1430 @ CHECK: mvnseq	r1, #12                 @ encoding: [0x7f,0xf0,0x0c,0x01]
   1431 @ CHECK: mvneq	r1, #12                 @ encoding: [0x6f,0xf0,0x0c,0x01]
   1432 @ CHECK: mvnne	r1, #12                 @ encoding: [0x6f,0xf0,0x0c,0x01]
   1433 
   1434 
   1435 @------------------------------------------------------------------------------
   1436 @ MVN(register)
   1437 @------------------------------------------------------------------------------
   1438         mvn r2, r3
   1439         mvns r2, r3
   1440         mvn r5, r6, lsl #19
   1441         mvn r5, r6, lsr #9
   1442         mvn.w r5, r6, asr #4
   1443         mvn r5, r6, ror #6
   1444         mvn r5, r6, rrx
   1445         it eq
   1446         mvneq r2, r3
   1447 
   1448 @ CHECK: mvn.w	r2, r3                  @ encoding: [0x6f,0xea,0x03,0x02]
   1449 @ CHECK: mvns	r2, r3                  @ encoding: [0xda,0x43]
   1450 @ CHECK: mvn.w	r5, r6, lsl #19         @ encoding: [0x6f,0xea,0xc6,0x45]
   1451 @ CHECK: mvn.w	r5, r6, lsr #9          @ encoding: [0x6f,0xea,0x56,0x25]
   1452 @ CHECK: mvn.w	r5, r6, asr #4          @ encoding: [0x6f,0xea,0x26,0x15]
   1453 @ CHECK: mvn.w	r5, r6, ror #6          @ encoding: [0x6f,0xea,0xb6,0x15]
   1454 @ CHECK: mvn.w	r5, r6, rrx             @ encoding: [0x6f,0xea,0x36,0x05]
   1455 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   1456 @ CHECK: mvneq	r2, r3                  @ encoding: [0xda,0x43]
   1457 
   1458 @------------------------------------------------------------------------------
   1459 @ NEG
   1460 @------------------------------------------------------------------------------
   1461         neg r5, r2
   1462         neg r5, r8
   1463 
   1464 @ CHECK: rsb.w	r5, r2, #0              @ encoding: [0xc2,0xf1,0x00,0x05]
   1465 @ CHECK: rsb.w	r5, r8, #0              @ encoding: [0xc8,0xf1,0x00,0x05]
   1466 
   1467 
   1468 @------------------------------------------------------------------------------
   1469 @ NOP
   1470 @------------------------------------------------------------------------------
   1471         nop.w
   1472 
   1473 @ CHECK: nop.w                          @ encoding: [0xaf,0xf3,0x00,0x80]
   1474 
   1475 
   1476 @------------------------------------------------------------------------------
   1477 @ ORN
   1478 @------------------------------------------------------------------------------
   1479         orn r4, r5, #0xf000
   1480         orn r4, r5, r6
   1481         orns r4, r5, r6
   1482         orn r4, r5, r6, lsl #5
   1483         orns r4, r5, r6, lsr #5
   1484         orn r4, r5, r6, lsr #5
   1485         orns r4, r5, r6, asr #5
   1486         orn r4, r5, r6, ror #5
   1487 
   1488 @ CHECK: orn	r4, r5, #61440          @ encoding: [0x65,0xf4,0x70,0x44]
   1489 @ CHECK: orn	r4, r5, r6              @ encoding: [0x65,0xea,0x06,0x04]
   1490 @ CHECK: orns	r4, r5, r6              @ encoding: [0x75,0xea,0x06,0x04]
   1491 @ CHECK: orn	r4, r5, r6, lsl #5      @ encoding: [0x65,0xea,0x46,0x14]
   1492 @ CHECK: orns	r4, r5, r6, lsr #5      @ encoding: [0x75,0xea,0x56,0x14]
   1493 @ CHECK: orn	r4, r5, r6, lsr #5      @ encoding: [0x65,0xea,0x56,0x14]
   1494 @ CHECK: orns	r4, r5, r6, asr #5      @ encoding: [0x75,0xea,0x66,0x14]
   1495 @ CHECK: orn	r4, r5, r6, ror #5      @ encoding: [0x65,0xea,0x76,0x14]
   1496 
   1497 
   1498 @------------------------------------------------------------------------------
   1499 @ ORR
   1500 @------------------------------------------------------------------------------
   1501         orr r4, r5, #0xf000
   1502         orr r4, r5, r6
   1503         orr r4, r5, r6, lsl #5
   1504         orrs r4, r5, r6, lsr #5
   1505         orr r4, r5, r6, lsr #5
   1506         orrs r4, r5, r6, asr #5
   1507         orr r4, r5, r6, ror #5
   1508 
   1509 @ CHECK: orr	r4, r5, #61440          @ encoding: [0x45,0xf4,0x70,0x44]
   1510 @ CHECK: orr.w	r4, r5, r6              @ encoding: [0x45,0xea,0x06,0x04]
   1511 @ CHECK: orr.w	r4, r5, r6, lsl #5      @ encoding: [0x45,0xea,0x46,0x14]
   1512 @ CHECK: orrs.w	r4, r5, r6, lsr #5      @ encoding: [0x55,0xea,0x56,0x14]
   1513 @ CHECK: orr.w	r4, r5, r6, lsr #5      @ encoding: [0x45,0xea,0x56,0x14]
   1514 @ CHECK: orrs.w	r4, r5, r6, asr #5      @ encoding: [0x55,0xea,0x66,0x14]
   1515 @ CHECK: orr.w	r4, r5, r6, ror #5      @ encoding: [0x45,0xea,0x76,0x14]
   1516 
   1517 
   1518 @------------------------------------------------------------------------------
   1519 @ PKH
   1520 @------------------------------------------------------------------------------
   1521         pkhbt r2, r2, r3
   1522         pkhbt r2, r2, r3, lsl #31
   1523         pkhbt r2, r2, r3, lsl #0
   1524         pkhbt r2, r2, r3, lsl #15
   1525 
   1526         pkhtb r2, r2, r3
   1527         pkhtb r2, r2, r3, asr #31
   1528         pkhtb r2, r2, r3, asr #15
   1529 
   1530 @ CHECK: pkhbt	r2, r2, r3              @ encoding: [0xc2,0xea,0x03,0x02]
   1531 @ CHECK: pkhbt	r2, r2, r3, lsl #31     @ encoding: [0xc2,0xea,0xc3,0x72]
   1532 @ CHECK: pkhbt	r2, r2, r3              @ encoding: [0xc2,0xea,0x03,0x02]
   1533 @ CHECK: pkhbt	r2, r2, r3, lsl #15     @ encoding: [0xc2,0xea,0xc3,0x32]
   1534 
   1535 @ CHECK: pkhbt	r2, r2, r3              @ encoding: [0xc2,0xea,0x03,0x02]
   1536 @ CHECK: pkhtb	r2, r2, r3, asr #31     @ encoding: [0xc2,0xea,0xe3,0x72]
   1537 @ CHECK: pkhtb	r2, r2, r3, asr #15     @ encoding: [0xc2,0xea,0xe3,0x32]
   1538 
   1539 
   1540 @------------------------------------------------------------------------------
   1541 @ PLD(immediate)
   1542 @------------------------------------------------------------------------------
   1543         pld [r5, #-4]
   1544         pld [r6, #32]
   1545         pld [r6, #33]
   1546         pld [r6, #257]
   1547         pld [r7, #257]
   1548         pld [r1, #0]
   1549         pld [r1, #-0]
   1550 
   1551 @ CHECK: pld	[r5, #-4]               @ encoding: [0x15,0xf8,0x04,0xfc]
   1552 @ CHECK: pld	[r6, #32]               @ encoding: [0x96,0xf8,0x20,0xf0]
   1553 @ CHECK: pld	[r6, #33]               @ encoding: [0x96,0xf8,0x21,0xf0]
   1554 @ CHECK: pld	[r6, #257]              @ encoding: [0x96,0xf8,0x01,0xf1]
   1555 @ CHECK: pld	[r7, #257]              @ encoding: [0x97,0xf8,0x01,0xf1]
   1556 @ CHECK: pld	[r1]                    @ encoding: [0x91,0xf8,0x00,0xf0]
   1557 @ CHECK: pld	[r1, #-0]               @ encoding: [0x11,0xf8,0x00,0xfc]
   1558 
   1559 
   1560 @------------------------------------------------------------------------------
   1561 @ PLD(literal)
   1562 @------------------------------------------------------------------------------
   1563 @        pld  _foo
   1564 
   1565 @ FIXME: pld	_foo                    @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']
   1566             @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
   1567 
   1568 
   1569 @------------------------------------------------------------------------------
   1570 @ PLD(register)
   1571 @------------------------------------------------------------------------------
   1572         pld [r8, r1]
   1573         pld [r5, r2]
   1574         pld [r0, r2, lsl #3]
   1575         pld [r8, r2, lsl #2]
   1576         pld [sp, r2, lsl #1]
   1577         pld [sp, r2, lsl #0]
   1578 
   1579 @ CHECK: pld	[r8, r1]                @ encoding: [0x18,0xf8,0x01,0xf0]
   1580 @ CHECK: pld	[r5, r2]                @ encoding: [0x15,0xf8,0x02,0xf0]
   1581 @ CHECK: pld	[r0, r2, lsl #3]        @ encoding: [0x10,0xf8,0x32,0xf0]
   1582 @ CHECK: pld	[r8, r2, lsl #2]        @ encoding: [0x18,0xf8,0x22,0xf0]
   1583 @ CHECK: pld	[sp, r2, lsl #1]        @ encoding: [0x1d,0xf8,0x12,0xf0]
   1584 @ CHECK: pld	[sp, r2]                @ encoding: [0x1d,0xf8,0x02,0xf0]
   1585 
   1586 @------------------------------------------------------------------------------
   1587 @ PLI(immediate)
   1588 @------------------------------------------------------------------------------
   1589         pli [r5, #-4]
   1590         pli [r6, #32]
   1591         pli [r6, #33]
   1592         pli [r6, #257]
   1593         pli [r7, #257]
   1594 
   1595 @ CHECK: pli	[r5, #-4]               @ encoding: [0x15,0xf9,0x04,0xfc]
   1596 @ CHECK: pli	[r6, #32]               @ encoding: [0x96,0xf9,0x20,0xf0]
   1597 @ CHECK: pli	[r6, #33]               @ encoding: [0x96,0xf9,0x21,0xf0]
   1598 @ CHECK: pli	[r6, #257]              @ encoding: [0x96,0xf9,0x01,0xf1]
   1599 @ CHECK: pli	[r7, #257]              @ encoding: [0x97,0xf9,0x01,0xf1]
   1600 
   1601 
   1602 @------------------------------------------------------------------------------
   1603 @ PLI(literal)
   1604 @------------------------------------------------------------------------------
   1605 @        pli  _foo
   1606 
   1607 
   1608 @ FIXME: pli	_foo                    @ encoding: [0x9f'A',0xf9'A',A,0xf0'A']
   1609            @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
   1610 
   1611 
   1612 @------------------------------------------------------------------------------
   1613 @ PLI(register)
   1614 @------------------------------------------------------------------------------
   1615         pli [r8, r1]
   1616         pli [r5, r2]
   1617         pli [r0, r2, lsl #3]
   1618         pli [r8, r2, lsl #2]
   1619         pli [sp, r2, lsl #1]
   1620         pli [sp, r2, lsl #0]
   1621 
   1622 @ CHECK: pli	[r8, r1]                @ encoding: [0x18,0xf9,0x01,0xf0]
   1623 @ CHECK: pli	[r5, r2]                @ encoding: [0x15,0xf9,0x02,0xf0]
   1624 @ CHECK: pli	[r0, r2, lsl #3]        @ encoding: [0x10,0xf9,0x32,0xf0]
   1625 @ CHECK: pli	[r8, r2, lsl #2]        @ encoding: [0x18,0xf9,0x22,0xf0]
   1626 @ CHECK: pli	[sp, r2, lsl #1]        @ encoding: [0x1d,0xf9,0x12,0xf0]
   1627 @ CHECK: pli	[sp, r2]                @ encoding: [0x1d,0xf9,0x02,0xf0]
   1628 
   1629 @------------------------------------------------------------------------------
   1630 @ POP (alias)
   1631 @------------------------------------------------------------------------------
   1632         pop {r2, r9}
   1633 
   1634 @ CHECK: pop.w	{r2, r9}                @ encoding: [0xbd,0xe8,0x04,0x02]
   1635 
   1636 
   1637 @------------------------------------------------------------------------------
   1638 @ PUSH (alias)
   1639 @------------------------------------------------------------------------------
   1640         push {r2, r9}
   1641 
   1642 @ CHECK: push.w	{r2, r9}                @ encoding: [0x2d,0xe9,0x04,0x02]
   1643 
   1644 
   1645 @------------------------------------------------------------------------------
   1646 @ QADD/QADD16/QADD8
   1647 @------------------------------------------------------------------------------
   1648         qadd r1, r2, r3
   1649         qadd16 r1, r2, r3
   1650         qadd8 r1, r2, r3
   1651         itte gt
   1652         qaddgt r1, r2, r3
   1653         qadd16gt r1, r2, r3
   1654         qadd8le r1, r2, r3
   1655 
   1656 @ CHECK: qadd	r1, r2, r3              @ encoding: [0x83,0xfa,0x82,0xf1]
   1657 @ CHECK: qadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x13,0xf1]
   1658 @ CHECK: qadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x13,0xf1]
   1659 @ CHECK: itte	gt                      @ encoding: [0xc6,0xbf]
   1660 @ CHECK: qaddgt	r1, r2, r3              @ encoding: [0x83,0xfa,0x82,0xf1]
   1661 @ CHECK: qadd16gt r1, r2, r3            @ encoding: [0x92,0xfa,0x13,0xf1]
   1662 @ CHECK: qadd8le r1, r2, r3             @ encoding: [0x82,0xfa,0x13,0xf1]
   1663 
   1664 
   1665 @------------------------------------------------------------------------------
   1666 @ QDADD/QDSUB
   1667 @------------------------------------------------------------------------------
   1668         qdadd r6, r7, r8
   1669         qdsub r6, r7, r8
   1670         itt hi
   1671         qdaddhi r6, r7, r8
   1672         qdsubhi r6, r7, r8
   1673 
   1674 @ CHECK: qdadd	r6, r7, r8              @ encoding: [0x88,0xfa,0x97,0xf6]
   1675 @ CHECK: qdsub	r6, r7, r8              @ encoding: [0x88,0xfa,0xb7,0xf6]
   1676 @ CHECK: itt	hi                      @ encoding: [0x84,0xbf]
   1677 @ CHECK: qdaddhi r6, r7, r8             @ encoding: [0x88,0xfa,0x97,0xf6]
   1678 @ CHECK: qdsubhi r6, r7, r8             @ encoding: [0x88,0xfa,0xb7,0xf6]
   1679 
   1680 
   1681 @------------------------------------------------------------------------------
   1682 @ QSAX
   1683 @------------------------------------------------------------------------------
   1684         qsax r9, r12, r0
   1685         it eq
   1686         qsaxeq r9, r12, r0
   1687 
   1688 @ CHECK: qsax	r9, r12, r0             @ encoding: [0xec,0xfa,0x10,0xf9]
   1689 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   1690 @ CHECK: qsaxeq	r9, r12, r0             @ encoding: [0xec,0xfa,0x10,0xf9]
   1691 
   1692 
   1693 @------------------------------------------------------------------------------
   1694 @ QSUB/QSUB16/QSUB8
   1695 @------------------------------------------------------------------------------
   1696         qsub r1, r2, r3
   1697         qsub16 r1, r2, r3
   1698         qsub8 r1, r2, r3
   1699         itet le
   1700         qsuble r1, r2, r3
   1701         qsub16gt r1, r2, r3
   1702         qsub8le r1, r2, r3
   1703 
   1704 @ CHECK: qsub	r1, r2, r3              @ encoding: [0x83,0xfa,0xa2,0xf1]
   1705 @ CHECK: qsub16	r1, r2, r3              @ encoding: [0xd2,0xfa,0x13,0xf1]
   1706 @ CHECK: qsub8	r1, r2, r3              @ encoding: [0xc2,0xfa,0x13,0xf1]
   1707 @ CHECK: itet	le                      @ encoding: [0xd6,0xbf]
   1708 @ CHECK: qsuble	r1, r2, r3              @ encoding: [0x83,0xfa,0xa2,0xf1]
   1709 @ CHECK: qsub16gt	r1, r2, r3      @ encoding: [0xd2,0xfa,0x13,0xf1]
   1710 @ CHECK: qsub8le r1, r2, r3             @ encoding: [0xc2,0xfa,0x13,0xf1]
   1711 
   1712 
   1713 @------------------------------------------------------------------------------
   1714 @ RBIT
   1715 @------------------------------------------------------------------------------
   1716         rbit r1, r2
   1717         it ne
   1718         rbitne r1, r2
   1719 
   1720 @ CHECK: rbit	r1, r2                  @ encoding: [0x92,0xfa,0xa2,0xf1]
   1721 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   1722 @ CHECK: rbitne	r1, r2                  @ encoding: [0x92,0xfa,0xa2,0xf1]
   1723 
   1724 
   1725 @------------------------------------------------------------------------------
   1726 @ REV
   1727 @------------------------------------------------------------------------------
   1728         rev.w r1, r2
   1729         rev r2, r8
   1730         itt ne
   1731         revne r1, r2
   1732         revne r1, r8
   1733 
   1734 @ CHECK: rev.w	r1, r2                  @ encoding: [0x92,0xfa,0x82,0xf1]
   1735 @ CHECK: rev.w	r2, r8                  @ encoding: [0x98,0xfa,0x88,0xf2]
   1736 @ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
   1737 @ CHECK: revne	r1, r2                  @ encoding: [0x11,0xba]
   1738 @ CHECK: revne.w r1, r8                 @ encoding: [0x98,0xfa,0x88,0xf1]
   1739 
   1740 
   1741 @------------------------------------------------------------------------------
   1742 @ REV16
   1743 @------------------------------------------------------------------------------
   1744         rev16.w r1, r2
   1745         rev16 r2, r8
   1746         itt ne
   1747         rev16ne r1, r2
   1748         rev16ne r1, r8
   1749 
   1750 @ CHECK: rev16.w r1, r2                 @ encoding: [0x92,0xfa,0x92,0xf1]
   1751 @ CHECK: rev16.w r2, r8                 @ encoding: [0x98,0xfa,0x98,0xf2]
   1752 @ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
   1753 @ CHECK: rev16ne r1, r2                 @ encoding: [0x51,0xba]
   1754 @ CHECK: rev16ne.w	r1, r8          @ encoding: [0x98,0xfa,0x98,0xf1]
   1755 
   1756 
   1757 @------------------------------------------------------------------------------
   1758 @ REVSH
   1759 @------------------------------------------------------------------------------
   1760         revsh.w r1, r2
   1761         revsh r2, r8
   1762         itt ne
   1763         revshne r1, r2
   1764         revshne r1, r8
   1765 
   1766 @ CHECK: revsh.w r1, r2                 @ encoding: [0x92,0xfa,0xb2,0xf1]
   1767 @ CHECK: revsh.w r2, r8                 @ encoding: [0x98,0xfa,0xb8,0xf2]
   1768 @ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
   1769 @ CHECK: revshne r1, r2                 @ encoding: [0xd1,0xba]
   1770 @ CHECK: revshne.w	r1, r8          @ encoding: [0x98,0xfa,0xb8,0xf1]
   1771 
   1772 
   1773 @------------------------------------------------------------------------------
   1774 @ ROR (immediate)
   1775 @------------------------------------------------------------------------------
   1776         ror r2, r3, #12
   1777         rors r8, r3, #31
   1778         rors.w r2, r3, #1
   1779         ror r2, r3, #4
   1780         rors r2, r12, #15
   1781 
   1782         ror r3, #19
   1783         rors r8, #2
   1784         rors.w r7, #5
   1785         ror.w r12, #21
   1786 
   1787 @ CHECK: ror.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x33,0x32]
   1788 @ CHECK: rors.w	r8, r3, #31             @ encoding: [0x5f,0xea,0xf3,0x78]
   1789 @ CHECK: rors.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x73,0x02]
   1790 @ CHECK: ror.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x33,0x12]
   1791 @ CHECK: rors.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xfc,0x32]
   1792 
   1793 @ CHECK: ror.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xf3,0x43]
   1794 @ CHECK: rors.w	r8, r8, #2              @ encoding: [0x5f,0xea,0xb8,0x08]
   1795 @ CHECK: rors.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x77,0x17]
   1796 @ CHECK: ror.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x7c,0x5c]
   1797 
   1798 
   1799 @------------------------------------------------------------------------------
   1800 @ ROR (register)
   1801 @------------------------------------------------------------------------------
   1802         ror r3, r4, r2
   1803         ror.w r1, r2
   1804         rors r3, r4, r8
   1805 
   1806 @ CHECK: ror.w	r3, r4, r2              @ encoding: [0x64,0xfa,0x02,0xf3]
   1807 @ CHECK: ror.w	r1, r1, r2              @ encoding: [0x61,0xfa,0x02,0xf1]
   1808 @ CHECK: rors.w	r3, r4, r8              @ encoding: [0x74,0xfa,0x08,0xf3]
   1809 
   1810 
   1811 @------------------------------------------------------------------------------
   1812 @ RRX
   1813 @------------------------------------------------------------------------------
   1814         rrx r1, r2
   1815         rrxs r1, r2
   1816         ite lt
   1817         rrxlt r9, r12
   1818         rrxsge r8, r3
   1819 
   1820 @ CHECK: rrx	r1, r2                  @ encoding: [0x4f,0xea,0x32,0x01]
   1821 @ CHECK: rrxs	r1, r2                  @ encoding: [0x5f,0xea,0x32,0x01]
   1822 @ CHECK: ite	lt                      @ encoding: [0xb4,0xbf]
   1823 @ CHECK: rrxlt	r9, r12                 @ encoding: [0x4f,0xea,0x3c,0x09]
   1824 @ CHECK: rrxsge	r8, r3                  @ encoding: [0x5f,0xea,0x33,0x08]
   1825 
   1826 @------------------------------------------------------------------------------
   1827 @ RSB (immediate)
   1828 @------------------------------------------------------------------------------
   1829         rsb r2, r5, #0xff000
   1830         rsbs r3, r12, #0xf
   1831         rsb r1, #0xff
   1832         rsb r1, r1, #0xff
   1833         rsb r11, r11, #0
   1834         rsb r9, #0
   1835         rsbs r3, r1, #0
   1836         rsb r3, r1, #0
   1837 
   1838 @ CHECK: rsb.w	r2, r5, #1044480        @ encoding: [0xc5,0xf5,0x7f,0x22]
   1839 @ CHECK: rsbs.w	r3, r12, #15            @ encoding: [0xdc,0xf1,0x0f,0x03]
   1840 @ CHECK: rsb.w	r1, r1, #255            @ encoding: [0xc1,0xf1,0xff,0x01]
   1841 @ CHECK: rsb.w	r1, r1, #255            @ encoding: [0xc1,0xf1,0xff,0x01]
   1842 @ CHECK: rsb.w	r11, r11, #0            @ encoding: [0xcb,0xf1,0x00,0x0b]
   1843 @ CHECK: rsb.w	r9, r9, #0              @ encoding: [0xc9,0xf1,0x00,0x09]
   1844 @ CHECK: rsbs	r3, r1, #0              @ encoding: [0x4b,0x42]
   1845 @ CHECK: rsb.w	r3, r1, #0              @ encoding: [0xc1,0xf1,0x00,0x03]
   1846 
   1847 
   1848 @------------------------------------------------------------------------------
   1849 @ RSB (register)
   1850 @------------------------------------------------------------------------------
   1851         rsb r4, r8
   1852         rsb r4, r9, r8
   1853         rsb r1, r4, r8, asr #3
   1854         rsbs r2, r1, r7, lsl #1
   1855 
   1856 @ CHECK: rsb	r4, r4, r8              @ encoding: [0xc4,0xeb,0x08,0x04]
   1857 @ CHECK: rsb	r4, r9, r8              @ encoding: [0xc9,0xeb,0x08,0x04]
   1858 @ CHECK: rsb	r1, r4, r8, asr #3      @ encoding: [0xc4,0xeb,0xe8,0x01]
   1859 @ CHECK: rsbs	r2, r1, r7, lsl #1      @ encoding: [0xd1,0xeb,0x47,0x02]
   1860 
   1861 
   1862 @------------------------------------------------------------------------------
   1863 @ SADD16
   1864 @------------------------------------------------------------------------------
   1865         sadd16 r3, r4, r8
   1866         it ne
   1867         sadd16ne r3, r4, r8
   1868 
   1869 @ CHECK: sadd16	r3, r4, r8              @ encoding: [0x94,0xfa,0x08,0xf3]
   1870 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   1871 @ CHECK: sadd16ne	r3, r4, r8      @ encoding: [0x94,0xfa,0x08,0xf3]
   1872 
   1873 
   1874 @------------------------------------------------------------------------------
   1875 @ SADD8
   1876 @------------------------------------------------------------------------------
   1877         sadd8 r3, r4, r8
   1878         it ne
   1879         sadd8ne r3, r4, r8
   1880 
   1881 @ CHECK: sadd8	r3, r4, r8              @ encoding: [0x84,0xfa,0x08,0xf3]
   1882 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   1883 @ CHECK: sadd8ne r3, r4, r8             @ encoding: [0x84,0xfa,0x08,0xf3]
   1884 
   1885 
   1886 @------------------------------------------------------------------------------
   1887 @ SASX
   1888 @------------------------------------------------------------------------------
   1889         saddsubx r9, r2, r7
   1890         it ne
   1891         saddsubxne r2, r5, r6
   1892         sasx r9, r2, r7
   1893         it ne
   1894         sasxne r2, r5, r6
   1895 
   1896 @ CHECK: sasx	r9, r2, r7              @ encoding: [0xa2,0xfa,0x07,0xf9]
   1897 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   1898 @ CHECK: sasxne	r2, r5, r6              @ encoding: [0xa5,0xfa,0x06,0xf2]
   1899 @ CHECK: sasx	r9, r2, r7              @ encoding: [0xa2,0xfa,0x07,0xf9]
   1900 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   1901 @ CHECK: sasxne	r2, r5, r6              @ encoding: [0xa5,0xfa,0x06,0xf2]
   1902 
   1903 
   1904 @------------------------------------------------------------------------------
   1905 @ SBC (immediate)
   1906 @------------------------------------------------------------------------------
   1907         sbc r0, r1, #4
   1908         sbcs r0, r1, #0
   1909         sbc r1, r2, #255
   1910         sbc r3, r7, #0x00550055
   1911         sbc r8, r12, #0xaa00aa00
   1912         sbc r9, r7, #0xa5a5a5a5
   1913         sbc r5, r3, #0x87000000
   1914         sbc r4, r2, #0x7f800000
   1915         sbc r4, r2, #0x00000680
   1916 
   1917 @ CHECK: sbc	r0, r1, #4              @ encoding: [0x61,0xf1,0x04,0x00]
   1918 @ CHECK: sbcs	r0, r1, #0              @ encoding: [0x71,0xf1,0x00,0x00]
   1919 @ CHECK: sbc	r1, r2, #255            @ encoding: [0x62,0xf1,0xff,0x01]
   1920 @ CHECK: sbc	r3, r7, #5570645        @ encoding: [0x67,0xf1,0x55,0x13]
   1921 @ CHECK: sbc	r8, r12, #2852170240    @ encoding: [0x6c,0xf1,0xaa,0x28]
   1922 @ CHECK: sbc	r9, r7, #2779096485     @ encoding: [0x67,0xf1,0xa5,0x39]
   1923 @ CHECK: sbc	r5, r3, #2264924160     @ encoding: [0x63,0xf1,0x07,0x45]
   1924 @ CHECK: sbc	r4, r2, #2139095040     @ encoding: [0x62,0xf1,0xff,0x44]
   1925 @ CHECK: sbc	r4, r2, #1664           @ encoding: [0x62,0xf5,0xd0,0x64]
   1926 
   1927 
   1928 @------------------------------------------------------------------------------
   1929 @ SBC (register)
   1930 @------------------------------------------------------------------------------
   1931         sbc r4, r5, r6
   1932         sbcs r4, r5, r6
   1933         sbc.w r9, r1, r3
   1934         sbcs.w r9, r1, r3
   1935         sbc	r0, r1, r3, ror #4
   1936         sbcs	r0, r1, r3, lsl #7
   1937         sbc.w	r0, r1, r3, lsr #31
   1938         sbcs.w	r0, r1, r3, asr #32
   1939 
   1940 @ CHECK: sbc.w	r4, r5, r6              @ encoding: [0x65,0xeb,0x06,0x04]
   1941 @ CHECK: sbcs.w	r4, r5, r6              @ encoding: [0x75,0xeb,0x06,0x04]
   1942 @ CHECK: sbc.w	r9, r1, r3              @ encoding: [0x61,0xeb,0x03,0x09]
   1943 @ CHECK: sbcs.w	r9, r1, r3              @ encoding: [0x71,0xeb,0x03,0x09]
   1944 @ CHECK: sbc.w	r0, r1, r3, ror #4      @ encoding: [0x61,0xeb,0x33,0x10]
   1945 @ CHECK: sbcs.w	r0, r1, r3, lsl #7      @ encoding: [0x71,0xeb,0xc3,0x10]
   1946 @ CHECK: sbc.w	r0, r1, r3, lsr #31     @ encoding: [0x61,0xeb,0xd3,0x70]
   1947 @ CHECK: sbcs.w	r0, r1, r3, asr #32     @ encoding: [0x71,0xeb,0x23,0x00]
   1948 
   1949 
   1950 @------------------------------------------------------------------------------
   1951 @ SBFX
   1952 @------------------------------------------------------------------------------
   1953         sbfx r4, r5, #16, #1
   1954         it gt
   1955         sbfxgt r4, r5, #16, #16
   1956 
   1957 @ CHECK: sbfx	r4, r5, #16, #1         @ encoding: [0x45,0xf3,0x00,0x44]
   1958 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   1959 @ CHECK: sbfxgt	r4, r5, #16, #16        @ encoding: [0x45,0xf3,0x0f,0x44]
   1960 
   1961 
   1962 @------------------------------------------------------------------------------
   1963 @ SEL
   1964 @------------------------------------------------------------------------------
   1965         sel r5, r9, r2
   1966         it le
   1967         selle r5, r9, r2
   1968 
   1969 @ CHECK: sel	r5, r9, r2              @ encoding: [0xa9,0xfa,0x82,0xf5]
   1970 @ CHECK: it	le                      @ encoding: [0xd8,0xbf]
   1971 @ CHECK: selle	r5, r9, r2              @ encoding: [0xa9,0xfa,0x82,0xf5]
   1972 
   1973 
   1974 @------------------------------------------------------------------------------
   1975 @ SEV
   1976 @------------------------------------------------------------------------------
   1977         sev.w
   1978         it eq
   1979         seveq.w
   1980 
   1981 @ CHECK: sev.w                           @ encoding: [0xaf,0xf3,0x04,0x80]
   1982 @ CHECK: it	eq                       @ encoding: [0x08,0xbf]
   1983 @ CHECK: seveq.w                         @ encoding: [0xaf,0xf3,0x04,0x80]
   1984 
   1985 
   1986 @------------------------------------------------------------------------------
   1987 @ SADD16/SADD8
   1988 @------------------------------------------------------------------------------
   1989         sadd16 r1, r2, r3
   1990         sadd8 r1, r2, r3
   1991         ite gt
   1992         sadd16gt r1, r2, r3
   1993         sadd8le r1, r2, r3
   1994 
   1995 @ CHECK: sadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x03,0xf1]
   1996 @ CHECK: sadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x03,0xf1]
   1997 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   1998 @ CHECK: sadd16gt	r1, r2, r3      @ encoding: [0x92,0xfa,0x03,0xf1]
   1999 @ CHECK: sadd8le r1, r2, r3             @ encoding: [0x82,0xfa,0x03,0xf1]
   2000 
   2001 
   2002 @------------------------------------------------------------------------------
   2003 @ SHASX
   2004 @------------------------------------------------------------------------------
   2005         shasx r4, r8, r2
   2006         it gt
   2007         shasxgt r4, r8, r2
   2008         shaddsubx r4, r8, r2
   2009         it gt
   2010         shaddsubxgt r4, r8, r2
   2011 
   2012 @ CHECK: shasx	r4, r8, r2              @ encoding: [0xa8,0xfa,0x22,0xf4]
   2013 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   2014 @ CHECK: shasxgt r4, r8, r2             @ encoding: [0xa8,0xfa,0x22,0xf4]
   2015 @ CHECK: shasx	r4, r8, r2              @ encoding: [0xa8,0xfa,0x22,0xf4]
   2016 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   2017 @ CHECK: shasxgt r4, r8, r2             @ encoding: [0xa8,0xfa,0x22,0xf4]
   2018 
   2019 
   2020 @------------------------------------------------------------------------------
   2021 @ SHASX
   2022 @------------------------------------------------------------------------------
   2023         shsax r4, r8, r2
   2024         it gt
   2025         shsaxgt r4, r8, r2
   2026         shsubaddx r4, r8, r2
   2027         it gt
   2028         shsubaddxgt r4, r8, r2
   2029 
   2030 @ CHECK: shsax	r4, r8, r2              @ encoding: [0xe8,0xfa,0x22,0xf4]
   2031 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   2032 @ CHECK: shsaxgt r4, r8, r2             @ encoding: [0xe8,0xfa,0x22,0xf4]
   2033 @ CHECK: shsax	r4, r8, r2              @ encoding: [0xe8,0xfa,0x22,0xf4]
   2034 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   2035 @ CHECK: shsaxgt r4, r8, r2             @ encoding: [0xe8,0xfa,0x22,0xf4]
   2036 
   2037 
   2038 @------------------------------------------------------------------------------
   2039 @ SHSUB16/SHSUB8
   2040 @------------------------------------------------------------------------------
   2041         shsub16 r4, r8, r2
   2042         shsub8 r4, r8, r2
   2043         itt gt
   2044         shsub16gt r4, r8, r2
   2045         shsub8gt r4, r8, r2
   2046 
   2047 @ CHECK: shsub16 r4, r8, r2             @ encoding: [0xd8,0xfa,0x22,0xf4]
   2048 @ CHECK: shsub8	r4, r8, r2              @ encoding: [0xc8,0xfa,0x22,0xf4]
   2049 @ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
   2050 @ CHECK: shsub16gt	r4, r8, r2      @ encoding: [0xd8,0xfa,0x22,0xf4]
   2051 @ CHECK: shsub8gt	r4, r8, r2      @ encoding: [0xc8,0xfa,0x22,0xf4]
   2052 
   2053 
   2054 @------------------------------------------------------------------------------
   2055 @ SMLABB/SMLABT/SMLATB/SMLATT
   2056 @------------------------------------------------------------------------------
   2057         smlabb r3, r1, r9, r0
   2058         smlabt r5, r6, r4, r1
   2059         smlatb r4, r2, r3, r2
   2060         smlatt r8, r3, r8, r4
   2061         itete gt
   2062         smlabbgt r3, r1, r9, r0
   2063         smlabtle r5, r6, r4, r1
   2064         smlatbgt r4, r2, r3, r2
   2065         smlattle r8, r3, r8, r4
   2066 
   2067 @ CHECK: smlabb	r3, r1, r9, r0          @ encoding: [0x11,0xfb,0x09,0x03]
   2068 @ CHECK: smlabt	r5, r6, r4, r1          @ encoding: [0x16,0xfb,0x14,0x15]
   2069 @ CHECK: smlatb	r4, r2, r3, r2          @ encoding: [0x12,0xfb,0x23,0x24]
   2070 @ CHECK: smlatt	r8, r3, r8, r4          @ encoding: [0x13,0xfb,0x38,0x48]
   2071 @ CHECK: itete	gt                      @ encoding: [0xcb,0xbf]
   2072 @ CHECK: smlabbgt	r3, r1, r9, r0  @ encoding: [0x11,0xfb,0x09,0x03]
   2073 @ CHECK: smlabtle	r5, r6, r4, r1  @ encoding: [0x16,0xfb,0x14,0x15]
   2074 @ CHECK: smlatbgt	r4, r2, r3, r2  @ encoding: [0x12,0xfb,0x23,0x24]
   2075 @ CHECK: smlattle	r8, r3, r8, r4  @ encoding: [0x13,0xfb,0x38,0x48]
   2076 
   2077 
   2078 @------------------------------------------------------------------------------
   2079 @ SMLAD/SMLADX
   2080 @------------------------------------------------------------------------------
   2081         smlad r2, r3, r5, r8
   2082         smladx r2, r3, r5, r8
   2083         itt hi
   2084         smladhi r2, r3, r5, r8
   2085         smladxhi r2, r3, r5, r8
   2086 
   2087 @ CHECK: smlad	r2, r3, r5, r8          @ encoding: [0x23,0xfb,0x05,0x82]
   2088 @ CHECK: smladx	r2, r3, r5, r8          @ encoding: [0x23,0xfb,0x15,0x82]
   2089 @ CHECK: itt	hi                      @ encoding: [0x84,0xbf]
   2090 @ CHECK: smladhi r2, r3, r5, r8         @ encoding: [0x23,0xfb,0x05,0x82]
   2091 @ CHECK: smladxhi	r2, r3, r5, r8  @ encoding: [0x23,0xfb,0x15,0x82]
   2092 
   2093 
   2094 @------------------------------------------------------------------------------
   2095 @ SMLAL
   2096 @------------------------------------------------------------------------------
   2097         smlal r2, r3, r5, r8
   2098         it eq
   2099         smlaleq r2, r3, r5, r8
   2100 
   2101 @ CHECK: smlal	r2, r3, r5, r8          @ encoding: [0xc5,0xfb,0x08,0x23]
   2102 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   2103 @ CHECK: smlaleq r2, r3, r5, r8         @ encoding: [0xc5,0xfb,0x08,0x23]
   2104 
   2105 
   2106 @------------------------------------------------------------------------------
   2107 @ SMLALBB/SMLALBT/SMLALTB/SMLALTT
   2108 @------------------------------------------------------------------------------
   2109         smlalbb r3, r1, r9, r0
   2110         smlalbt r5, r6, r4, r1
   2111         smlaltb r4, r2, r3, r2
   2112         smlaltt r8, r3, r8, r4
   2113         iteet ge
   2114         smlalbbge r3, r1, r9, r0
   2115         smlalbtlt r5, r6, r4, r1
   2116         smlaltblt r4, r2, r3, r2
   2117         smlalttge r8, r3, r8, r4
   2118 
   2119 @ CHECK: smlalbb r3, r1, r9, r0         @ encoding: [0xc9,0xfb,0x80,0x31]
   2120 @ CHECK: smlalbt r5, r6, r4, r1         @ encoding: [0xc4,0xfb,0x91,0x56]
   2121 @ CHECK: smlaltb r4, r2, r3, r2         @ encoding: [0xc3,0xfb,0xa2,0x42]
   2122 @ CHECK: smlaltt r8, r3, r8, r4         @ encoding: [0xc8,0xfb,0xb4,0x83]
   2123 @ CHECK: iteet	ge                      @ encoding: [0xad,0xbf]
   2124 @ CHECK: smlalbbge	r3, r1, r9, r0  @ encoding: [0xc9,0xfb,0x80,0x31]
   2125 @ CHECK: smlalbtlt	r5, r6, r4, r1  @ encoding: [0xc4,0xfb,0x91,0x56]
   2126 @ CHECK: smlaltblt	r4, r2, r3, r2  @ encoding: [0xc3,0xfb,0xa2,0x42]
   2127 @ CHECK: smlalttge	r8, r3, r8, r4  @ encoding: [0xc8,0xfb,0xb4,0x83]
   2128 
   2129 
   2130 @------------------------------------------------------------------------------
   2131 @ SMLALD/SMLALDX
   2132 @------------------------------------------------------------------------------
   2133         smlald r2, r3, r5, r8
   2134         smlaldx r2, r3, r5, r8
   2135         ite eq
   2136         smlaldeq r2, r3, r5, r8
   2137         smlaldxne r2, r3, r5, r8
   2138 
   2139 @ CHECK: smlald	r2, r3, r5, r8          @ encoding: [0xc5,0xfb,0xc8,0x23]
   2140 @ CHECK: smlaldx r2, r3, r5, r8         @ encoding: [0xc5,0xfb,0xd8,0x23]
   2141 @ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
   2142 @ CHECK: smlaldeq	r2, r3, r5, r8  @ encoding: [0xc5,0xfb,0xc8,0x23]
   2143 @ CHECK: smlaldxne	r2, r3, r5, r8  @ encoding: [0xc5,0xfb,0xd8,0x23]
   2144 
   2145 
   2146 @------------------------------------------------------------------------------
   2147 @ SMLAWB/SMLAWT
   2148 @------------------------------------------------------------------------------
   2149         smlawb r2, r3, r10, r8
   2150         smlawt r8, r3, r5, r9
   2151         ite eq
   2152         smlawbeq r2, r7, r5, r8
   2153         smlawtne r1, r3, r0, r8
   2154 
   2155 @ CHECK: smlawb	r2, r3, r10, r8         @ encoding: [0x33,0xfb,0x0a,0x82]
   2156 @ CHECK: smlawt	r8, r3, r5, r9          @ encoding: [0x33,0xfb,0x15,0x98]
   2157 @ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
   2158 @ CHECK: smlawbeq	r2, r7, r5, r8  @ encoding: [0x37,0xfb,0x05,0x82]
   2159 @ CHECK: smlawtne	r1, r3, r0, r8  @ encoding: [0x33,0xfb,0x10,0x81]
   2160 
   2161 
   2162 @------------------------------------------------------------------------------
   2163 @ SMLSD/SMLSDX
   2164 @------------------------------------------------------------------------------
   2165         smlsd r2, r3, r5, r8
   2166         smlsdx r2, r3, r5, r8
   2167         ite le
   2168         smlsdle r2, r3, r5, r8
   2169         smlsdxgt r2, r3, r5, r8
   2170 
   2171 @ CHECK: smlsd	r2, r3, r5, r8          @ encoding: [0x43,0xfb,0x05,0x82]
   2172 @ CHECK: smlsdx	r2, r3, r5, r8          @ encoding: [0x43,0xfb,0x15,0x82]
   2173 @ CHECK: ite	le                      @ encoding: [0xd4,0xbf]
   2174 @ CHECK: smlsdle	r2, r3, r5, r8  @ encoding: [0x43,0xfb,0x05,0x82]
   2175 @ CHECK: smlsdxgt	r2, r3, r5, r8  @ encoding: [0x43,0xfb,0x15,0x82]
   2176 
   2177 
   2178 @------------------------------------------------------------------------------
   2179 @ SMLSLD/SMLSLDX
   2180 @------------------------------------------------------------------------------
   2181         smlsld r2, r9, r5, r1
   2182         smlsldx r4, r11, r2, r8
   2183         ite ge
   2184         smlsldge r8, r2, r5, r6
   2185         smlsldxlt r1, r0, r3, r8
   2186 
   2187 @ CHECK: smlsld	r2, r9, r5, r1          @ encoding: [0xd5,0xfb,0xc1,0x29]
   2188 @ CHECK: smlsldx	r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b]
   2189 @ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
   2190 @ CHECK: smlsldge	r8, r2, r5, r6  @ encoding: [0xd5,0xfb,0xc6,0x82]
   2191 @ CHECK: smlsldxlt	r1, r0, r3, r8  @ encoding: [0xd3,0xfb,0xd8,0x10]
   2192 
   2193 
   2194 @------------------------------------------------------------------------------
   2195 @ SMMLA/SMMLAR
   2196 @------------------------------------------------------------------------------
   2197         smmla r1, r2, r3, r4
   2198         smmlar r4, r3, r2, r1
   2199         ite lo
   2200         smmlalo r1, r2, r3, r4
   2201         smmlarcs r4, r3, r2, r1
   2202 
   2203 @ CHECK: smmla	r1, r2, r3, r4          @ encoding: [0x52,0xfb,0x03,0x41]
   2204 @ CHECK: smmlar	r4, r3, r2, r1          @ encoding: [0x53,0xfb,0x12,0x14]
   2205 @ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
   2206 @ CHECK: smmlalo	r1, r2, r3, r4  @ encoding: [0x52,0xfb,0x03,0x41]
   2207 @ CHECK: smmlarhs	r4, r3, r2, r1  @ encoding: [0x53,0xfb,0x12,0x14]
   2208 
   2209 
   2210 @------------------------------------------------------------------------------
   2211 @ SMMLS/SMMLSR
   2212 @------------------------------------------------------------------------------
   2213         smmls r1, r2, r3, r4
   2214         smmlsr r4, r3, r2, r1
   2215         ite lo
   2216         smmlslo r1, r2, r3, r4
   2217         smmlsrcs r4, r3, r2, r1
   2218 
   2219 @ CHECK: smmls	r1, r2, r3, r4          @ encoding: [0x62,0xfb,0x03,0x41]
   2220 @ CHECK: smmlsr	r4, r3, r2, r1          @ encoding: [0x63,0xfb,0x12,0x14]
   2221 @ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
   2222 @ CHECK: smmlslo	r1, r2, r3, r4  @ encoding: [0x62,0xfb,0x03,0x41]
   2223 @ CHECK: smmlsrhs	r4, r3, r2, r1  @ encoding: [0x63,0xfb,0x12,0x14]
   2224 
   2225 
   2226 @------------------------------------------------------------------------------
   2227 @ SMMUL/SMMULR
   2228 @------------------------------------------------------------------------------
   2229         smmul r2, r3, r4
   2230         smmulr r3, r2, r1
   2231         ite cc
   2232         smmulcc r2, r3, r4
   2233         smmulrhs r3, r2, r1
   2234 
   2235 @ CHECK: smmul	r2, r3, r4              @ encoding: [0x53,0xfb,0x04,0xf2]
   2236 @ CHECK: smmulr	r3, r2, r1              @ encoding: [0x52,0xfb,0x11,0xf3]
   2237 @ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
   2238 @ CHECK: smmullo	r2, r3, r4      @ encoding: [0x53,0xfb,0x04,0xf2]
   2239 @ CHECK: smmulrhs	r3, r2, r1      @ encoding: [0x52,0xfb,0x11,0xf3]
   2240 
   2241 
   2242 @------------------------------------------------------------------------------
   2243 @ SMUAD/SMUADX
   2244 @------------------------------------------------------------------------------
   2245         smuad r2, r3, r4
   2246         smuadx r3, r2, r1
   2247         ite lt
   2248         smuadlt r2, r3, r4
   2249         smuadxge r3, r2, r1
   2250 
   2251 @ CHECK: smuad	r2, r3, r4              @ encoding: [0x23,0xfb,0x04,0xf2]
   2252 @ CHECK: smuadx	r3, r2, r1              @ encoding: [0x22,0xfb,0x11,0xf3]
   2253 @ CHECK: ite	lt                      @ encoding: [0xb4,0xbf]
   2254 @ CHECK: smuadlt	r2, r3, r4      @ encoding: [0x23,0xfb,0x04,0xf2]
   2255 @ CHECK: smuadxge	r3, r2, r1      @ encoding: [0x22,0xfb,0x11,0xf3]
   2256 
   2257 
   2258 @------------------------------------------------------------------------------
   2259 @ SMULBB/SMULBT/SMULTB/SMULTT
   2260 @------------------------------------------------------------------------------
   2261         smulbb r3, r9, r0
   2262         smulbt r5, r4, r1
   2263         smultb r4, r2, r2
   2264         smultt r8, r3, r4
   2265         itete ge
   2266         smulbbge r1, r9, r0
   2267         smulbtlt r5, r6, r4
   2268         smultbge r2, r3, r2
   2269         smulttlt r8, r3, r4
   2270 
   2271 @ CHECK: smulbb	r3, r9, r0              @ encoding: [0x19,0xfb,0x00,0xf3]
   2272 @ CHECK: smulbt	r5, r4, r1              @ encoding: [0x14,0xfb,0x11,0xf5]
   2273 @ CHECK: smultb	r4, r2, r2              @ encoding: [0x12,0xfb,0x22,0xf4]
   2274 @ CHECK: smultt	r8, r3, r4              @ encoding: [0x13,0xfb,0x34,0xf8]
   2275 @ CHECK: itete	ge                      @ encoding: [0xab,0xbf]
   2276 @ CHECK: smulbbge	r1, r9, r0      @ encoding: [0x19,0xfb,0x00,0xf1]
   2277 @ CHECK: smulbtlt	r5, r6, r4      @ encoding: [0x16,0xfb,0x14,0xf5]
   2278 @ CHECK: smultbge	r2, r3, r2      @ encoding: [0x13,0xfb,0x22,0xf2]
   2279 @ CHECK: smulttlt	r8, r3, r4      @ encoding: [0x13,0xfb,0x34,0xf8]
   2280 
   2281 
   2282 @------------------------------------------------------------------------------
   2283 @ SMULL
   2284 @------------------------------------------------------------------------------
   2285         smull r3, r9, r0, r1
   2286         it eq
   2287         smulleq r8, r3, r4, r5
   2288 
   2289 @ CHECK: smull	r3, r9, r0, r1          @ encoding: [0x80,0xfb,0x01,0x39]
   2290 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   2291 @ CHECK: smulleq r8, r3, r4, r5         @ encoding: [0x84,0xfb,0x05,0x83]
   2292 
   2293 
   2294 @------------------------------------------------------------------------------
   2295 @ SMULWB/SMULWT
   2296 @------------------------------------------------------------------------------
   2297         smulwb r3, r9, r0
   2298         smulwt r3, r9, r2
   2299         ite gt
   2300         smulwbgt r3, r9, r0
   2301         smulwtle r3, r9, r2
   2302 
   2303 @ CHECK: smulwb	r3, r9, r0              @ encoding: [0x39,0xfb,0x00,0xf3]
   2304 @ CHECK: smulwt	r3, r9, r2              @ encoding: [0x39,0xfb,0x12,0xf3]
   2305 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   2306 @ CHECK: smulwbgt	r3, r9, r0      @ encoding: [0x39,0xfb,0x00,0xf3]
   2307 @ CHECK: smulwtle	r3, r9, r2      @ encoding: [0x39,0xfb,0x12,0xf3]
   2308 
   2309 
   2310 @------------------------------------------------------------------------------
   2311 @ SMUSD/SMUSDX
   2312 @------------------------------------------------------------------------------
   2313         smusd r3, r0, r1
   2314         smusdx r3, r9, r2
   2315         ite eq
   2316         smusdeq r8, r3, r2
   2317         smusdxne r7, r4, r3
   2318 
   2319 @ CHECK: smusd	r3, r0, r1              @ encoding: [0x40,0xfb,0x01,0xf3]
   2320 @ CHECK: smusdx	r3, r9, r2              @ encoding: [0x49,0xfb,0x12,0xf3]
   2321 @ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
   2322 @ CHECK: smusdeq	r8, r3, r2      @ encoding: [0x43,0xfb,0x02,0xf8]
   2323 @ CHECK: smusdxne	r7, r4, r3      @ encoding: [0x44,0xfb,0x13,0xf7]
   2324 
   2325 
   2326 @------------------------------------------------------------------------------
   2327 @ SRS
   2328 @------------------------------------------------------------------------------
   2329         srsdb sp, #1
   2330         srsia sp, #0
   2331 
   2332         srsdb sp!, #19
   2333         srsia sp!, #2
   2334 
   2335         srsea sp, #10
   2336         srsfd sp, #9
   2337 
   2338         srsea sp!, #5
   2339         srsfd sp!, #5
   2340 
   2341         srs sp, #5
   2342         srs sp!, #5
   2343 
   2344 @ CHECK: srsdb	sp, #1                  @ encoding: [0x0d,0xe8,0x01,0xc0]
   2345 @ CHECK: srsia	sp, #0                  @ encoding: [0x8d,0xe9,0x00,0xc0]
   2346 @ CHECK: srsdb	sp!, #19                @ encoding: [0x2d,0xe8,0x13,0xc0]
   2347 @ CHECK: srsia	sp!, #2                 @ encoding: [0xad,0xe9,0x02,0xc0]
   2348 @ CHECK: srsdb	sp, #10                 @ encoding: [0x0d,0xe8,0x0a,0xc0]
   2349 @ CHECK: srsia	sp, #9                  @ encoding: [0x8d,0xe9,0x09,0xc0]
   2350 @ CHECK: srsdb	sp!, #5                 @ encoding: [0x2d,0xe8,0x05,0xc0]
   2351 @ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
   2352 @ CHECK: srsia	sp, #5                  @ encoding: [0x8d,0xe9,0x05,0xc0]
   2353 @ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
   2354 
   2355         srsdb #1
   2356         srsia #0
   2357 
   2358         srsdb #19!
   2359         srsia #2!
   2360 
   2361         srsea #10
   2362         srsfd #9
   2363 
   2364         srsea #5!
   2365         srsfd #5!
   2366 
   2367         srs #5
   2368         srs #5!
   2369 
   2370 @ CHECK: srsdb	sp, #1                  @ encoding: [0x0d,0xe8,0x01,0xc0]
   2371 @ CHECK: srsia	sp, #0                  @ encoding: [0x8d,0xe9,0x00,0xc0]
   2372 @ CHECK: srsdb	sp!, #19                @ encoding: [0x2d,0xe8,0x13,0xc0]
   2373 @ CHECK: srsia	sp!, #2                 @ encoding: [0xad,0xe9,0x02,0xc0]
   2374 @ CHECK: srsdb	sp, #10                 @ encoding: [0x0d,0xe8,0x0a,0xc0]
   2375 @ CHECK: srsia	sp, #9                  @ encoding: [0x8d,0xe9,0x09,0xc0]
   2376 @ CHECK: srsdb	sp!, #5                 @ encoding: [0x2d,0xe8,0x05,0xc0]
   2377 @ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
   2378 @ CHECK: srsia	sp, #5                  @ encoding: [0x8d,0xe9,0x05,0xc0]
   2379 @ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
   2380 
   2381 
   2382 @------------------------------------------------------------------------------
   2383 @ SSAT
   2384 @------------------------------------------------------------------------------
   2385         ssat	r8, #1, r10
   2386         ssat	r8, #1, r10, lsl #0
   2387         ssat	r8, #1, r10, lsl #31
   2388         ssat	r8, #1, r10, asr #1
   2389 
   2390 @ CHECK: ssat	r8, #1, r10             @ encoding: [0x0a,0xf3,0x00,0x08]
   2391 @ CHECK: ssat	r8, #1, r10             @ encoding: [0x0a,0xf3,0x00,0x08]
   2392 @ CHECK: ssat	r8, #1, r10, lsl #31    @ encoding: [0x0a,0xf3,0xc0,0x78]
   2393 @ CHECK: ssat	r8, #1, r10, asr #1     @ encoding: [0x2a,0xf3,0x40,0x08]
   2394 
   2395 
   2396 @------------------------------------------------------------------------------
   2397 @ SSAT16
   2398 @------------------------------------------------------------------------------
   2399         ssat16	r2, #1, r7
   2400         ssat16	r3, #16, r5
   2401 
   2402 @ CHECK: ssat16	r2, #1, r7              @ encoding: [0x27,0xf3,0x00,0x02]
   2403 @ CHECK: ssat16	r3, #16, r5             @ encoding: [0x25,0xf3,0x0f,0x03]
   2404 
   2405 
   2406 @------------------------------------------------------------------------------
   2407 @ SSAX
   2408 @------------------------------------------------------------------------------
   2409         ssubaddx r2, r3, r4
   2410         it lt
   2411         ssubaddxlt r2, r3, r4
   2412         ssax r2, r3, r4
   2413         it lt
   2414         ssaxlt r2, r3, r4
   2415 
   2416 @ CHECK: ssax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
   2417 @ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
   2418 @ CHECK: ssaxlt	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
   2419 @ CHECK: ssax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
   2420 @ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
   2421 @ CHECK: ssaxlt	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
   2422 
   2423 
   2424 @------------------------------------------------------------------------------
   2425 @ SSUB16/SSUB8
   2426 @------------------------------------------------------------------------------
   2427         ssub16 r1, r0, r6
   2428         ssub8 r9, r2, r4
   2429         ite ne
   2430         ssub16ne r5, r3, r2
   2431         ssub8eq r5, r1, r2
   2432 
   2433 @ CHECK: ssub16	r1, r0, r6              @ encoding: [0xd0,0xfa,0x06,0xf1]
   2434 @ CHECK: ssub8	r9, r2, r4              @ encoding: [0xc2,0xfa,0x04,0xf9]
   2435 @ CHECK: ite	ne                      @ encoding: [0x14,0xbf]
   2436 @ CHECK: ssub16ne	r5, r3, r2      @ encoding: [0xd3,0xfa,0x02,0xf5]
   2437 @ CHECK: ssub8eq	r5, r1, r2      @ encoding: [0xc1,0xfa,0x02,0xf5]
   2438 
   2439 
   2440 @------------------------------------------------------------------------------
   2441 @ STC{L}/STC2{L}
   2442 @------------------------------------------------------------------------------
   2443         stc2 p0, c8, [r1, #4]
   2444         stc2 p1, c7, [r2]
   2445         stc2 p2, c6, [r3, #-224]
   2446         stc2 p3, c5, [r4, #-120]!
   2447         stc2 p4, c4, [r5], #16
   2448         stc2 p5, c3, [r6], #-72
   2449         stc2l p6, c2, [r7, #4]
   2450         stc2l p7, c1, [r8]
   2451         stc2l p8, c0, [r9, #-224]
   2452         stc2l p9, c1, [r10, #-120]!
   2453         stc2l p10, c2, [r11], #16
   2454         stc2l p11, c3, [r12], #-72
   2455 
   2456         stc p12, c4, [r0, #4]
   2457         stc p13, c5, [r1]
   2458         stc p14, c6, [r2, #-224]
   2459         stc p15, c7, [r3, #-120]!
   2460         stc p5, c8, [r4], #16
   2461         stc p4, c9, [r5], #-72
   2462         stcl p3, c10, [r6, #4]
   2463         stcl p2, c11, [r7]
   2464         stcl p1, c12, [r8, #-224]
   2465         stcl p0, c13, [r9, #-120]!
   2466         stcl p6, c14, [r10], #16
   2467         stcl p7, c15, [r11], #-72
   2468 
   2469         stc2 p2, c8, [r1], { 25 }
   2470 
   2471 @ CHECK: stc2	p0, c8, [r1, #4]        @ encoding: [0x81,0xfd,0x01,0x80]
   2472 @ CHECK: stc2	p1, c7, [r2]            @ encoding: [0x82,0xfd,0x00,0x71]
   2473 @ CHECK: stc2	p2, c6, [r3, #-224]     @ encoding: [0x03,0xfd,0x38,0x62]
   2474 @ CHECK: stc2	p3, c5, [r4, #-120]!    @ encoding: [0x24,0xfd,0x1e,0x53]
   2475 @ CHECK: stc2	p4, c4, [r5], #16       @ encoding: [0xa5,0xfc,0x04,0x44]
   2476 @ CHECK: stc2	p5, c3, [r6], #-72      @ encoding: [0x26,0xfc,0x12,0x35]
   2477 @ CHECK: stc2l	p6, c2, [r7, #4]        @ encoding: [0xc7,0xfd,0x01,0x26]
   2478 @ CHECK: stc2l	p7, c1, [r8]            @ encoding: [0xc8,0xfd,0x00,0x17]
   2479 @ CHECK: stc2l	p8, c0, [r9, #-224]     @ encoding: [0x49,0xfd,0x38,0x08]
   2480 @ CHECK: stc2l	p9, c1, [r10, #-120]!   @ encoding: [0x6a,0xfd,0x1e,0x19]
   2481 @ CHECK: stc2l	p10, c2, [r11], #16     @ encoding: [0xeb,0xfc,0x04,0x2a]
   2482 @ CHECK: stc2l	p11, c3, [r12], #-72    @ encoding: [0x6c,0xfc,0x12,0x3b]
   2483 
   2484 @ CHECK: stc	p12, c4, [r0, #4]       @ encoding: [0x80,0xed,0x01,0x4c]
   2485 @ CHECK: stc	p13, c5, [r1]           @ encoding: [0x81,0xed,0x00,0x5d]
   2486 @ CHECK: stc	p14, c6, [r2, #-224]    @ encoding: [0x02,0xed,0x38,0x6e]
   2487 @ CHECK: stc	p15, c7, [r3, #-120]!   @ encoding: [0x23,0xed,0x1e,0x7f]
   2488 @ CHECK: stc	p5, c8, [r4], #16       @ encoding: [0xa4,0xec,0x04,0x85]
   2489 @ CHECK: stc	p4, c9, [r5], #-72      @ encoding: [0x25,0xec,0x12,0x94]
   2490 @ CHECK: stcl	p3, c10, [r6, #4]       @ encoding: [0xc6,0xed,0x01,0xa3]
   2491 @ CHECK: stcl	p2, c11, [r7]           @ encoding: [0xc7,0xed,0x00,0xb2]
   2492 @ CHECK: stcl	p1, c12, [r8, #-224]    @ encoding: [0x48,0xed,0x38,0xc1]
   2493 @ CHECK: stcl	p0, c13, [r9, #-120]!   @ encoding: [0x69,0xed,0x1e,0xd0]
   2494 @ CHECK: stcl	p6, c14, [r10], #16     @ encoding: [0xea,0xec,0x04,0xe6]
   2495 @ CHECK: stcl	p7, c15, [r11], #-72    @ encoding: [0x6b,0xec,0x12,0xf7]
   2496 
   2497 @ CHECK: stc2	p2, c8, [r1], {25}      @ encoding: [0x81,0xfc,0x19,0x82]
   2498 
   2499 
   2500 @------------------------------------------------------------------------------
   2501 @ STMIA
   2502 @------------------------------------------------------------------------------
   2503         stmia.w r4, {r4, r5, r8, r9}
   2504         stmia.w r4, {r5, r6}
   2505         stmia.w r5!, {r3, r8}
   2506         stm.w r4, {r4, r5, r8, r9}
   2507         stm.w r4, {r5, r6}
   2508         stm.w r5!, {r3, r8}
   2509         stm.w r5!, {r1, r2}
   2510         stm.w r2, {r1, r2}
   2511 
   2512         stmia r4, {r4, r5, r8, r9}
   2513         stmia r4, {r5, r6}
   2514         stmia r5!, {r3, r8}
   2515         stm r4, {r4, r5, r8, r9}
   2516         stm r4, {r5, r6}
   2517         stm r5!, {r3, r8}
   2518         stmea r5!, {r3, r8}
   2519 
   2520 @ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
   2521 @ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
   2522 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2523 @ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
   2524 @ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
   2525 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2526 @ CHECK: stm.w	r5!, {r1, r2}           @ encoding: [0xa5,0xe8,0x06,0x00]
   2527 @ CHECK: stm.w	r2, {r1, r2}            @ encoding: [0x82,0xe8,0x06,0x00]
   2528 
   2529 @ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
   2530 @ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
   2531 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2532 @ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
   2533 @ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
   2534 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2535 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2536 
   2537 
   2538 @------------------------------------------------------------------------------
   2539 @ STMDB
   2540 @------------------------------------------------------------------------------
   2541         stmdb r4, {r4, r5, r8, r9}
   2542         stmdb r4, {r5, r6}
   2543         stmdb r5!, {r3, r8}
   2544         stmea r5!, {r3, r8}
   2545         stmdb.w r5, {r0, r1}
   2546 
   2547 @ CHECK: stmdb	r4, {r4, r5, r8, r9}    @ encoding: [0x04,0xe9,0x30,0x03]
   2548 @ CHECK: stmdb	r4, {r5, r6}            @ encoding: [0x04,0xe9,0x60,0x00]
   2549 @ CHECK: stmdb	r5!, {r3, r8}           @ encoding: [0x25,0xe9,0x08,0x01]
   2550 @ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
   2551 @ CHECK: stmdb	r5, {r0, r1}            @ encoding: [0x05,0xe9,0x03,0x00]
   2552 
   2553 
   2554 @------------------------------------------------------------------------------
   2555 @ STR(immediate)
   2556 @------------------------------------------------------------------------------
   2557         str r5, [r5, #-4]
   2558         str r5, [r6, #32]
   2559         str r5, [r6, #33]
   2560         str r5, [r6, #257]
   2561         str.w pc, [r7, #257]
   2562         str r2, [r4, #255]!
   2563         str r8, [sp, #4]!
   2564         str lr, [sp, #-4]!
   2565         str r2, [r4], #255
   2566         str r8, [sp], #4
   2567         str lr, [sp], #-4
   2568 
   2569 @ CHECK: str	r5, [r5, #-4]           @ encoding: [0x45,0xf8,0x04,0x5c]
   2570 @ CHECK: str	r5, [r6, #32]           @ encoding: [0x35,0x62]
   2571 @ CHECK: str.w	r5, [r6, #33]           @ encoding: [0xc6,0xf8,0x21,0x50]
   2572 @ CHECK: str.w	r5, [r6, #257]          @ encoding: [0xc6,0xf8,0x01,0x51]
   2573 @ CHECK: str.w	pc, [r7, #257]          @ encoding: [0xc7,0xf8,0x01,0xf1]
   2574 @ CHECK: str	r2, [r4, #255]!         @ encoding: [0x44,0xf8,0xff,0x2f]
   2575 @ CHECK: str	r8, [sp, #4]!           @ encoding: [0x4d,0xf8,0x04,0x8f]
   2576 @ CHECK: str	lr, [sp, #-4]!          @ encoding: [0x4d,0xf8,0x04,0xed]
   2577 @ CHECK: str	r2, [r4], #255          @ encoding: [0x44,0xf8,0xff,0x2b]
   2578 @ CHECK: str	r8, [sp], #4            @ encoding: [0x4d,0xf8,0x04,0x8b]
   2579 @ CHECK: str	lr, [sp], #-4           @ encoding: [0x4d,0xf8,0x04,0xe9]
   2580 
   2581 
   2582 @------------------------------------------------------------------------------
   2583 @ STR(register)
   2584 @------------------------------------------------------------------------------
   2585         str r1, [r8, r1]
   2586         str.w r4, [r5, r2]
   2587         str r6, [r0, r2, lsl #3]
   2588         str r8, [r8, r2, lsl #2]
   2589         str r7, [sp, r2, lsl #1]
   2590         str r7, [sp, r2, lsl #0]
   2591 
   2592 @ CHECK: str.w	r1, [r8, r1]            @ encoding: [0x48,0xf8,0x01,0x10]
   2593 @ CHECK: str.w	r4, [r5, r2]            @ encoding: [0x45,0xf8,0x02,0x40]
   2594 @ CHECK: str.w	r6, [r0, r2, lsl #3]    @ encoding: [0x40,0xf8,0x32,0x60]
   2595 @ CHECK: str.w	r8, [r8, r2, lsl #2]    @ encoding: [0x48,0xf8,0x22,0x80]
   2596 @ CHECK: str.w	r7, [sp, r2, lsl #1]    @ encoding: [0x4d,0xf8,0x12,0x70]
   2597 @ CHECK: str.w	r7, [sp, r2]            @ encoding: [0x4d,0xf8,0x02,0x70]
   2598 
   2599 
   2600 @------------------------------------------------------------------------------
   2601 @ STRB(immediate)
   2602 @------------------------------------------------------------------------------
   2603         strb r5, [r5, #-4]
   2604         strb r5, [r6, #32]
   2605         strb r5, [r6, #33]
   2606         strb r5, [r6, #257]
   2607         strb.w lr, [r7, #257]
   2608         strb r5, [r8, #255]!
   2609         strb r2, [r5, #4]!
   2610         strb r1, [r4, #-4]!
   2611         strb lr, [r3], #255
   2612         strb r9, [r2], #4
   2613         strb r3, [sp], #-4
   2614         strb r4, [r8, #-0]!
   2615 
   2616 @ CHECK: strb	r5, [r5, #-4]           @ encoding: [0x05,0xf8,0x04,0x5c]
   2617 @ CHECK: strb.w	r5, [r6, #32]           @ encoding: [0x86,0xf8,0x20,0x50]
   2618 @ CHECK: strb.w	r5, [r6, #33]           @ encoding: [0x86,0xf8,0x21,0x50]
   2619 @ CHECK: strb.w	r5, [r6, #257]          @ encoding: [0x86,0xf8,0x01,0x51]
   2620 @ CHECK: strb.w	lr, [r7, #257]          @ encoding: [0x87,0xf8,0x01,0xe1]
   2621 @ CHECK: strb	r5, [r8, #255]!         @ encoding: [0x08,0xf8,0xff,0x5f]
   2622 @ CHECK: strb	r2, [r5, #4]!           @ encoding: [0x05,0xf8,0x04,0x2f]
   2623 @ CHECK: strb	r1, [r4, #-4]!          @ encoding: [0x04,0xf8,0x04,0x1d]
   2624 @ CHECK: strb	lr, [r3], #255          @ encoding: [0x03,0xf8,0xff,0xeb]
   2625 @ CHECK: strb	r9, [r2], #4            @ encoding: [0x02,0xf8,0x04,0x9b]
   2626 @ CHECK: strb	r3, [sp], #-4           @ encoding: [0x0d,0xf8,0x04,0x39]
   2627 @ CHECK: strb	r4, [r8, #-0]!          @ encoding: [0x08,0xf8,0x00,0x4d]
   2628 
   2629 
   2630 @------------------------------------------------------------------------------
   2631 @ STRB(register)
   2632 @------------------------------------------------------------------------------
   2633         strb r1, [r8, r1]
   2634         strb.w r4, [r5, r2]
   2635         strb r6, [r0, r2, lsl #3]
   2636         strb r8, [r8, r2, lsl #2]
   2637         strb r7, [sp, r2, lsl #1]
   2638         strb r7, [sp, r2, lsl #0]
   2639 
   2640 @ CHECK: strb.w	r1, [r8, r1]            @ encoding: [0x08,0xf8,0x01,0x10]
   2641 @ CHECK: strb.w	r4, [r5, r2]            @ encoding: [0x05,0xf8,0x02,0x40]
   2642 @ CHECK: strb.w	r6, [r0, r2, lsl #3]    @ encoding: [0x00,0xf8,0x32,0x60]
   2643 @ CHECK: strb.w	r8, [r8, r2, lsl #2]    @ encoding: [0x08,0xf8,0x22,0x80]
   2644 @ CHECK: strb.w	r7, [sp, r2, lsl #1]    @ encoding: [0x0d,0xf8,0x12,0x70]
   2645 @ CHECK: strb.w	r7, [sp, r2]            @ encoding: [0x0d,0xf8,0x02,0x70]
   2646 
   2647 
   2648 @------------------------------------------------------------------------------
   2649 @ STRBT
   2650 @------------------------------------------------------------------------------
   2651         strbt r1, [r2]
   2652         strbt r1, [r8, #0]
   2653         strbt r1, [r8, #3]
   2654         strbt r1, [r8, #255]
   2655 
   2656 @ CHECK: strbt	r1, [r2]                @ encoding: [0x02,0xf8,0x00,0x1e]
   2657 @ CHECK: strbt	r1, [r8]                @ encoding: [0x08,0xf8,0x00,0x1e]
   2658 @ CHECK: strbt	r1, [r8, #3]            @ encoding: [0x08,0xf8,0x03,0x1e]
   2659 @ CHECK: strbt	r1, [r8, #255]          @ encoding: [0x08,0xf8,0xff,0x1e]
   2660 
   2661 
   2662 @------------------------------------------------------------------------------
   2663 @ STRD
   2664 @------------------------------------------------------------------------------
   2665         strd r3, r5, [r6, #24]
   2666         strd r3, r5, [r6, #24]!
   2667         strd r3, r5, [r6], #4
   2668         strd r3, r5, [r6], #-8
   2669         strd r3, r5, [r6]
   2670         strd r8, r1, [r3, #0]
   2671         strd r0, r1, [r2, #-0]
   2672         strd r0, r1, [r2, #-0]!
   2673         strd r0, r1, [r2], #-0
   2674 
   2675 @ CHECK: strd	r3, r5, [r6, #24]       @ encoding: [0xc6,0xe9,0x06,0x35]
   2676 @ CHECK: strd	r3, r5, [r6, #24]!      @ encoding: [0xe6,0xe9,0x06,0x35]
   2677 @ CHECK: strd	r3, r5, [r6], #4        @ encoding: [0xe6,0xe8,0x01,0x35]
   2678 @ CHECK: strd	r3, r5, [r6], #-8       @ encoding: [0x66,0xe8,0x02,0x35]
   2679 @ CHECK: strd	r3, r5, [r6]            @ encoding: [0xc6,0xe9,0x00,0x35]
   2680 @ CHECK: strd	r8, r1, [r3]            @ encoding: [0xc3,0xe9,0x00,0x81]
   2681 @ CHECK: strd   r0, r1, [r2, #-0]       @ encoding: [0x42,0xe9,0x00,0x01]
   2682 @ CHECK: strd   r0, r1, [r2, #-0]!      @ encoding: [0x62,0xe9,0x00,0x01]
   2683 @ CHECK: strd   r0, r1, [r2], #-0       @ encoding: [0x62,0xe8,0x00,0x01]
   2684 
   2685 
   2686 @------------------------------------------------------------------------------
   2687 @ STREX/STREXB/STREXH/STREXD
   2688 @------------------------------------------------------------------------------
   2689         strex r1, r8, [r4]
   2690         strex r8, r2, [r4, #0]
   2691         strex r2, r12, [sp, #128]
   2692         strexb r5, r1, [r7]
   2693         strexh r9, r7, [r12]
   2694         strexd r9, r3, r6, [r4]
   2695 
   2696 @ CHECK: strex	r1, r8, [r4]            @ encoding: [0x44,0xe8,0x00,0x81]
   2697 @ CHECK: strex	r8, r2, [r4]            @ encoding: [0x44,0xe8,0x00,0x28]
   2698 @ CHECK: strex	r2, r12, [sp, #128]     @ encoding: [0x4d,0xe8,0x20,0xc2]
   2699 @ CHECK: strexb	r5, r1, [r7]            @ encoding: [0xc7,0xe8,0x45,0x1f]
   2700 @ CHECK: strexh	r9, r7, [r12]           @ encoding: [0xcc,0xe8,0x59,0x7f]
   2701 @ CHECK: strexd	r9, r3, r6, [r4]        @ encoding: [0xc4,0xe8,0x79,0x36]
   2702 
   2703 
   2704 @------------------------------------------------------------------------------
   2705 @ STRH(immediate)
   2706 @------------------------------------------------------------------------------
   2707         strh r5, [r5, #-4]
   2708         strh r5, [r6, #32]
   2709         strh r5, [r6, #33]
   2710         strh r5, [r6, #257]
   2711         strh.w lr, [r7, #257]
   2712         strh r5, [r8, #255]!
   2713         strh r2, [r5, #4]!
   2714         strh r1, [r4, #-4]!
   2715         strh lr, [r3], #255
   2716         strh r9, [r2], #4
   2717         strh r3, [sp], #-4
   2718 
   2719 @ CHECK: strh	r5, [r5, #-4]           @ encoding: [0x25,0xf8,0x04,0x5c]
   2720 @ CHECK: strh	r5, [r6, #32]           @ encoding: [0x35,0x84]
   2721 @ CHECK: strh.w	r5, [r6, #33]           @ encoding: [0xa6,0xf8,0x21,0x50]
   2722 @ CHECK: strh.w	r5, [r6, #257]          @ encoding: [0xa6,0xf8,0x01,0x51]
   2723 @ CHECK: strh.w	lr, [r7, #257]          @ encoding: [0xa7,0xf8,0x01,0xe1]
   2724 @ CHECK: strh	r5, [r8, #255]!         @ encoding: [0x28,0xf8,0xff,0x5f]
   2725 @ CHECK: strh	r2, [r5, #4]!           @ encoding: [0x25,0xf8,0x04,0x2f]
   2726 @ CHECK: strh	r1, [r4, #-4]!          @ encoding: [0x24,0xf8,0x04,0x1d]
   2727 @ CHECK: strh	lr, [r3], #255          @ encoding: [0x23,0xf8,0xff,0xeb]
   2728 @ CHECK: strh	r9, [r2], #4            @ encoding: [0x22,0xf8,0x04,0x9b]
   2729 @ CHECK: strh	r3, [sp], #-4           @ encoding: [0x2d,0xf8,0x04,0x39]
   2730 
   2731 
   2732 @------------------------------------------------------------------------------
   2733 @ STRH(register)
   2734 @------------------------------------------------------------------------------
   2735         strh r1, [r8, r1]
   2736         strh.w r4, [r5, r2]
   2737         strh r6, [r0, r2, lsl #3]
   2738         strh r8, [r8, r2, lsl #2]
   2739         strh r7, [sp, r2, lsl #1]
   2740         strh r7, [sp, r2, lsl #0]
   2741 
   2742 @ CHECK: strh.w	r1, [r8, r1]            @ encoding: [0x28,0xf8,0x01,0x10]
   2743 @ CHECK: strh.w	r4, [r5, r2]            @ encoding: [0x25,0xf8,0x02,0x40]
   2744 @ CHECK: strh.w	r6, [r0, r2, lsl #3]    @ encoding: [0x20,0xf8,0x32,0x60]
   2745 @ CHECK: strh.w	r8, [r8, r2, lsl #2]    @ encoding: [0x28,0xf8,0x22,0x80]
   2746 @ CHECK: strh.w	r7, [sp, r2, lsl #1]    @ encoding: [0x2d,0xf8,0x12,0x70]
   2747 @ CHECK: strh.w	r7, [sp, r2]            @ encoding: [0x2d,0xf8,0x02,0x70]
   2748 
   2749 
   2750 @------------------------------------------------------------------------------
   2751 @ STRHT
   2752 @------------------------------------------------------------------------------
   2753         strht r1, [r2]
   2754         strht r1, [r8, #0]
   2755         strht r1, [r8, #3]
   2756         strht r1, [r8, #255]
   2757 
   2758 @ CHECK: strht	r1, [r2]                @ encoding: [0x22,0xf8,0x00,0x1e]
   2759 @ CHECK: strht	r1, [r8]                @ encoding: [0x28,0xf8,0x00,0x1e]
   2760 @ CHECK: strht	r1, [r8, #3]            @ encoding: [0x28,0xf8,0x03,0x1e]
   2761 @ CHECK: strht	r1, [r8, #255]          @ encoding: [0x28,0xf8,0xff,0x1e]
   2762 
   2763 
   2764 @------------------------------------------------------------------------------
   2765 @ STRT
   2766 @------------------------------------------------------------------------------
   2767         strt r1, [r2]
   2768         strt r1, [r8, #0]
   2769         strt r1, [r8, #3]
   2770         strt r1, [r8, #255]
   2771 
   2772 @ CHECK: strt	r1, [r2]                @ encoding: [0x42,0xf8,0x00,0x1e]
   2773 @ CHECK: strt	r1, [r8]                @ encoding: [0x48,0xf8,0x00,0x1e]
   2774 @ CHECK: strt	r1, [r8, #3]            @ encoding: [0x48,0xf8,0x03,0x1e]
   2775 @ CHECK: strt	r1, [r8, #255]          @ encoding: [0x48,0xf8,0xff,0x1e]
   2776 
   2777 
   2778 @------------------------------------------------------------------------------
   2779 @ SUB (immediate)
   2780 @------------------------------------------------------------------------------
   2781         itet eq
   2782         subeq r1, r2, #4
   2783         subwne r5, r3, #1023
   2784         subeq r4, r5, #293
   2785         sub r2, sp, #1024
   2786         sub r2, r8, #0xff00
   2787         sub r2, r3, #257
   2788         subw r2, r3, #257
   2789         sub r12, r6, #0x100
   2790         subw r12, r6, #0x100
   2791         subs r1, r2, #0x1f0
   2792 	sub r2, #1
   2793         sub r0, r0, #32
   2794         subs r2, r2, #56
   2795         subs r2, #56
   2796 
   2797 @ CHECK: itet	eq                      @ encoding: [0x0a,0xbf]
   2798 @ CHECK: subeq	r1, r2, #4              @ encoding: [0x11,0x1f]
   2799 @ CHECK: subwne	r5, r3, #1023           @ encoding: [0xa3,0xf2,0xff,0x35]
   2800 @ CHECK: subweq	r4, r5, #293            @ encoding: [0xa5,0xf2,0x25,0x14]
   2801 @ CHECK: sub.w	r2, sp, #1024           @ encoding: [0xad,0xf5,0x80,0x62]
   2802 @ CHECK: sub.w	r2, r8, #65280          @ encoding: [0xa8,0xf5,0x7f,0x42]
   2803 @ CHECK: subw	r2, r3, #257            @ encoding: [0xa3,0xf2,0x01,0x12]
   2804 @ CHECK: subw	r2, r3, #257            @ encoding: [0xa3,0xf2,0x01,0x12]
   2805 @ CHECK: sub.w	r12, r6, #256           @ encoding: [0xa6,0xf5,0x80,0x7c]
   2806 @ CHECK: subw	r12, r6, #256           @ encoding: [0xa6,0xf2,0x00,0x1c]
   2807 @ CHECK: subs.w	r1, r2, #496            @ encoding: [0xb2,0xf5,0xf8,0x71]
   2808 @ CHECK: sub.w	r2, r2, #1              @ encoding: [0xa2,0xf1,0x01,0x02]
   2809 @ CHECK: sub.w	r0, r0, #32             @ encoding: [0xa0,0xf1,0x20,0x00]
   2810 @ CHECK: subs	r2, #56                 @ encoding: [0x38,0x3a]
   2811 @ CHECK: subs	r2, #56                 @ encoding: [0x38,0x3a]
   2812 
   2813 
   2814 @------------------------------------------------------------------------------
   2815 @ SUB (register)
   2816 @------------------------------------------------------------------------------
   2817         sub r4, r5, r6
   2818         sub r4, r5, r6, lsl #5
   2819         sub r4, r5, r6, lsr #5
   2820         sub.w r4, r5, r6, lsr #5
   2821         sub r4, r5, r6, asr #5
   2822         sub r4, r5, r6, ror #5
   2823         sub.w r5, r2, r12, rrx
   2824         sub r2, sp, ip
   2825         sub sp, sp, ip
   2826         sub sp, ip
   2827         sub.w r2, sp, ip
   2828         sub.w sp, sp, ip
   2829         sub.w sp, ip
   2830 
   2831 @ CHECK: sub.w	r4, r5, r6              @ encoding: [0xa5,0xeb,0x06,0x04]
   2832 @ CHECK: sub.w	r4, r5, r6, lsl #5      @ encoding: [0xa5,0xeb,0x46,0x14]
   2833 @ CHECK: sub.w	r4, r5, r6, lsr #5      @ encoding: [0xa5,0xeb,0x56,0x14]
   2834 @ CHECK: sub.w	r4, r5, r6, lsr #5      @ encoding: [0xa5,0xeb,0x56,0x14]
   2835 @ CHECK: sub.w	r4, r5, r6, asr #5      @ encoding: [0xa5,0xeb,0x66,0x14]
   2836 @ CHECK: sub.w	r4, r5, r6, ror #5      @ encoding: [0xa5,0xeb,0x76,0x14]
   2837 @ CHECK: sub.w r5, r2, r12, rrx         @ encoding: [0xa2,0xeb,0x3c,0x05]
   2838 @ CHECK: sub.w	r2, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x02]
   2839 @ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
   2840 @ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
   2841 @ CHECK: sub.w	r2, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x02]
   2842 @ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
   2843 @ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
   2844 
   2845 
   2846 @------------------------------------------------------------------------------
   2847 @ SVC
   2848 @------------------------------------------------------------------------------
   2849         svc #0
   2850         ite eq
   2851         svceq #255
   2852         swine #33
   2853 
   2854 @ CHECK: svc	#0                      @ encoding: [0x00,0xdf]
   2855 @ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
   2856 @ CHECK: svceq	#255                    @ encoding: [0xff,0xdf]
   2857 @ CHECK: svcne	#33                     @ encoding: [0x21,0xdf]
   2858 
   2859 
   2860 @------------------------------------------------------------------------------
   2861 @ SXTAB
   2862 @------------------------------------------------------------------------------
   2863         sxtab r2, r3, r4
   2864         sxtab r4, r5, r6, ror #0
   2865         it lt
   2866         sxtablt r6, r2, r9, ror #8
   2867         sxtab r5, r1, r4, ror #16
   2868         sxtab r7, r8, r3, ror #24
   2869 
   2870 @ CHECK: sxtab	r2, r3, r4              @ encoding: [0x43,0xfa,0x84,0xf2]
   2871 @ CHECK: sxtab	r4, r5, r6              @ encoding: [0x45,0xfa,0x86,0xf4]
   2872 @ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
   2873 @ CHECK: sxtablt r6, r2, r9, ror #8     @ encoding: [0x42,0xfa,0x99,0xf6]
   2874 @ CHECK: sxtab	r5, r1, r4, ror #16     @ encoding: [0x41,0xfa,0xa4,0xf5]
   2875 @ CHECK: sxtab	r7, r8, r3, ror #24     @ encoding: [0x48,0xfa,0xb3,0xf7]
   2876 
   2877 
   2878 @------------------------------------------------------------------------------
   2879 @ SXTAB16
   2880 @------------------------------------------------------------------------------
   2881         sxtab16 r6, r2, r7, ror #0
   2882         sxtab16 r3, r5, r8, ror #8
   2883         sxtab16 r3, r2, r1, ror #16
   2884         ite ne
   2885         sxtab16ne r0, r1, r4
   2886         sxtab16eq r1, r2, r3, ror #24
   2887 
   2888 @ CHECK: sxtab16 r6, r2, r7             @ encoding: [0x22,0xfa,0x87,0xf6]
   2889 @ CHECK: sxtab16 r3, r5, r8, ror #8     @ encoding: [0x25,0xfa,0x98,0xf3]
   2890 @ CHECK: sxtab16 r3, r2, r1, ror #16    @ encoding: [0x22,0xfa,0xa1,0xf3]
   2891 @ CHECK: ite	ne                      @ encoding: [0x14,0xbf]
   2892 @ CHECK: sxtab16ne r0, r1, r4           @ encoding: [0x21,0xfa,0x84,0xf0]
   2893 @ CHECK: sxtab16eq r1, r2, r3, ror #24  @ encoding: [0x22,0xfa,0xb3,0xf1]
   2894 
   2895 
   2896 @------------------------------------------------------------------------------
   2897 @ SXTAH
   2898 @------------------------------------------------------------------------------
   2899         sxtah r1, r3, r9
   2900         sxtah r3, r8, r3, ror #8
   2901         sxtah r9, r3, r3, ror #24
   2902         ite hi
   2903         sxtahhi r6, r1, r6, ror #0
   2904         sxtahls r2, r2, r4, ror #16
   2905 
   2906 @ CHECK: sxtah	r1, r3, r9              @ encoding: [0x03,0xfa,0x89,0xf1]
   2907 @ CHECK: sxtah	r3, r8, r3, ror #8      @ encoding: [0x08,0xfa,0x93,0xf3]
   2908 @ CHECK: sxtah	r9, r3, r3, ror #24     @ encoding: [0x03,0xfa,0xb3,0xf9]
   2909 @ CHECK: ite	hi                      @ encoding: [0x8c,0xbf]
   2910 @ CHECK: sxtahhi r6, r1, r6             @ encoding: [0x01,0xfa,0x86,0xf6]
   2911 @ CHECK: sxtahls r2, r2, r4, ror #16    @ encoding: [0x02,0xfa,0xa4,0xf2]
   2912 
   2913 
   2914 @------------------------------------------------------------------------------
   2915 @ SXTB
   2916 @------------------------------------------------------------------------------
   2917         sxtb r5, r6, ror #0
   2918         sxtb r6, r9, ror #8
   2919         sxtb r8, r3, ror #24
   2920         ite ge
   2921         sxtbge r2, r4
   2922         sxtblt r5, r1, ror #16
   2923         sxtb.w  r7, r8
   2924 
   2925 @ CHECK: sxtb	r5, r6                  @ encoding: [0x75,0xb2]
   2926 @ CHECK: sxtb.w	r6, r9, ror #8          @ encoding: [0x4f,0xfa,0x99,0xf6]
   2927 @ CHECK: sxtb.w	r8, r3, ror #24         @ encoding: [0x4f,0xfa,0xb3,0xf8]
   2928 @ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
   2929 @ CHECK: sxtbge	r2, r4                  @ encoding: [0x62,0xb2]
   2930 @ CHECK: sxtblt.w	r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
   2931 @ CHECK: sxtb.w	r7, r8                  @ encoding: [0x4f,0xfa,0x88,0xf7]
   2932 
   2933 
   2934 @------------------------------------------------------------------------------
   2935 @ SXTB16
   2936 @------------------------------------------------------------------------------
   2937         sxtb16 r1, r4
   2938         sxtb16 r6, r7, ror #0
   2939         sxtb16 r3, r1, ror #16
   2940         ite cs
   2941         sxtb16cs r3, r5, ror #8
   2942         sxtb16lo r2, r3, ror #24
   2943 
   2944 @ CHECK: sxtb16	r1, r4                  @ encoding: [0x2f,0xfa,0x84,0xf1]
   2945 @ CHECK: sxtb16	r6, r7                  @ encoding: [0x2f,0xfa,0x87,0xf6]
   2946 @ CHECK: sxtb16	r3, r1, ror #16         @ encoding: [0x2f,0xfa,0xa1,0xf3]
   2947 @ CHECK: ite	hs                      @ encoding: [0x2c,0xbf]
   2948 @ CHECK: sxtb16hs	r3, r5, ror #8  @ encoding: [0x2f,0xfa,0x95,0xf3]
   2949 @ CHECK: sxtb16lo	r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
   2950 
   2951 
   2952 @------------------------------------------------------------------------------
   2953 @ SXTH
   2954 @------------------------------------------------------------------------------
   2955         sxth r1, r6, ror #0
   2956         sxth r3, r8, ror #8
   2957         sxth r9, r3, ror #24
   2958         itt ne
   2959         sxthne r3, r9
   2960         sxthne r2, r2, ror #16
   2961         sxth.w  r7, r8
   2962 
   2963 @ CHECK: sxth	r1, r6                  @ encoding: [0x31,0xb2]
   2964 @ CHECK: sxth.w	r3, r8, ror #8          @ encoding: [0x0f,0xfa,0x98,0xf3]
   2965 @ CHECK: sxth.w	r9, r3, ror #24         @ encoding: [0x0f,0xfa,0xb3,0xf9]
   2966 @ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
   2967 @ CHECK: sxthne.w	r3, r9          @ encoding: [0x0f,0xfa,0x89,0xf3]
   2968 @ CHECK: sxthne.w	r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
   2969 @ CHECK: sxth.w	r7, r8                  @ encoding: [0x0f,0xfa,0x88,0xf7]
   2970 
   2971 
   2972 @------------------------------------------------------------------------------
   2973 @ SXTB
   2974 @------------------------------------------------------------------------------
   2975         sxtb r5, r6, ror #0
   2976         sxtb.w r6, r9, ror #8
   2977         sxtb r8, r3, ror #24
   2978         ite ge
   2979         sxtbge r2, r4
   2980         sxtblt r5, r1, ror #16
   2981 
   2982 @ CHECK: sxtb	r5, r6                  @ encoding: [0x75,0xb2]
   2983 @ CHECK: sxtb.w	r6, r9, ror #8          @ encoding: [0x4f,0xfa,0x99,0xf6]
   2984 @ CHECK: sxtb.w	r8, r3, ror #24         @ encoding: [0x4f,0xfa,0xb3,0xf8]
   2985 @ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
   2986 @ CHECK: sxtbge	r2, r4                  @ encoding: [0x62,0xb2]
   2987 @ CHECK: sxtblt.w	r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
   2988 
   2989 
   2990 @------------------------------------------------------------------------------
   2991 @ SXTB16
   2992 @------------------------------------------------------------------------------
   2993         sxtb16 r1, r4
   2994         sxtb16 r6, r7, ror #0
   2995         sxtb16 r3, r1, ror #16
   2996         ite cs
   2997         sxtb16cs r3, r5, ror #8
   2998         sxtb16lo r2, r3, ror #24
   2999 
   3000 @ CHECK: sxtb16	r1, r4                  @ encoding: [0x2f,0xfa,0x84,0xf1]
   3001 @ CHECK: sxtb16	r6, r7                  @ encoding: [0x2f,0xfa,0x87,0xf6]
   3002 @ CHECK: sxtb16	r3, r1, ror #16         @ encoding: [0x2f,0xfa,0xa1,0xf3]
   3003 @ CHECK: ite	hs                      @ encoding: [0x2c,0xbf]
   3004 @ CHECK: sxtb16hs	r3, r5, ror #8  @ encoding: [0x2f,0xfa,0x95,0xf3]
   3005 @ CHECK: sxtb16lo	r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
   3006 
   3007 
   3008 @------------------------------------------------------------------------------
   3009 @ SXTH
   3010 @------------------------------------------------------------------------------
   3011         sxth r1, r6, ror #0
   3012         sxth.w r3, r8, ror #8
   3013         sxth r9, r3, ror #24
   3014         itt ne
   3015         sxthne r3, r9
   3016         sxthne r2, r2, ror #16
   3017 
   3018 @ CHECK: sxth	r1, r6                  @ encoding: [0x31,0xb2]
   3019 @ CHECK: sxth.w	r3, r8, ror #8          @ encoding: [0x0f,0xfa,0x98,0xf3]
   3020 @ CHECK: sxth.w	r9, r3, ror #24         @ encoding: [0x0f,0xfa,0xb3,0xf9]
   3021 @ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
   3022 @ CHECK: sxthne.w	r3, r9          @ encoding: [0x0f,0xfa,0x89,0xf3]
   3023 @ CHECK: sxthne.w	r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
   3024 
   3025 
   3026 @------------------------------------------------------------------------------
   3027 @ TBB/TBH
   3028 @------------------------------------------------------------------------------
   3029         tbb [r3, r8]
   3030         tbh [r3, r8, lsl #1]
   3031         it eq
   3032         tbbeq [r3, r8]
   3033         it cs
   3034         tbhcs [r3, r8, lsl #1]
   3035 
   3036 @ CHECK: tbb	[r3, r8]                @ encoding: [0xd3,0xe8,0x08,0xf0]
   3037 @ CHECK: tbh	[r3, r8, lsl #1]        @ encoding: [0xd3,0xe8,0x18,0xf0]
   3038 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   3039 @ CHECK: tbbeq	[r3, r8]                @ encoding: [0xd3,0xe8,0x08,0xf0]
   3040 @ CHECK: it	hs                      @ encoding: [0x28,0xbf]
   3041 @ CHECK: tbhhs	[r3, r8, lsl #1]        @ encoding: [0xd3,0xe8,0x18,0xf0]
   3042 
   3043 
   3044 @------------------------------------------------------------------------------
   3045 @ TEQ
   3046 @------------------------------------------------------------------------------
   3047         teq r5, #0xf000
   3048         teq r4, r5
   3049         teq r4, r5, lsl #5
   3050         teq r4, r5, lsr #5
   3051         teq r4, r5, lsr #5
   3052         teq r4, r5, asr #5
   3053         teq r4, r5, ror #5
   3054 
   3055 @ CHECK: teq.w	r5, #61440              @ encoding: [0x95,0xf4,0x70,0x4f]
   3056 @ CHECK: teq.w	r4, r5                  @ encoding: [0x94,0xea,0x05,0x0f]
   3057 @ CHECK: teq.w	r4, r5, lsl #5          @ encoding: [0x94,0xea,0x45,0x1f]
   3058 @ CHECK: teq.w	r4, r5, lsr #5          @ encoding: [0x94,0xea,0x55,0x1f]
   3059 @ CHECK: teq.w	r4, r5, lsr #5          @ encoding: [0x94,0xea,0x55,0x1f]
   3060 @ CHECK: teq.w	r4, r5, asr #5          @ encoding: [0x94,0xea,0x65,0x1f]
   3061 @ CHECK: teq.w	r4, r5, ror #5          @ encoding: [0x94,0xea,0x75,0x1f]
   3062 
   3063 
   3064 @------------------------------------------------------------------------------
   3065 @ TST
   3066 @------------------------------------------------------------------------------
   3067         tst r5, #0xf000
   3068         tst r2, r5
   3069         tst r3, r12, lsl #5
   3070         tst r4, r11, lsr #4
   3071         tst r5, r10, lsr #12
   3072         tst r6, r9, asr #30
   3073         tst r7, r8, ror #2
   3074 
   3075 @ CHECK: tst.w	r5, #61440              @ encoding: [0x15,0xf4,0x70,0x4f]
   3076 @ CHECK: tst	r2, r5                  @ encoding: [0x2a,0x42]
   3077 @ CHECK: tst.w	r3, r12, lsl #5         @ encoding: [0x13,0xea,0x4c,0x1f]
   3078 @ CHECK: tst.w	r4, r11, lsr #4         @ encoding: [0x14,0xea,0x1b,0x1f]
   3079 @ CHECK: tst.w	r5, r10, lsr #12        @ encoding: [0x15,0xea,0x1a,0x3f]
   3080 @ CHECK: tst.w	r6, r9, asr #30         @ encoding: [0x16,0xea,0xa9,0x7f]
   3081 @ CHECK: tst.w	r7, r8, ror #2          @ encoding: [0x17,0xea,0xb8,0x0f]
   3082 
   3083 
   3084 @------------------------------------------------------------------------------
   3085 @ UADD16/UADD8
   3086 @------------------------------------------------------------------------------
   3087         uadd16 r1, r2, r3
   3088         uadd8 r1, r2, r3
   3089         ite gt
   3090         uadd16gt r1, r2, r3
   3091         uadd8le r1, r2, r3
   3092 
   3093 @ CHECK: uadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x43,0xf1]
   3094 @ CHECK: uadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x43,0xf1]
   3095 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3096 @ CHECK: uadd16gt	r1, r2, r3      @ encoding: [0x92,0xfa,0x43,0xf1]
   3097 @ CHECK: uadd8le	r1, r2, r3      @ encoding: [0x82,0xfa,0x43,0xf1]
   3098 
   3099 
   3100 @------------------------------------------------------------------------------
   3101 @ UASX
   3102 @------------------------------------------------------------------------------
   3103         uasx r9, r12, r0
   3104         it eq
   3105         uasxeq r9, r12, r0
   3106         uaddsubx r9, r12, r0
   3107         it eq
   3108         uaddsubxeq r9, r12, r0
   3109 
   3110 @ CHECK: uasx	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
   3111 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   3112 @ CHECK: uasxeq	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
   3113 @ CHECK: uasx	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
   3114 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   3115 @ CHECK: uasxeq	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
   3116 
   3117 
   3118 @------------------------------------------------------------------------------
   3119 @ UBFX
   3120 @------------------------------------------------------------------------------
   3121         ubfx r4, r5, #16, #1
   3122         it gt
   3123         ubfxgt r4, r5, #16, #16
   3124 
   3125 @ CHECK: ubfx	r4, r5, #16, #1         @ encoding: [0xc5,0xf3,0x00,0x44]
   3126 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   3127 @ CHECK: ubfxgt	r4, r5, #16, #16        @ encoding: [0xc5,0xf3,0x0f,0x44]
   3128 
   3129 
   3130 @------------------------------------------------------------------------------
   3131 @ UHADD16/UHADD8
   3132 @------------------------------------------------------------------------------
   3133         uhadd16 r4, r8, r2
   3134         uhadd8 r4, r8, r2
   3135         itt gt
   3136         uhadd16gt r4, r8, r2
   3137         uhadd8gt r4, r8, r2
   3138 
   3139 @ CHECK: uhadd16	r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
   3140 @ CHECK: uhadd8	r4, r8, r2              @ encoding: [0x88,0xfa,0x62,0xf4]
   3141 @ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
   3142 @ CHECK: uhadd16gt	r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
   3143 @ CHECK: uhadd8gt	r4, r8, r2      @ encoding: [0x88,0xfa,0x62,0xf4]
   3144 
   3145 
   3146 @------------------------------------------------------------------------------
   3147 @ UHASX/UHSAX
   3148 @------------------------------------------------------------------------------
   3149         uhasx r4, r1, r5
   3150         uhsax r5, r6, r6
   3151         itt gt
   3152         uhasxgt r6, r9, r8
   3153         uhsaxgt r7, r8, r12
   3154         uhaddsubx r4, r1, r5
   3155         uhsubaddx r5, r6, r6
   3156         itt gt
   3157         uhaddsubxgt r6, r9, r8
   3158         uhsubaddxgt r7, r8, r12
   3159 
   3160 @ CHECK: uhasx	r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
   3161 @ CHECK: uhsax	r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
   3162 @ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
   3163 @ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
   3164 @ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
   3165 @ CHECK: uhasx	r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
   3166 @ CHECK: uhsax	r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
   3167 @ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
   3168 @ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
   3169 @ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
   3170 
   3171 
   3172 @------------------------------------------------------------------------------
   3173 @ UHSUB16/UHSUB8
   3174 @------------------------------------------------------------------------------
   3175         uhsub16 r5, r8, r3
   3176         uhsub8 r1, r7, r6
   3177         itt lt
   3178         uhsub16lt r4, r9, r12
   3179         uhsub8lt r3, r1, r5
   3180 
   3181 @ CHECK: uhsub16	r5, r8, r3      @ encoding: [0xd8,0xfa,0x63,0xf5]
   3182 @ CHECK: uhsub8	r1, r7, r6              @ encoding: [0xc7,0xfa,0x66,0xf1]
   3183 @ CHECK: itt	lt                      @ encoding: [0xbc,0xbf]
   3184 @ CHECK: uhsub16lt	r4, r9, r12     @ encoding: [0xd9,0xfa,0x6c,0xf4]
   3185 @ CHECK: uhsub8lt	r3, r1, r5      @ encoding: [0xc1,0xfa,0x65,0xf3]
   3186 
   3187 
   3188 @------------------------------------------------------------------------------
   3189 @ UMAAL
   3190 @------------------------------------------------------------------------------
   3191         umaal r3, r4, r5, r6
   3192         it lt
   3193         umaallt r3, r4, r5, r6
   3194 
   3195 @ CHECK: umaal	r3, r4, r5, r6          @ encoding: [0xe5,0xfb,0x66,0x34]
   3196 @ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
   3197 @ CHECK: umaallt	r3, r4, r5, r6  @ encoding: [0xe5,0xfb,0x66,0x34]
   3198 
   3199 
   3200 @------------------------------------------------------------------------------
   3201 @ UMLAL
   3202 @------------------------------------------------------------------------------
   3203         umlal r2, r4, r6, r8
   3204         it gt
   3205         umlalgt r6, r1, r2, r6
   3206 
   3207 @ CHECK: umlal	r2, r4, r6, r8          @ encoding: [0xe6,0xfb,0x08,0x24]
   3208 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   3209 @ CHECK: umlalgt	r6, r1, r2, r6  @ encoding: [0xe2,0xfb,0x06,0x61]
   3210 
   3211 
   3212 @------------------------------------------------------------------------------
   3213 @ UMULL
   3214 @------------------------------------------------------------------------------
   3215         umull r2, r4, r6, r8
   3216         it gt
   3217         umullgt r6, r1, r2, r6
   3218 
   3219 @ CHECK: umull	r2, r4, r6, r8          @ encoding: [0xa6,0xfb,0x08,0x24]
   3220 @ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
   3221 @ CHECK: umullgt	r6, r1, r2, r6  @ encoding: [0xa2,0xfb,0x06,0x61]
   3222 
   3223 
   3224 @------------------------------------------------------------------------------
   3225 @ UQADD16/UQADD8
   3226 @------------------------------------------------------------------------------
   3227         uqadd16 r1, r2, r3
   3228         uqadd8 r3, r4, r8
   3229         ite gt
   3230         uqadd16gt r4, r7, r9
   3231         uqadd8le r8, r1, r2
   3232 
   3233 @ CHECK: uqadd16	r1, r2, r3      @ encoding: [0x92,0xfa,0x53,0xf1]
   3234 @ CHECK: uqadd8	r3, r4, r8              @ encoding: [0x84,0xfa,0x58,0xf3]
   3235 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3236 @ CHECK: uqadd16gt	r4, r7, r9      @ encoding: [0x97,0xfa,0x59,0xf4]
   3237 @ CHECK: uqadd8le	r8, r1, r2      @ encoding: [0x81,0xfa,0x52,0xf8]
   3238 
   3239 
   3240 @------------------------------------------------------------------------------
   3241 @ UQASX/UQSAX
   3242 @------------------------------------------------------------------------------
   3243         uqasx r1, r2, r3
   3244         uqsax r3, r4, r8
   3245         ite gt
   3246         uqasxgt r4, r7, r9
   3247         uqsaxle r8, r1, r2
   3248 
   3249         uqaddsubx r1, r2, r3
   3250         uqsubaddx r3, r4, r8
   3251         ite gt
   3252         uqaddsubxgt r4, r7, r9
   3253         uqsubaddxle r8, r1, r2
   3254 
   3255 @ CHECK: uqasx	r1, r2, r3              @ encoding: [0xa2,0xfa,0x53,0xf1]
   3256 @ CHECK: uqsax	r3, r4, r8              @ encoding: [0xe4,0xfa,0x58,0xf3]
   3257 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3258 @ CHECK: uqasxgt r4, r7, r9             @ encoding: [0xa7,0xfa,0x59,0xf4]
   3259 @ CHECK: uqsaxle r8, r1, r2             @ encoding: [0xe1,0xfa,0x52,0xf8]
   3260 
   3261 @ CHECK: uqasx	r1, r2, r3              @ encoding: [0xa2,0xfa,0x53,0xf1]
   3262 @ CHECK: uqsax	r3, r4, r8              @ encoding: [0xe4,0xfa,0x58,0xf3]
   3263 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3264 @ CHECK: uqasxgt r4, r7, r9             @ encoding: [0xa7,0xfa,0x59,0xf4]
   3265 @ CHECK: uqsaxle r8, r1, r2             @ encoding: [0xe1,0xfa,0x52,0xf8]
   3266 
   3267 
   3268 @------------------------------------------------------------------------------
   3269 @ UQSUB16/UQSUB8
   3270 @------------------------------------------------------------------------------
   3271         uqsub8 r8, r2, r9
   3272         uqsub16 r1, r9, r7
   3273         ite gt
   3274         uqsub8gt r3, r1, r6
   3275         uqsub16le r4, r6, r4
   3276 
   3277 @ CHECK: uqsub8	r8, r2, r9              @ encoding: [0xc2,0xfa,0x59,0xf8]
   3278 @ CHECK: uqsub16 r1, r9, r7             @ encoding: [0xd9,0xfa,0x57,0xf1]
   3279 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3280 @ CHECK: uqsub8gt	r3, r1, r6      @ encoding: [0xc1,0xfa,0x56,0xf3]
   3281 @ CHECK: uqsub16le	r4, r6, r4      @ encoding: [0xd6,0xfa,0x54,0xf4]
   3282 
   3283 
   3284 @------------------------------------------------------------------------------
   3285 @ UQSUB16/UQSUB8
   3286 @------------------------------------------------------------------------------
   3287         usad8 r1, r9, r7
   3288         usada8 r8, r2, r9, r12
   3289         ite gt
   3290         usada8gt r3, r1, r6, r9
   3291         usad8le r4, r6, r4
   3292 
   3293 @ CHECK: usad8	r1, r9, r7              @ encoding: [0x79,0xfb,0x07,0xf1]
   3294 @ CHECK: usada8	r8, r2, r9, r12         @ encoding: [0x72,0xfb,0x09,0xc8]
   3295 @ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
   3296 @ CHECK: usada8gt	r3, r1, r6, r9  @ encoding: [0x71,0xfb,0x06,0x93]
   3297 @ CHECK: usad8le	r4, r6, r4      @ encoding: [0x76,0xfb,0x04,0xf4]
   3298 
   3299 
   3300 @------------------------------------------------------------------------------
   3301 @ USAT
   3302 @------------------------------------------------------------------------------
   3303         usat	r8, #1, r10
   3304         usat	r8, #4, r10, lsl #0
   3305         usat	r8, #5, r10, lsl #31
   3306         usat	r8, #16, r10, asr #1
   3307 
   3308 @ CHECK: usat	r8, #1, r10             @ encoding: [0x8a,0xf3,0x01,0x08]
   3309 @ CHECK: usat	r8, #4, r10             @ encoding: [0x8a,0xf3,0x04,0x08]
   3310 @ CHECK: usat	r8, #5, r10, lsl #31    @ encoding: [0x8a,0xf3,0xc5,0x78]
   3311 @ CHECK: usat	r8, #16, r10, asr #1    @ encoding: [0xaa,0xf3,0x50,0x08]
   3312 
   3313 
   3314 @------------------------------------------------------------------------------
   3315 @ USAT16
   3316 @------------------------------------------------------------------------------
   3317         usat16	r2, #2, r7
   3318         usat16	r3, #15, r5
   3319 
   3320 @ CHECK: usat16	r2, #2, r7              @ encoding: [0xa7,0xf3,0x02,0x02]
   3321 @ CHECK: usat16	r3, #15, r5             @ encoding: [0xa5,0xf3,0x0f,0x03]
   3322 
   3323 
   3324 @------------------------------------------------------------------------------
   3325 @ USAX
   3326 @------------------------------------------------------------------------------
   3327         usax r2, r3, r4
   3328         it ne
   3329         usaxne r6, r1, r9
   3330         usubaddx r2, r3, r4
   3331         it ne
   3332         usubaddxne r6, r1, r9
   3333 
   3334 @ CHECK: usax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x44,0xf2]
   3335 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   3336 @ CHECK: usaxne	r6, r1, r9              @ encoding: [0xe1,0xfa,0x49,0xf6]
   3337 @ CHECK: usax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x44,0xf2]
   3338 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   3339 @ CHECK: usaxne	r6, r1, r9              @ encoding: [0xe1,0xfa,0x49,0xf6]
   3340 
   3341 
   3342 @------------------------------------------------------------------------------
   3343 @ USUB16/USUB8
   3344 @------------------------------------------------------------------------------
   3345         usub16 r4, r2, r7
   3346         usub8 r1, r8, r5
   3347         ite hi
   3348         usub16hi r1, r1, r3
   3349         usub8ls r9, r2, r3
   3350 
   3351 @ CHECK: usub16	r4, r2, r7              @ encoding: [0xd2,0xfa,0x47,0xf4]
   3352 @ CHECK: usub8	r1, r8, r5              @ encoding: [0xc8,0xfa,0x45,0xf1]
   3353 @ CHECK: ite	hi                      @ encoding: [0x8c,0xbf]
   3354 @ CHECK: usub16hi	r1, r1, r3      @ encoding: [0xd1,0xfa,0x43,0xf1]
   3355 @ CHECK: usub8ls	r9, r2, r3      @ encoding: [0xc2,0xfa,0x43,0xf9]
   3356 
   3357 
   3358 @------------------------------------------------------------------------------
   3359 @ UXTAB
   3360 @------------------------------------------------------------------------------
   3361         uxtab r2, r3, r4
   3362         uxtab r4, r5, r6, ror #0
   3363         it lt
   3364         uxtablt r6, r2, r9, ror #8
   3365         uxtab r5, r1, r4, ror #16
   3366         uxtab r7, r8, r3, ror #24
   3367 
   3368 @ CHECK: uxtab	r2, r3, r4              @ encoding: [0x53,0xfa,0x84,0xf2]
   3369 @ CHECK: uxtab	r4, r5, r6              @ encoding: [0x55,0xfa,0x86,0xf4]
   3370 @ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
   3371 @ CHECK: uxtablt r6, r2, r9, ror #8     @ encoding: [0x52,0xfa,0x99,0xf6]
   3372 @ CHECK: uxtab	r5, r1, r4, ror #16     @ encoding: [0x51,0xfa,0xa4,0xf5]
   3373 @ CHECK: uxtab	r7, r8, r3, ror #24     @ encoding: [0x58,0xfa,0xb3,0xf7]
   3374 
   3375 
   3376 @------------------------------------------------------------------------------
   3377 @ UXTAB16
   3378 @------------------------------------------------------------------------------
   3379         it ge
   3380         uxtab16ge r0, r1, r4
   3381         uxtab16 r6, r2, r7, ror #0
   3382         uxtab16 r3, r5, r8, ror #8
   3383         uxtab16 r3, r2, r1, ror #16
   3384         it eq
   3385         uxtab16eq r1, r2, r3, ror #24
   3386 
   3387 @ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
   3388 @ CHECK: uxtab16ge	r0, r1, r4      @ encoding: [0x31,0xfa,0x84,0xf0]
   3389 @ CHECK: uxtab16 r6, r2, r7             @ encoding: [0x32,0xfa,0x87,0xf6]
   3390 @ CHECK: uxtab16 r3, r5, r8, ror #8     @ encoding: [0x35,0xfa,0x98,0xf3]
   3391 @ CHECK: uxtab16 r3, r2, r1, ror #16    @ encoding: [0x32,0xfa,0xa1,0xf3]
   3392 @ CHECK: it	eq                      @ encoding: [0x08,0xbf]
   3393 @ CHECK: uxtab16eq r1, r2, r3, ror #24  @ encoding: [0x32,0xfa,0xb3,0xf1]
   3394 
   3395 
   3396 @------------------------------------------------------------------------------
   3397 @ UXTAH
   3398 @------------------------------------------------------------------------------
   3399         uxtah r1, r3, r9
   3400         it hi
   3401         uxtahhi r6, r1, r6, ror #0
   3402         uxtah r3, r8, r3, ror #8
   3403         it lo
   3404         uxtahlo r2, r2, r4, ror #16
   3405         uxtah r9, r3, r3, ror #24
   3406 
   3407 @ CHECK: uxtah	r1, r3, r9              @ encoding: [0x13,0xfa,0x89,0xf1]
   3408 @ CHECK: it	hi                      @ encoding: [0x88,0xbf]
   3409 @ CHECK: uxtahhi r6, r1, r6             @ encoding: [0x11,0xfa,0x86,0xf6]
   3410 @ CHECK: uxtah	r3, r8, r3, ror #8      @ encoding: [0x18,0xfa,0x93,0xf3]
   3411 @ CHECK: it	lo                      @ encoding: [0x38,0xbf]
   3412 @ CHECK: uxtahlo r2, r2, r4, ror #16    @ encoding: [0x12,0xfa,0xa4,0xf2]
   3413 @ CHECK: uxtah	r9, r3, r3, ror #24     @ encoding: [0x13,0xfa,0xb3,0xf9]
   3414 
   3415 
   3416 @------------------------------------------------------------------------------
   3417 @ UXTB
   3418 @------------------------------------------------------------------------------
   3419         it ge
   3420         uxtbge r2, r4
   3421         uxtb r5, r6, ror #0
   3422         uxtb r6, r9, ror #8
   3423         it cc
   3424         uxtbcc r5, r1, ror #16
   3425         uxtb r8, r3, ror #24
   3426         uxtb.w  r7, r8
   3427 
   3428 @ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
   3429 @ CHECK: uxtbge	r2, r4                  @ encoding: [0xe2,0xb2]
   3430 @ CHECK: uxtb	r5, r6                  @ encoding: [0xf5,0xb2]
   3431 @ CHECK: uxtb.w	r6, r9, ror #8          @ encoding: [0x5f,0xfa,0x99,0xf6]
   3432 @ CHECK: it	lo                      @ encoding: [0x38,0xbf]
   3433 @ CHECK: uxtblo.w	r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5]
   3434 @ CHECK: uxtb.w	r8, r3, ror #24         @ encoding: [0x5f,0xfa,0xb3,0xf8]
   3435 @ CHECK: uxtb.w	r7, r8                  @ encoding: [0x5f,0xfa,0x88,0xf7]
   3436 
   3437 
   3438 @------------------------------------------------------------------------------
   3439 @ UXTB16
   3440 @------------------------------------------------------------------------------
   3441         uxtb16 r1, r4
   3442         uxtb16 r6, r7, ror #0
   3443         it cs
   3444         uxtb16cs r3, r5, ror #8
   3445         uxtb16 r3, r1, ror #16
   3446         it ge
   3447         uxtb16ge r2, r3, ror #24
   3448 
   3449 @ CHECK: uxtb16	r1, r4                  @ encoding: [0x3f,0xfa,0x84,0xf1]
   3450 @ CHECK: uxtb16	r6, r7                  @ encoding: [0x3f,0xfa,0x87,0xf6]
   3451 @ CHECK: it	hs                      @ encoding: [0x28,0xbf]
   3452 @ CHECK: uxtb16hs	r3, r5, ror #8  @ encoding: [0x3f,0xfa,0x95,0xf3]
   3453 @ CHECK: uxtb16	r3, r1, ror #16         @ encoding: [0x3f,0xfa,0xa1,0xf3]
   3454 @ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
   3455 @ CHECK: uxtb16ge	r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2]
   3456 
   3457 
   3458 @------------------------------------------------------------------------------
   3459 @ UXTH
   3460 @------------------------------------------------------------------------------
   3461         it ne
   3462         uxthne r3, r9
   3463         uxth r1, r6, ror #0
   3464         uxth r3, r8, ror #8
   3465         it le
   3466         uxthle r2, r2, ror #16
   3467         uxth r9, r3, ror #24
   3468         uxth.w  r7, r8
   3469 
   3470 @ CHECK: it	ne                      @ encoding: [0x18,0xbf]
   3471 @ CHECK: uxthne.w	r3, r9          @ encoding: [0x1f,0xfa,0x89,0xf3]
   3472 @ CHECK: uxth	r1, r6                  @ encoding: [0xb1,0xb2]
   3473 @ CHECK: uxth.w	r3, r8, ror #8          @ encoding: [0x1f,0xfa,0x98,0xf3]
   3474 @ CHECK: it	le                      @ encoding: [0xd8,0xbf]
   3475 @ CHECK: uxthle.w	r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2]
   3476 @ CHECK: uxth.w	r9, r3, ror #24         @ encoding: [0x1f,0xfa,0xb3,0xf9]
   3477 @ CHECK: uxth.w	r7, r8                  @ encoding: [0x1f,0xfa,0x88,0xf7]
   3478 
   3479 @------------------------------------------------------------------------------
   3480 @ WFE/WFI/YIELD/HINT
   3481 @------------------------------------------------------------------------------
   3482         wfe
   3483         wfi
   3484         yield
   3485         itet lt
   3486         wfelt
   3487         wfige
   3488         yieldlt
   3489         hint #5
   3490         hint.w #5
   3491         hint.w #4
   3492         hint #3
   3493         hint #2
   3494         hint #1
   3495         hint #0
   3496 
   3497 @ CHECK: wfe                            @ encoding: [0x20,0xbf]
   3498 @ CHECK: wfi                            @ encoding: [0x30,0xbf]
   3499 @ CHECK: yield                          @ encoding: [0x10,0xbf]
   3500 @ CHECK: itet	lt                      @ encoding: [0xb6,0xbf]
   3501 @ CHECK: wfelt                          @ encoding: [0x20,0xbf]
   3502 @ CHECK: wfige                          @ encoding: [0x30,0xbf]
   3503 @ CHECK: yieldlt                        @ encoding: [0x10,0xbf]
   3504 @ CHECK: hint	#5                      @ encoding: [0xaf,0xf3,0x05,0x80]
   3505 @ CHECK: hint	#5                      @ encoding: [0xaf,0xf3,0x05,0x80]
   3506 @ CHECK: sev.w                          @ encoding: [0xaf,0xf3,0x04,0x80]
   3507 @ CHECK: wfi.w                          @ encoding: [0xaf,0xf3,0x03,0x80]
   3508 @ CHECK: wfe.w                          @ encoding: [0xaf,0xf3,0x02,0x80]
   3509 @ CHECK: yield.w                        @ encoding: [0xaf,0xf3,0x01,0x80]
   3510 @ CHECK: nop.w                          @ encoding: [0xaf,0xf3,0x00,0x80]
   3511 
   3512 
   3513 @------------------------------------------------------------------------------
   3514 @ Alternate syntax for LDR*(literal) encodings
   3515 @------------------------------------------------------------------------------
   3516         ldr r11, [pc, #-22]
   3517         ldrb r11, [pc, #-22]
   3518         ldrh r11, [pc, #-22]
   3519         ldrsb r11, [pc, #-22]
   3520         ldrsh r11, [pc, #-22]
   3521 
   3522         ldr.w r11, [pc, #-22]
   3523         ldrb.w r11, [pc, #-22]
   3524         ldrh.w r11, [pc, #-22]
   3525         ldrsb.w r11, [pc, #-22]
   3526         ldrsh.w r11, [pc, #-22]
   3527 
   3528 @ CHECK: ldr.w	r11, [pc, #-22]         @ encoding: [0x5f,0xf8,0x16,0xb0]
   3529 @ CHECK: ldrb.w	r11, [pc, #-22]         @ encoding: [0x1f,0xf8,0x16,0xb0]
   3530 @ CHECK: ldrh.w	r11, [pc, #-22]         @ encoding: [0x3f,0xf8,0x16,0xb0]
   3531 @ CHECK: ldrsb.w r11, [pc, #-22]        @ encoding: [0x1f,0xf9,0x16,0xb0]
   3532 @ CHECK: ldrsh.w r11, [pc, #-22]        @ encoding: [0x3f,0xf9,0x16,0xb0]
   3533 @ CHECK: ldr.w	r11, [pc, #-22]         @ encoding: [0x5f,0xf8,0x16,0xb0]
   3534 @ CHECK: ldrb.w	r11, [pc, #-22]         @ encoding: [0x1f,0xf8,0x16,0xb0]
   3535 @ CHECK: ldrh.w	r11, [pc, #-22]         @ encoding: [0x3f,0xf8,0x16,0xb0]
   3536 @ CHECK: ldrsb.w r11, [pc, #-22]        @ encoding: [0x1f,0xf9,0x16,0xb0]
   3537 @ CHECK: ldrsh.w r11, [pc, #-22]        @ encoding: [0x3f,0xf9,0x16,0xb0]
   3538 
   3539 @ rdar://12596361
   3540         ldr r1, [pc, #12]
   3541 @ CHECK: ldr.n r1, [pc, #12]        @ encoding: [0x03,0x49]
   3542