Compiler projects using llvm
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=thumbv7-m-none-none-eabi -mcpu=cortex-m4 -instruction-tables < %s | FileCheck %s

adc r0, r1, #0
adcs r0, r1, #0
adcs r0, r1
adc.w r0, r1, r2
adcs.w r0, r1, r2
adc.w r0, r1, r2, LSL #1
adcs.w r0, r1, r2, LSL #1
add r0, sp, #1
add sp, #1
add.w r0, sp, #1
adds.w r0, sp, #1
addw r0, sp, #1
add r0, sp, r0
add sp, r1
add.w r0, sp, r1
adds.w r0, sp, r1
add.w r0, sp, r1, LSL #1
adds.w r0, sp, r1, LSL #1
adds r0, r1, #1
adds r0, #42
add.w r0, r1, #1
adds.w r0, r1, #1
addw r0, r1, #1
adds r0, r1, r2
add r0, r1
add.w r0, r1, r2
adds.w r0, r1, r2
add.w r0, r1, r2, LSL #1
adds.w r0, r1, r2, LSL #1
adr r0, #-6
adr r8, #-6
adr.w r0, #-6
and r0, r1, #1
ands r0, r1, #1
ands r1, r0
and.w r0, r1, r2
ands.w r0, r1, r2
and.w r0, r1, r2, LSL #1
ands.w r0, r1, r2, LSL #1
asrs r0, r1, #1
asr.w r0, r1, #1
asrs.w r0, r1, #1
asrs r0, r1
asr.w r0, r1, r2
asrs.w r0, r1, r2
bfc r0, #1, #2
bfi r0, r1, #1, #2
bic r0, r1, #1
bics r0, r1, #1
bics r0, r1
bic.w r0, r1, r2
bics.w r0, r1, r2
bic.w r0, r1, r2, LSL #1
bics.w r0, r1, r2, LSL #1
bkpt #1
clrex
clz r0, r1
cmn r0, #1
cmn r0, r1
cmn.w r0, r1
cmn.w r0, r1, LSL #1
cmp r0, #1
cmp.w r0, #1
cmp r0, r1
cmp r0, r10
cmp.w r0, r1
cmp.w r0, r1, LSL #1
#cpsdb 1
#cpsie if
#dbg #1
dmb
dsb
eor r0, r1, #1
eors r0, r1, #1
eors r0, r1
eor.w r0, r1, r2
eors.w r0, r1, r2
eor.w r0, r1, r2, LSL #1
eors.w r0, r1, r2, LSL #1
isb
ldm r0!, {r1}
ldm r0, {r1}
ldm.w r0, {r1}
ldm.w r0!, {r1}
ldmdb r0, {r1}
ldmdb r0!, {r1}
ldr r0, [r1, #4]
ldr r0, [sp, #4]
ldr.w r0, [r1, #4]
ldr r0, [r1, #-1]
ldr r0, [r1], #1
ldr r0, [r1, #1]!
ldr r0, #4
ldr.w r0, #4
ldr r0, next
ldr.w r0, next
ldr r0, [r1, r2]
ldr.w r0, [r1, r2]
ldr.w r0, [r1, r2, LSL #1]
ldrb r0, [r1, #1]
ldrb.w r0, [r1, #1]
ldrb r0, [r1, #-1]
ldrb r0, [r1], #1
ldrb r0, [r1, #1]!
ldrb r0, #4
ldrb r0, next
ldrb r0, [r1, r2]
ldrb.w r0, [r1, r2]
ldrb.w r0, [r1, r2, LSL #1]
ldrbt r0, [r1, #1]
ldrd r0, r2, [r1]
ldrd r0, r2, [r1, #-4]
ldrd r0, r2, [r1], #4
ldrd r0, r2, [r1, #4]!
ldrd r0, r2, next
next:
ldrex r0, [r1]
ldrex r0, [r1, #4]
ldrexb r0, [r1]
ldrexh r0, [r1]
ldrh r0, [r1, #2]
ldrh.w r0, [r1, #1]
ldrh r0, [r1, #-1]
ldrh r0, [r1], #1
ldrh r0, [r1, #1]!
ldrh r0, #4
ldrh r0, next
ldrh r0, [r1, r2]
ldrh.w r0, [r1, r2]
ldrh.w r0, [r1, r2, LSL #1]
ldrht r0, [r1, #1]
ldrsb r0, [r1, #1]
ldrsb r0, [r1, #-1]
ldrsb r0, [r1], #1
ldrsb r0, [r1, #1]!
ldrsb r0, #4
ldrsb r0, next
ldrsb r0, [r1, r2]
ldrsb.w r0, [r1, r2]
ldrsb.w r0, [r1, r2, LSL #1]
ldrsbt r0, [r1, #1]
ldrsh r0, [r1, #2]
ldrsh r0, [r1, #-1]
ldrsh r0, [r1], #1
ldrsh r0, [r1, #1]!
ldrsh r0, #4
ldrsh r0, next
ldrsh r0, [r1, r2]
ldrsh.w r0, [r1, r2]
ldrsh.w r0, [r1, r2, LSL #1]
ldrsht r0, [r1, #1]
ldrt r0, [r1, #1]
lsls r0, r1, #1
lsl.w r0, r1, #1
lsls.w r0, r1, #1
lsls r0, r1
lsl.w r0, r1, r2
lsls.w r0, r1, r2
lsrs r0, r1, #1
lsr.w r0, r1, #1
lsrs.w r0, r1, #1
lsrs r0, r1
lsr.w r0, r1, r2
lsrs.w r0, r1, r2
mla r0, r1, r2, r3
mls r0, r1, r2, r3
movs r0, #1
mov.w r0, #1
movs.w r0, #1
movw r0, #1
mov r0, r1
#movs r0, r1
mov.w r0, r1
movs.w r0, r1
movt r0, #1
mrs r0, apsr
msr apsr, r0
muls r1, r2, r1
mul r0, r1, r2
mvn r0, #1
mvns r0, #1
mvns r0, r1
mvn.w r0, r1
mvns.w r0, r1
mvn.w r0, r1, LSL #1
mvns.w r0, r1, LSL #1
nop
orn r0, r1, #1
orns r0, r1, #1
orn r0, r1, r2
orns r0, r1, r2
orn r0, r1, r2, LSL #1
orns r0, r1, r2, LSL #1
orr r0, r1, #1
orrs r0, r1, #1
orrs r0, r1
orr r0, r1, r2
orrs r0, r1, r2
orr r0, r1, r2, LSL #1
orrs r0, r1, r2, LSL #1
pkhbt r0, r1, r2
pkhbt r0, r1, r2, LSL #1
pkhtb r0, r1, r2
pkhtb r0, r1, r2, ASR #1
pop { r0 }
pop.w { r0, r1 }
pop.w { r0 }
pssbb
push { r0 }
push.w { r0, r1 }
push.w { r0 }
qadd r0, r1, r2
qadd16 r0, r1, r2
qadd8 r0, r1, r2
qasx r0, r1, r2
qdadd r0, r1, r2
qdsub r0, r1, r2
qsax r0, r1, r2
qsub r0, r1, r2
qsub16 r0, r1, r2
qsub8 r0, r1, r2
rbit r0, r1
rev r0, r1
rev.w r0, r1
rev16 r0, r1
rev16.w r0, r1
revsh r0, r1
revsh.w r0, r1
ror r0, r1, #1
rors r0, r1, #1
rors r0, r1
ror.w r0, r1, r2
rors.w r0, r1, r2
rrx r0, r1
rrxs r0, r1
rsbs r0, r1, #0
rsb.w r0, r1, #1
rsbs.w r0, r1, #1
rsb r0, r1, r2
rsbs r0, r1, r2
rsb r0, r1, r2, LSL #1
rsbs r0, r1, r2, LSL #1
sadd16 r0, r1, r2
sadd8 r0, r1, r2
sasx r0, r1, r2
sbc r0, r1, #1
sbcs r0, r1, #1
sbcs r0, r1
sbc r0, r1, r2
sbcs r0, r1, r2
sbc r0, r1, r2, LSL #1
sbcs r0, r1, r2, LSL #1
sbfx r0, r1, #1, #2
sdiv r0, r1, r2
sel r0, r1, r2
sev
#sg
shadd16 r0, r1, r2
shadd8 r0, r1, r2
shasx r0, r1, r2
shsax r0, r1, r2
shsub16 r0, r1, r2
shsub8 r0, r1, r2
smlabb r0, r1, r2, r3
smlabt r0, r1, r2, r3
smlatb r0, r1, r2, r3
smlatt r0, r1, r2, r3
smlad r0, r1, r2, r3
smladx r0, r1, r2, r3
smlal r0, r1, r2, r3
smlalbb r0, r1, r2, r3
smlalbt r0, r1, r2, r3
smlaltb r0, r1, r2, r3
smlaltt r0, r1, r2, r3
smlald r0, r1, r2, r3
smlaldx r0, r1, r2, r3
smlawb r0, r1, r2, r3
smlawt r0, r1, r2, r3
smlsd r0, r1, r2, r3
smlsdx r0, r1, r2, r3
smlsld r0, r1, r2, r3
smlsldx r0, r1, r2, r3
smmla r0, r1, r2, r3
smmlar r0, r1, r2, r3
smmls r0, r1, r2, r3
smmlsr r0, r1, r2, r3
smmul r0, r1, r2
smmulr r0, r1, r2
smuad r0, r1, r2
smuadx r0, r1, r2
smulbb r0, r1, r2
smulbt r0, r1, r2
smultb r0, r1, r2
smultt r0, r1, r2
smull r0, r1, r2, r3
smulwb r0, r1, r2
smulwt r0, r1, r2
smusd r0, r1, r2
smusdx r0, r1, r2
ssat r0, #1, r2
ssat r0, #1, r2, LSL #1
ssat16 r0, #1, r1
ssax r0, r1, r2
ssbb
ssub16 r0, r1, r2
ssub8 r0, r1, r2
stm r0!, { r1 }
stm.w r0, { r1 }
stm.w r0!, { r1 }
stmdb r0, { r1 }
stmdb r0!, { r1 }
str r0, [ r1 ]
str r0, [ r1, #4 ]
str r0, [ sp, #4 ]
str.w r0, [ r1, #1 ]
str r0, [ r1, #-1 ]
str r0, [ r1 ], #1
#str r0, [ r1, #1 ]!
str r0, [ r1, r2 ]
str.w r0, [ r1, r2 ]
str.w r0, [ r1, r2, LSL #1 ]
strb r0, [ r1 ]
strb r0, [ r1, #1 ]
strb.w r0, [ r1, #1 ]
strb r0, [ r1, #-1 ]
strb r0, [ r1 ], #1
strb r0, [ r1, #1 ]!
strb r0, [ r1, r2 ]
strb.w r0, [ r1, r2 ]
strb.w r0, [ r1, r2, LSL #1 ]
strbt r0, [ r1, #1 ]
strd r0, r1, [ r2, #4 ]
strd r0, r1, [ r2 ], #4
strd r0, r1, [ r2, #4 ]!
strex r0, r1, [ r2 ]
strex r0, r1, [ r2, #4 ]
strexb r0, r1, [ r2 ]
strexh r0, r1, [ r2 ]
strh r0, [ r1 ]
strh r0, [ r1, #2 ]
strh.w r0, [ r1, #2 ]
strh r0, [ r1, #-1 ]
strh r0, [ r1 ], #1
strh r0, [ r1, #1 ]!
strh r0, [ r1, r2 ]
strh.w r0, [ r1, r2 ]
strh.w r0, [ r1, r2, LSL #1 ]
strht r0, [r1, #1 ]
strt r0, [r1, #1 ]
sub sp, sp, #4
sub.w r0, sp, #1
subs.w r0, sp, #1
subw r0, sp, #1
sub r0, sp, r1
subs r0, sp, r1
sub r0, sp, r1, LSL #1
subs r0, sp, r1, LSL #1
subs r0, r1, #1
subs r0, #1
sub.w r0, r1, #1
subs.w r0, r1, #1
subw r0, r1, #1
subs r0, r1, r2
sub.w r0, r1, r2
subs.w r0, r1, r2
sub.w r0, r1, r2, LSL #1
subs.w r0, r1, r2, LSL #1
#svc #1		; treated as a call
sxtab r0, r1, r2
sxtab r0, r1, r2, ROR #8
sxtab16 r0, r1, r2
sxtab16 r0, r1, r2, ROR #8
sxtah r0, r1, r2
sxtah r0, r1, r2, ROR #8
sxtb r0, r1
sxtb.w r0, r1
sxtb.w r0, r1, ROR #8
sxtb16 r0, r1
sxtb16 r0, r1, ROR #8
sxth r0, r1
sxth.w r0, r1
sxth.w r0, r1, ROR #8
tbb [r0, r1]
tbh [r0, r1, LSL #1]
teq r0, #1
teq r0, r1
teq r0, r1, LSL #1
tst r0, #1
tst r0, r1
tst.w r0, r1
tst.w r0, r1, LSL #1
#tt r0, r1
#ttt r0, r1
#tta r0, r1
#ttat r0, r1
uadd16 r0, r1, r2
uadd8 r0, r1, r2
uasx r0, r1, r2
ubfx r0, r1, #1, #2
#udf #1
udiv r0, r1, r2
uhadd16 r0, r1, r2
uhadd8 r0, r1, r2
uhasx r0, r1, r2
uhsax r0, r1, r2
uhsub16 r0, r1, r2
uhsub8 r0, r1, r2
umaal r0, r1, r2, r3
umlal r0, r1, r2, r3
umull r0, r1, r2, r3
uqadd16 r0, r1, r2
uqadd8 r0, r1, r2
uqasx r0, r1, r2
uqsax r0, r1, r2
uqsub16 r0, r1, r2
uqsub8 r0, r1, r2
usad8 r0, r1, r2
usada8 r0, r1, r2, r3
usat r0, #1, r1
usat r0, #1, r1, LSL #1
usat16 r0, #1, r1
usax r0, r1, r2
usub16 r0, r1, r2
usub8 r0, r1, r2
uxtab r0, r1, r2
uxtab r0, r1, r2, ROR #8
uxtab16 r0, r1, r2
uxtab16 r0, r1, r2, ROR #8
uxtah r0, r1, r2
uxtah r0, r1, r2, ROR #8
uxtb r0, r1
uxtb.w r0, r1
uxtb.w r0, r1, ROR #8
uxtb16 r0, r1
uxtb16 r0, r1, ROR #8
uxth r0, r1
uxth.w r0, r1
uxth.w r0, r1, ROR #8
wfe
wfi
forward:
yield

# CHECK:      Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: [3]: RThroughput
# CHECK-NEXT: [4]: MayLoad
# CHECK-NEXT: [5]: MayStore
# CHECK-NEXT: [6]: HasSideEffects (U)

# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
# CHECK-NEXT:  1      1     1.00                        adc	r0, r1, #0
# CHECK-NEXT:  1      1     1.00                        adcs	r0, r1, #0
# CHECK-NEXT:  1      1     1.00                  U     adcs	r0, r1
# CHECK-NEXT:  1      1     1.00                        adc.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        adcs.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        adc.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        adcs.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        add.w	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                  U     add.w	sp, sp, #1
# CHECK-NEXT:  1      1     1.00                        add.w	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                        addw	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                  U     add	r0, sp, r0
# CHECK-NEXT:  1      1     1.00                  U     add	sp, r1
# CHECK-NEXT:  1      1     1.00                        add.w	r0, sp, r1
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, sp, r1
# CHECK-NEXT:  1      1     1.00                        add.w	r0, sp, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, sp, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        adds	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        adds	r0, #42
# CHECK-NEXT:  1      1     1.00                        add.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        addw	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        adds	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        add	r0, r1
# CHECK-NEXT:  1      1     1.00                        add.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        add.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        adds.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                  U     adr.w	r0, #-6
# CHECK-NEXT:  1      1     1.00                  U     adr.w	r8, #-6
# CHECK-NEXT:  1      1     1.00                  U     adr.w	r0, #-6
# CHECK-NEXT:  1      1     1.00                        and	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        ands	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        ands	r1, r0
# CHECK-NEXT:  1      1     1.00                        and.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        ands.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        and.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        ands.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        asrs	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        asr.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        asrs.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        asrs	r0, r1
# CHECK-NEXT:  1      1     1.00                        asr.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        asrs.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        bfc	r0, #1, #2
# CHECK-NEXT:  1      1     1.00                        bfi	r0, r1, #1, #2
# CHECK-NEXT:  1      1     1.00                        bic	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        bics	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        bics	r0, r1
# CHECK-NEXT:  1      1     1.00                        bic.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        bics.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        bic.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        bics.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                  U     bkpt	#1
# CHECK-NEXT:  1      1     1.00    *      *      U     clrex
# CHECK-NEXT:  1      1     1.00                        clz	r0, r1
# CHECK-NEXT:  1      1     1.00                        cmn.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        cmn	r0, r1
# CHECK-NEXT:  1      1     1.00                        cmn.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        cmn.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        cmp	r0, #1
# CHECK-NEXT:  1      1     1.00                        cmp.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        cmp	r0, r1
# CHECK-NEXT:  1      1     1.00                  U     cmp	r0, r10
# CHECK-NEXT:  1      1     1.00                        cmp.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        cmp.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00    *      *      U     dmb	sy
# CHECK-NEXT:  1      1     1.00    *      *      U     dsb	sy
# CHECK-NEXT:  1      1     1.00                        eor	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        eors	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        eors	r0, r1
# CHECK-NEXT:  1      1     1.00                        eor.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        eors.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        eor.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        eors.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00    *      *      U     isb	sy
# CHECK-NEXT:  1      2     1.00    *                   ldm	r0!, {r1}
# CHECK-NEXT:  1      2     1.00    *                   ldm.w	r0, {r1}
# CHECK-NEXT:  1      2     1.00    *                   ldm.w	r0, {r1}
# CHECK-NEXT:  1      2     1.00    *                   ldr	r1, [r0], #4
# CHECK-NEXT:  1      2     1.00    *                   ldmdb	r0, {r1}
# CHECK-NEXT:  1      2     1.00    *                   ldmdb	r0!, {r1}
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [r1, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [sp, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldr.w	r0, [r1, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [r1, #-1]
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [r1], #1
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [r1, #1]!
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldr.w	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldr.w	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldr.w	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldr.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrb	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrb.w	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrb	r0, [r1, #-1]
# CHECK-NEXT:  1      2     1.00    *                   ldrb	r0, [r1], #1
# CHECK-NEXT:  1      2     1.00    *                   ldrb	r0, [r1, #1]!
# CHECK-NEXT:  1      2     1.00    *                   ldrb.w	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldrb.w	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldrb	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrb.w	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      2     1.00                  U     ldrbt	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrd	r0, r2, [r1]
# CHECK-NEXT:  1      2     1.00    *                   ldrd	r0, r2, [r1, #-4]
# CHECK-NEXT:  1      2     1.00    *                   ldrd	r0, r2, [r1], #4
# CHECK-NEXT:  1      2     1.00    *                   ldrd	r0, r2, [r1, #4]!
# CHECK-NEXT:  1      2     1.00    *                   ldrd	r0, r2, next
# CHECK-NEXT:  1      2     1.00    *      *      U     ldrex	r0, [r1]
# CHECK-NEXT:  1      2     1.00    *      *      U     ldrex	r0, [r1, #4]
# CHECK-NEXT:  1      2     1.00    *      *      U     ldrexb	r0, [r1]
# CHECK-NEXT:  1      2     1.00    *      *      U     ldrexh	r0, [r1]
# CHECK-NEXT:  1      2     1.00    *                   ldrh	r0, [r1, #2]
# CHECK-NEXT:  1      2     1.00    *                   ldrh.w	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrh	r0, [r1, #-1]
# CHECK-NEXT:  1      2     1.00    *                   ldrh	r0, [r1], #1
# CHECK-NEXT:  1      2     1.00    *                   ldrh	r0, [r1, #1]!
# CHECK-NEXT:  1      2     1.00    *                   ldrh.w	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldrh.w	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldrh	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrh.w	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      2     1.00                  U     ldrht	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb.w	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb	r0, [r1, #-1]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb	r0, [r1], #1
# CHECK-NEXT:  1      2     1.00    *                   ldrsb	r0, [r1, #1]!
# CHECK-NEXT:  1      2     1.00    *                   ldrsb.w	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb.w	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldrsb	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb.w	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrsb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      2     1.00                  U     ldrsbt	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh.w	r0, [r1, #2]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh	r0, [r1, #-1]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh	r0, [r1], #1
# CHECK-NEXT:  1      2     1.00    *                   ldrsh	r0, [r1, #1]!
# CHECK-NEXT:  1      2     1.00    *                   ldrsh.w	r0, [pc, #4]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh.w	r0, next
# CHECK-NEXT:  1      2     1.00    *                   ldrsh	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh.w	r0, [r1, r2]
# CHECK-NEXT:  1      2     1.00    *                   ldrsh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      2     1.00                  U     ldrsht	r0, [r1, #1]
# CHECK-NEXT:  1      2     1.00                  U     ldrt	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00                        lsls	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsl.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsls.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsls	r0, r1
# CHECK-NEXT:  1      1     1.00                        lsl.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        lsls.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        lsrs	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsr.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsrs.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        lsrs	r0, r1
# CHECK-NEXT:  1      1     1.00                        lsr.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        lsrs.w	r0, r1, r2
# CHECK-NEXT:  1      2     1.00                        mla	r0, r1, r2, r3
# CHECK-NEXT:  1      2     1.00                        mls	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        movs	r0, #1
# CHECK-NEXT:  1      1     1.00                        mov.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        movs.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        movw	r0, #1
# CHECK-NEXT:  1      1     1.00                        mov	r0, r1
# CHECK-NEXT:  1      1     1.00                        mov.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        movs.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        movt	r0, #1
# CHECK-NEXT:  1      1     1.00                  U     mrs	r0, apsr
# CHECK-NEXT:  1      1     1.00                  U     msr	apsr_nzcvq, r0
# CHECK-NEXT:  1      1     1.00                        muls	r1, r2, r1
# CHECK-NEXT:  1      1     1.00                        mul	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        mvn	r0, #1
# CHECK-NEXT:  1      1     1.00                        mvns	r0, #1
# CHECK-NEXT:  1      1     1.00                        mvns	r0, r1
# CHECK-NEXT:  1      1     1.00                        mvn.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        mvns.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        mvn.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        mvns.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00    *      *      U     nop
# CHECK-NEXT:  1      1     1.00                        orn	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        orns	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        orn	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        orns	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        orn	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        orns	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        orr	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        orrs	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        orrs	r0, r1
# CHECK-NEXT:  1      1     1.00                        orr.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        orrs.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        orr.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        orrs.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        pkhbt	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        pkhbt	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        pkhbt	r0, r2, r1
# CHECK-NEXT:  1      1     1.00                        pkhtb	r0, r1, r2, asr #1
# CHECK-NEXT:  1      2     1.00    *             U     pop	{r0}
# CHECK-NEXT:  1      2     1.00    *                   pop.w	{r0, r1}
# CHECK-NEXT:  1      2     1.00    *                   ldr	r0, [sp], #4
# CHECK-NEXT:  1      1     1.00    *      *      U     pssbb
# CHECK-NEXT:  1      1     1.00           *      U     push	{r0}
# CHECK-NEXT:  1      1     1.00           *            push.w	{r0, r1}
# CHECK-NEXT:  1      1     1.00           *            str	r0, [sp, #-4]!
# CHECK-NEXT:  1      1     1.00                        qadd	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qdadd	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qdsub	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qsax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qsub	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qsub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        qsub8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        rbit	r0, r1
# CHECK-NEXT:  1      1     1.00                        rev	r0, r1
# CHECK-NEXT:  1      1     1.00                        rev.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        rev16	r0, r1
# CHECK-NEXT:  1      1     1.00                        rev16.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        revsh	r0, r1
# CHECK-NEXT:  1      1     1.00                        revsh.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        ror.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        rors.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        rors	r0, r1
# CHECK-NEXT:  1      1     1.00                        ror.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        rors.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        rrx	r0, r1
# CHECK-NEXT:  1      1     1.00                        rrxs	r0, r1
# CHECK-NEXT:  1      1     1.00                        rsbs	r0, r1, #0
# CHECK-NEXT:  1      1     1.00                        rsb.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        rsbs.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                  U     rsb	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                  U     rsbs	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        rsb	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        rsbs	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00    *      *      U     sadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     sadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     sasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sbc	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        sbcs	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                  U     sbcs	r0, r1
# CHECK-NEXT:  1      1     1.00                        sbc.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sbcs.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sbc.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        sbcs.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        sbfx	r0, r1, #1, #2
# CHECK-NEXT:  1      2     1.00                        sdiv	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *                   sel	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     sev
# CHECK-NEXT:  1      1     1.00                        shadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        shadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        shasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        shsax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        shsub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        shsub8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smlabb	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlabt	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlatb	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlatt	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlad	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smladx	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlal	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlalbb	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlalbt	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlaltb	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlaltt	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlald	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlaldx	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlawb	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlawt	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlsd	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlsdx	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlsld	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smlsldx	r0, r1, r2, r3
# CHECK-NEXT:  1      2     1.00                        smmla	r0, r1, r2, r3
# CHECK-NEXT:  1      2     1.00                        smmlar	r0, r1, r2, r3
# CHECK-NEXT:  1      2     1.00                  U     smmls	r0, r1, r2, r3
# CHECK-NEXT:  1      2     1.00                        smmlsr	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smmul	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smmulr	r0, r1, r2
# CHECK-NEXT:  1      2     1.00                        smuad	r0, r1, r2
# CHECK-NEXT:  1      2     1.00                        smuadx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smulbb	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smulbt	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smultb	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smultt	r0, r1, r2
# CHECK-NEXT:  2      1     2.00                        smull	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        smulwb	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        smulwt	r0, r1, r2
# CHECK-NEXT:  1      2     1.00                        smusd	r0, r1, r2
# CHECK-NEXT:  1      2     1.00                        smusdx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        ssat	r0, #1, r2
# CHECK-NEXT:  1      1     1.00                        ssat	r0, #1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        ssat16	r0, #1, r1
# CHECK-NEXT:  1      1     1.00    *      *      U     ssax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     ssbb
# CHECK-NEXT:  1      1     1.00    *      *      U     ssub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     ssub8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00           *            stm	r0!, {r1}
# CHECK-NEXT:  1      1     1.00           *            stm.w	r0, {r1}
# CHECK-NEXT:  1      1     1.00           *            stm.w	r0!, {r1}
# CHECK-NEXT:  1      1     1.00           *            stmdb	r0, {r1}
# CHECK-NEXT:  1      1     1.00           *            str	r1, [r0, #-4]!
# CHECK-NEXT:  1      1     1.00           *            str	r0, [r1]
# CHECK-NEXT:  1      1     1.00           *            str	r0, [r1, #4]
# CHECK-NEXT:  1      1     1.00           *            str	r0, [sp, #4]
# CHECK-NEXT:  1      1     1.00           *            str.w	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00           *            str	r0, [r1, #-1]
# CHECK-NEXT:  1      1     1.00           *            str	r0, [r1], #1
# CHECK-NEXT:  1      1     1.00           *            str	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            str.w	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            str.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1]
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00           *            strb.w	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1, #-1]
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1], #1
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1, #1]!
# CHECK-NEXT:  1      1     1.00           *            strb	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            strb.w	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            strb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      1     1.00                  U     strbt	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00           *            strd	r0, r1, [r2, #4]
# CHECK-NEXT:  1      1     1.00           *            strd	r0, r1, [r2], #4
# CHECK-NEXT:  1      1     1.00           *            strd	r0, r1, [r2, #4]!
# CHECK-NEXT:  1      1     1.00    *      *      U     strex	r0, r1, [r2]
# CHECK-NEXT:  1      1     1.00    *      *      U     strex	r0, r1, [r2, #4]
# CHECK-NEXT:  1      1     1.00    *      *      U     strexb	r0, r1, [r2]
# CHECK-NEXT:  1      1     1.00    *      *      U     strexh	r0, r1, [r2]
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1]
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1, #2]
# CHECK-NEXT:  1      1     1.00           *            strh.w	r0, [r1, #2]
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1, #-1]
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1], #1
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1, #1]!
# CHECK-NEXT:  1      1     1.00           *            strh	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            strh.w	r0, [r1, r2]
# CHECK-NEXT:  1      1     1.00           *            strh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT:  1      1     1.00                  U     strht	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00                  U     strt	r0, [r1, #1]
# CHECK-NEXT:  1      1     1.00                  U     sub	sp, #4
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                        subw	r0, sp, #1
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, sp, r1
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, sp, r1
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, sp, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, sp, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        subs	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        subs	r0, #1
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        subw	r0, r1, #1
# CHECK-NEXT:  1      1     1.00                        subs	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sub.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        subs.w	r0, r1, r2, lsl #1
# CHECK-NEXT:  1      1     1.00                        sxtab	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sxtab	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        sxtab16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sxtab16	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        sxtah	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        sxtah	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        sxtb	r0, r1
# CHECK-NEXT:  1      1     1.00                        sxtb.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        sxtb.w	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00                        sxtb16	r0, r1
# CHECK-NEXT:  1      1     1.00                        sxtb16	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00                        sxth	r0, r1
# CHECK-NEXT:  1      1     1.00                        sxth.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        sxth.w	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00                  U     tbb	[r0, r1]
# CHECK-NEXT:  1      1     1.00                  U     tbh	[r0, r1, lsl #1]
# CHECK-NEXT:  1      1     1.00                        teq.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        teq.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        teq.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        tst.w	r0, #1
# CHECK-NEXT:  1      1     1.00                        tst	r0, r1
# CHECK-NEXT:  1      1     1.00                        tst.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        tst.w	r0, r1, lsl #1
# CHECK-NEXT:  1      1     1.00    *      *      U     uadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     uadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     uasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        ubfx	r0, r1, #1, #2
# CHECK-NEXT:  1      2     1.00                        udiv	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhsax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhsub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uhsub8	r0, r1, r2
# CHECK-NEXT:  2      2     2.00                        umaal	r0, r1, r2, r3
# CHECK-NEXT:  2      2     2.00                        umlal	r0, r1, r2, r3
# CHECK-NEXT:  2      1     2.00                        umull	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        uqadd16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uqadd8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uqasx	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uqsax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uqsub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uqsub8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        usad8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        usada8	r0, r1, r2, r3
# CHECK-NEXT:  1      1     1.00                        usat	r0, #1, r1
# CHECK-NEXT:  1      1     1.00                        usat	r0, #1, r1, lsl #1
# CHECK-NEXT:  1      1     1.00                        usat16	r0, #1, r1
# CHECK-NEXT:  1      1     1.00    *      *      U     usax	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     usub16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00    *      *      U     usub8	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uxtab	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uxtab	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        uxtab16	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uxtab16	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        uxtah	r0, r1, r2
# CHECK-NEXT:  1      1     1.00                        uxtah	r0, r1, r2, ror #8
# CHECK-NEXT:  1      1     1.00                        uxtb	r0, r1
# CHECK-NEXT:  1      1     1.00                        uxtb.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        uxtb.w	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00                        uxtb16	r0, r1
# CHECK-NEXT:  1      1     1.00                        uxtb16	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00                        uxth	r0, r1
# CHECK-NEXT:  1      1     1.00                        uxth.w	r0, r1
# CHECK-NEXT:  1      1     1.00                        uxth.w	r0, r1, ror #8
# CHECK-NEXT:  1      1     1.00    *      *      U     wfe
# CHECK-NEXT:  1      1     1.00    *      *      U     wfi
# CHECK-NEXT:  1      1     1.00    *      *      U     yield

# CHECK:      Resources:
# CHECK-NEXT: [0]   - M4Unit

# CHECK:      Resource pressure per iteration:
# CHECK-NEXT: [0]
# CHECK-NEXT: 432.00

# CHECK:      Resource pressure by instruction:
# CHECK-NEXT: [0]    Instructions:
# CHECK-NEXT: 1.00   adc	r0, r1, #0
# CHECK-NEXT: 1.00   adcs	r0, r1, #0
# CHECK-NEXT: 1.00   adcs	r0, r1
# CHECK-NEXT: 1.00   adc.w	r0, r1, r2
# CHECK-NEXT: 1.00   adcs.w	r0, r1, r2
# CHECK-NEXT: 1.00   adc.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   adcs.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   add.w	r0, sp, #1
# CHECK-NEXT: 1.00   add.w	sp, sp, #1
# CHECK-NEXT: 1.00   add.w	r0, sp, #1
# CHECK-NEXT: 1.00   adds.w	r0, sp, #1
# CHECK-NEXT: 1.00   addw	r0, sp, #1
# CHECK-NEXT: 1.00   add	r0, sp, r0
# CHECK-NEXT: 1.00   add	sp, r1
# CHECK-NEXT: 1.00   add.w	r0, sp, r1
# CHECK-NEXT: 1.00   adds.w	r0, sp, r1
# CHECK-NEXT: 1.00   add.w	r0, sp, r1, lsl #1
# CHECK-NEXT: 1.00   adds.w	r0, sp, r1, lsl #1
# CHECK-NEXT: 1.00   adds	r0, r1, #1
# CHECK-NEXT: 1.00   adds	r0, #42
# CHECK-NEXT: 1.00   add.w	r0, r1, #1
# CHECK-NEXT: 1.00   adds.w	r0, r1, #1
# CHECK-NEXT: 1.00   addw	r0, r1, #1
# CHECK-NEXT: 1.00   adds	r0, r1, r2
# CHECK-NEXT: 1.00   add	r0, r1
# CHECK-NEXT: 1.00   add.w	r0, r1, r2
# CHECK-NEXT: 1.00   adds.w	r0, r1, r2
# CHECK-NEXT: 1.00   add.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   adds.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   adr.w	r0, #-6
# CHECK-NEXT: 1.00   adr.w	r8, #-6
# CHECK-NEXT: 1.00   adr.w	r0, #-6
# CHECK-NEXT: 1.00   and	r0, r1, #1
# CHECK-NEXT: 1.00   ands	r0, r1, #1
# CHECK-NEXT: 1.00   ands	r1, r0
# CHECK-NEXT: 1.00   and.w	r0, r1, r2
# CHECK-NEXT: 1.00   ands.w	r0, r1, r2
# CHECK-NEXT: 1.00   and.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   ands.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   asrs	r0, r1, #1
# CHECK-NEXT: 1.00   asr.w	r0, r1, #1
# CHECK-NEXT: 1.00   asrs.w	r0, r1, #1
# CHECK-NEXT: 1.00   asrs	r0, r1
# CHECK-NEXT: 1.00   asr.w	r0, r1, r2
# CHECK-NEXT: 1.00   asrs.w	r0, r1, r2
# CHECK-NEXT: 1.00   bfc	r0, #1, #2
# CHECK-NEXT: 1.00   bfi	r0, r1, #1, #2
# CHECK-NEXT: 1.00   bic	r0, r1, #1
# CHECK-NEXT: 1.00   bics	r0, r1, #1
# CHECK-NEXT: 1.00   bics	r0, r1
# CHECK-NEXT: 1.00   bic.w	r0, r1, r2
# CHECK-NEXT: 1.00   bics.w	r0, r1, r2
# CHECK-NEXT: 1.00   bic.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   bics.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   bkpt	#1
# CHECK-NEXT: 1.00   clrex
# CHECK-NEXT: 1.00   clz	r0, r1
# CHECK-NEXT: 1.00   cmn.w	r0, #1
# CHECK-NEXT: 1.00   cmn	r0, r1
# CHECK-NEXT: 1.00   cmn.w	r0, r1
# CHECK-NEXT: 1.00   cmn.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   cmp	r0, #1
# CHECK-NEXT: 1.00   cmp.w	r0, #1
# CHECK-NEXT: 1.00   cmp	r0, r1
# CHECK-NEXT: 1.00   cmp	r0, r10
# CHECK-NEXT: 1.00   cmp.w	r0, r1
# CHECK-NEXT: 1.00   cmp.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   dmb	sy
# CHECK-NEXT: 1.00   dsb	sy
# CHECK-NEXT: 1.00   eor	r0, r1, #1
# CHECK-NEXT: 1.00   eors	r0, r1, #1
# CHECK-NEXT: 1.00   eors	r0, r1
# CHECK-NEXT: 1.00   eor.w	r0, r1, r2
# CHECK-NEXT: 1.00   eors.w	r0, r1, r2
# CHECK-NEXT: 1.00   eor.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   eors.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   isb	sy
# CHECK-NEXT: 1.00   ldm	r0!, {r1}
# CHECK-NEXT: 1.00   ldm.w	r0, {r1}
# CHECK-NEXT: 1.00   ldm.w	r0, {r1}
# CHECK-NEXT: 1.00   ldr	r1, [r0], #4
# CHECK-NEXT: 1.00   ldmdb	r0, {r1}
# CHECK-NEXT: 1.00   ldmdb	r0!, {r1}
# CHECK-NEXT: 1.00   ldr	r0, [r1, #4]
# CHECK-NEXT: 1.00   ldr	r0, [sp, #4]
# CHECK-NEXT: 1.00   ldr.w	r0, [r1, #4]
# CHECK-NEXT: 1.00   ldr	r0, [r1, #-1]
# CHECK-NEXT: 1.00   ldr	r0, [r1], #1
# CHECK-NEXT: 1.00   ldr	r0, [r1, #1]!
# CHECK-NEXT: 1.00   ldr	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldr.w	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldr	r0, next
# CHECK-NEXT: 1.00   ldr.w	r0, next
# CHECK-NEXT: 1.00   ldr	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldr.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldr.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   ldrb	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrb.w	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrb	r0, [r1, #-1]
# CHECK-NEXT: 1.00   ldrb	r0, [r1], #1
# CHECK-NEXT: 1.00   ldrb	r0, [r1, #1]!
# CHECK-NEXT: 1.00   ldrb.w	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldrb.w	r0, next
# CHECK-NEXT: 1.00   ldrb	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrb.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   ldrbt	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrd	r0, r2, [r1]
# CHECK-NEXT: 1.00   ldrd	r0, r2, [r1, #-4]
# CHECK-NEXT: 1.00   ldrd	r0, r2, [r1], #4
# CHECK-NEXT: 1.00   ldrd	r0, r2, [r1, #4]!
# CHECK-NEXT: 1.00   ldrd	r0, r2, next
# CHECK-NEXT: 1.00   ldrex	r0, [r1]
# CHECK-NEXT: 1.00   ldrex	r0, [r1, #4]
# CHECK-NEXT: 1.00   ldrexb	r0, [r1]
# CHECK-NEXT: 1.00   ldrexh	r0, [r1]
# CHECK-NEXT: 1.00   ldrh	r0, [r1, #2]
# CHECK-NEXT: 1.00   ldrh.w	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrh	r0, [r1, #-1]
# CHECK-NEXT: 1.00   ldrh	r0, [r1], #1
# CHECK-NEXT: 1.00   ldrh	r0, [r1, #1]!
# CHECK-NEXT: 1.00   ldrh.w	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldrh.w	r0, next
# CHECK-NEXT: 1.00   ldrh	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrh.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   ldrht	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrsb.w	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrsb	r0, [r1, #-1]
# CHECK-NEXT: 1.00   ldrsb	r0, [r1], #1
# CHECK-NEXT: 1.00   ldrsb	r0, [r1, #1]!
# CHECK-NEXT: 1.00   ldrsb.w	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldrsb.w	r0, next
# CHECK-NEXT: 1.00   ldrsb	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrsb.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrsb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   ldrsbt	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrsh.w	r0, [r1, #2]
# CHECK-NEXT: 1.00   ldrsh	r0, [r1, #-1]
# CHECK-NEXT: 1.00   ldrsh	r0, [r1], #1
# CHECK-NEXT: 1.00   ldrsh	r0, [r1, #1]!
# CHECK-NEXT: 1.00   ldrsh.w	r0, [pc, #4]
# CHECK-NEXT: 1.00   ldrsh.w	r0, next
# CHECK-NEXT: 1.00   ldrsh	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrsh.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   ldrsh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   ldrsht	r0, [r1, #1]
# CHECK-NEXT: 1.00   ldrt	r0, [r1, #1]
# CHECK-NEXT: 1.00   lsls	r0, r1, #1
# CHECK-NEXT: 1.00   lsl.w	r0, r1, #1
# CHECK-NEXT: 1.00   lsls.w	r0, r1, #1
# CHECK-NEXT: 1.00   lsls	r0, r1
# CHECK-NEXT: 1.00   lsl.w	r0, r1, r2
# CHECK-NEXT: 1.00   lsls.w	r0, r1, r2
# CHECK-NEXT: 1.00   lsrs	r0, r1, #1
# CHECK-NEXT: 1.00   lsr.w	r0, r1, #1
# CHECK-NEXT: 1.00   lsrs.w	r0, r1, #1
# CHECK-NEXT: 1.00   lsrs	r0, r1
# CHECK-NEXT: 1.00   lsr.w	r0, r1, r2
# CHECK-NEXT: 1.00   lsrs.w	r0, r1, r2
# CHECK-NEXT: 1.00   mla	r0, r1, r2, r3
# CHECK-NEXT: 1.00   mls	r0, r1, r2, r3
# CHECK-NEXT: 1.00   movs	r0, #1
# CHECK-NEXT: 1.00   mov.w	r0, #1
# CHECK-NEXT: 1.00   movs.w	r0, #1
# CHECK-NEXT: 1.00   movw	r0, #1
# CHECK-NEXT: 1.00   mov	r0, r1
# CHECK-NEXT: 1.00   mov.w	r0, r1
# CHECK-NEXT: 1.00   movs.w	r0, r1
# CHECK-NEXT: 1.00   movt	r0, #1
# CHECK-NEXT: 1.00   mrs	r0, apsr
# CHECK-NEXT: 1.00   msr	apsr_nzcvq, r0
# CHECK-NEXT: 1.00   muls	r1, r2, r1
# CHECK-NEXT: 1.00   mul	r0, r1, r2
# CHECK-NEXT: 1.00   mvn	r0, #1
# CHECK-NEXT: 1.00   mvns	r0, #1
# CHECK-NEXT: 1.00   mvns	r0, r1
# CHECK-NEXT: 1.00   mvn.w	r0, r1
# CHECK-NEXT: 1.00   mvns.w	r0, r1
# CHECK-NEXT: 1.00   mvn.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   mvns.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   nop
# CHECK-NEXT: 1.00   orn	r0, r1, #1
# CHECK-NEXT: 1.00   orns	r0, r1, #1
# CHECK-NEXT: 1.00   orn	r0, r1, r2
# CHECK-NEXT: 1.00   orns	r0, r1, r2
# CHECK-NEXT: 1.00   orn	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   orns	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   orr	r0, r1, #1
# CHECK-NEXT: 1.00   orrs	r0, r1, #1
# CHECK-NEXT: 1.00   orrs	r0, r1
# CHECK-NEXT: 1.00   orr.w	r0, r1, r2
# CHECK-NEXT: 1.00   orrs.w	r0, r1, r2
# CHECK-NEXT: 1.00   orr.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   orrs.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   pkhbt	r0, r1, r2
# CHECK-NEXT: 1.00   pkhbt	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   pkhbt	r0, r2, r1
# CHECK-NEXT: 1.00   pkhtb	r0, r1, r2, asr #1
# CHECK-NEXT: 1.00   pop	{r0}
# CHECK-NEXT: 1.00   pop.w	{r0, r1}
# CHECK-NEXT: 1.00   ldr	r0, [sp], #4
# CHECK-NEXT: 1.00   pssbb
# CHECK-NEXT: 1.00   push	{r0}
# CHECK-NEXT: 1.00   push.w	{r0, r1}
# CHECK-NEXT: 1.00   str	r0, [sp, #-4]!
# CHECK-NEXT: 1.00   qadd	r0, r1, r2
# CHECK-NEXT: 1.00   qadd16	r0, r1, r2
# CHECK-NEXT: 1.00   qadd8	r0, r1, r2
# CHECK-NEXT: 1.00   qasx	r0, r1, r2
# CHECK-NEXT: 1.00   qdadd	r0, r1, r2
# CHECK-NEXT: 1.00   qdsub	r0, r1, r2
# CHECK-NEXT: 1.00   qsax	r0, r1, r2
# CHECK-NEXT: 1.00   qsub	r0, r1, r2
# CHECK-NEXT: 1.00   qsub16	r0, r1, r2
# CHECK-NEXT: 1.00   qsub8	r0, r1, r2
# CHECK-NEXT: 1.00   rbit	r0, r1
# CHECK-NEXT: 1.00   rev	r0, r1
# CHECK-NEXT: 1.00   rev.w	r0, r1
# CHECK-NEXT: 1.00   rev16	r0, r1
# CHECK-NEXT: 1.00   rev16.w	r0, r1
# CHECK-NEXT: 1.00   revsh	r0, r1
# CHECK-NEXT: 1.00   revsh.w	r0, r1
# CHECK-NEXT: 1.00   ror.w	r0, r1, #1
# CHECK-NEXT: 1.00   rors.w	r0, r1, #1
# CHECK-NEXT: 1.00   rors	r0, r1
# CHECK-NEXT: 1.00   ror.w	r0, r1, r2
# CHECK-NEXT: 1.00   rors.w	r0, r1, r2
# CHECK-NEXT: 1.00   rrx	r0, r1
# CHECK-NEXT: 1.00   rrxs	r0, r1
# CHECK-NEXT: 1.00   rsbs	r0, r1, #0
# CHECK-NEXT: 1.00   rsb.w	r0, r1, #1
# CHECK-NEXT: 1.00   rsbs.w	r0, r1, #1
# CHECK-NEXT: 1.00   rsb	r0, r1, r2
# CHECK-NEXT: 1.00   rsbs	r0, r1, r2
# CHECK-NEXT: 1.00   rsb	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   rsbs	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   sadd16	r0, r1, r2
# CHECK-NEXT: 1.00   sadd8	r0, r1, r2
# CHECK-NEXT: 1.00   sasx	r0, r1, r2
# CHECK-NEXT: 1.00   sbc	r0, r1, #1
# CHECK-NEXT: 1.00   sbcs	r0, r1, #1
# CHECK-NEXT: 1.00   sbcs	r0, r1
# CHECK-NEXT: 1.00   sbc.w	r0, r1, r2
# CHECK-NEXT: 1.00   sbcs.w	r0, r1, r2
# CHECK-NEXT: 1.00   sbc.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   sbcs.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   sbfx	r0, r1, #1, #2
# CHECK-NEXT: 1.00   sdiv	r0, r1, r2
# CHECK-NEXT: 1.00   sel	r0, r1, r2
# CHECK-NEXT: 1.00   sev
# CHECK-NEXT: 1.00   shadd16	r0, r1, r2
# CHECK-NEXT: 1.00   shadd8	r0, r1, r2
# CHECK-NEXT: 1.00   shasx	r0, r1, r2
# CHECK-NEXT: 1.00   shsax	r0, r1, r2
# CHECK-NEXT: 1.00   shsub16	r0, r1, r2
# CHECK-NEXT: 1.00   shsub8	r0, r1, r2
# CHECK-NEXT: 1.00   smlabb	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlabt	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlatb	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlatt	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlad	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smladx	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlal	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlalbb	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlalbt	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlaltb	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlaltt	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlald	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlaldx	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlawb	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlawt	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlsd	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlsdx	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlsld	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smlsldx	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smmla	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smmlar	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smmls	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smmlsr	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smmul	r0, r1, r2
# CHECK-NEXT: 1.00   smmulr	r0, r1, r2
# CHECK-NEXT: 1.00   smuad	r0, r1, r2
# CHECK-NEXT: 1.00   smuadx	r0, r1, r2
# CHECK-NEXT: 1.00   smulbb	r0, r1, r2
# CHECK-NEXT: 1.00   smulbt	r0, r1, r2
# CHECK-NEXT: 1.00   smultb	r0, r1, r2
# CHECK-NEXT: 1.00   smultt	r0, r1, r2
# CHECK-NEXT: 2.00   smull	r0, r1, r2, r3
# CHECK-NEXT: 1.00   smulwb	r0, r1, r2
# CHECK-NEXT: 1.00   smulwt	r0, r1, r2
# CHECK-NEXT: 1.00   smusd	r0, r1, r2
# CHECK-NEXT: 1.00   smusdx	r0, r1, r2
# CHECK-NEXT: 1.00   ssat	r0, #1, r2
# CHECK-NEXT: 1.00   ssat	r0, #1, r2, lsl #1
# CHECK-NEXT: 1.00   ssat16	r0, #1, r1
# CHECK-NEXT: 1.00   ssax	r0, r1, r2
# CHECK-NEXT: 1.00   ssbb
# CHECK-NEXT: 1.00   ssub16	r0, r1, r2
# CHECK-NEXT: 1.00   ssub8	r0, r1, r2
# CHECK-NEXT: 1.00   stm	r0!, {r1}
# CHECK-NEXT: 1.00   stm.w	r0, {r1}
# CHECK-NEXT: 1.00   stm.w	r0!, {r1}
# CHECK-NEXT: 1.00   stmdb	r0, {r1}
# CHECK-NEXT: 1.00   str	r1, [r0, #-4]!
# CHECK-NEXT: 1.00   str	r0, [r1]
# CHECK-NEXT: 1.00   str	r0, [r1, #4]
# CHECK-NEXT: 1.00   str	r0, [sp, #4]
# CHECK-NEXT: 1.00   str.w	r0, [r1, #1]
# CHECK-NEXT: 1.00   str	r0, [r1, #-1]
# CHECK-NEXT: 1.00   str	r0, [r1], #1
# CHECK-NEXT: 1.00   str	r0, [r1, r2]
# CHECK-NEXT: 1.00   str.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   str.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   strb	r0, [r1]
# CHECK-NEXT: 1.00   strb	r0, [r1, #1]
# CHECK-NEXT: 1.00   strb.w	r0, [r1, #1]
# CHECK-NEXT: 1.00   strb	r0, [r1, #-1]
# CHECK-NEXT: 1.00   strb	r0, [r1], #1
# CHECK-NEXT: 1.00   strb	r0, [r1, #1]!
# CHECK-NEXT: 1.00   strb	r0, [r1, r2]
# CHECK-NEXT: 1.00   strb.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   strb.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   strbt	r0, [r1, #1]
# CHECK-NEXT: 1.00   strd	r0, r1, [r2, #4]
# CHECK-NEXT: 1.00   strd	r0, r1, [r2], #4
# CHECK-NEXT: 1.00   strd	r0, r1, [r2, #4]!
# CHECK-NEXT: 1.00   strex	r0, r1, [r2]
# CHECK-NEXT: 1.00   strex	r0, r1, [r2, #4]
# CHECK-NEXT: 1.00   strexb	r0, r1, [r2]
# CHECK-NEXT: 1.00   strexh	r0, r1, [r2]
# CHECK-NEXT: 1.00   strh	r0, [r1]
# CHECK-NEXT: 1.00   strh	r0, [r1, #2]
# CHECK-NEXT: 1.00   strh.w	r0, [r1, #2]
# CHECK-NEXT: 1.00   strh	r0, [r1, #-1]
# CHECK-NEXT: 1.00   strh	r0, [r1], #1
# CHECK-NEXT: 1.00   strh	r0, [r1, #1]!
# CHECK-NEXT: 1.00   strh	r0, [r1, r2]
# CHECK-NEXT: 1.00   strh.w	r0, [r1, r2]
# CHECK-NEXT: 1.00   strh.w	r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1.00   strht	r0, [r1, #1]
# CHECK-NEXT: 1.00   strt	r0, [r1, #1]
# CHECK-NEXT: 1.00   sub	sp, #4
# CHECK-NEXT: 1.00   sub.w	r0, sp, #1
# CHECK-NEXT: 1.00   subs.w	r0, sp, #1
# CHECK-NEXT: 1.00   subw	r0, sp, #1
# CHECK-NEXT: 1.00   sub.w	r0, sp, r1
# CHECK-NEXT: 1.00   subs.w	r0, sp, r1
# CHECK-NEXT: 1.00   sub.w	r0, sp, r1, lsl #1
# CHECK-NEXT: 1.00   subs.w	r0, sp, r1, lsl #1
# CHECK-NEXT: 1.00   subs	r0, r1, #1
# CHECK-NEXT: 1.00   subs	r0, #1
# CHECK-NEXT: 1.00   sub.w	r0, r1, #1
# CHECK-NEXT: 1.00   subs.w	r0, r1, #1
# CHECK-NEXT: 1.00   subw	r0, r1, #1
# CHECK-NEXT: 1.00   subs	r0, r1, r2
# CHECK-NEXT: 1.00   sub.w	r0, r1, r2
# CHECK-NEXT: 1.00   subs.w	r0, r1, r2
# CHECK-NEXT: 1.00   sub.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   subs.w	r0, r1, r2, lsl #1
# CHECK-NEXT: 1.00   sxtab	r0, r1, r2
# CHECK-NEXT: 1.00   sxtab	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   sxtab16	r0, r1, r2
# CHECK-NEXT: 1.00   sxtab16	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   sxtah	r0, r1, r2
# CHECK-NEXT: 1.00   sxtah	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   sxtb	r0, r1
# CHECK-NEXT: 1.00   sxtb.w	r0, r1
# CHECK-NEXT: 1.00   sxtb.w	r0, r1, ror #8
# CHECK-NEXT: 1.00   sxtb16	r0, r1
# CHECK-NEXT: 1.00   sxtb16	r0, r1, ror #8
# CHECK-NEXT: 1.00   sxth	r0, r1
# CHECK-NEXT: 1.00   sxth.w	r0, r1
# CHECK-NEXT: 1.00   sxth.w	r0, r1, ror #8
# CHECK-NEXT: 1.00   tbb	[r0, r1]
# CHECK-NEXT: 1.00   tbh	[r0, r1, lsl #1]
# CHECK-NEXT: 1.00   teq.w	r0, #1
# CHECK-NEXT: 1.00   teq.w	r0, r1
# CHECK-NEXT: 1.00   teq.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   tst.w	r0, #1
# CHECK-NEXT: 1.00   tst	r0, r1
# CHECK-NEXT: 1.00   tst.w	r0, r1
# CHECK-NEXT: 1.00   tst.w	r0, r1, lsl #1
# CHECK-NEXT: 1.00   uadd16	r0, r1, r2
# CHECK-NEXT: 1.00   uadd8	r0, r1, r2
# CHECK-NEXT: 1.00   uasx	r0, r1, r2
# CHECK-NEXT: 1.00   ubfx	r0, r1, #1, #2
# CHECK-NEXT: 1.00   udiv	r0, r1, r2
# CHECK-NEXT: 1.00   uhadd16	r0, r1, r2
# CHECK-NEXT: 1.00   uhadd8	r0, r1, r2
# CHECK-NEXT: 1.00   uhasx	r0, r1, r2
# CHECK-NEXT: 1.00   uhsax	r0, r1, r2
# CHECK-NEXT: 1.00   uhsub16	r0, r1, r2
# CHECK-NEXT: 1.00   uhsub8	r0, r1, r2
# CHECK-NEXT: 2.00   umaal	r0, r1, r2, r3
# CHECK-NEXT: 2.00   umlal	r0, r1, r2, r3
# CHECK-NEXT: 2.00   umull	r0, r1, r2, r3
# CHECK-NEXT: 1.00   uqadd16	r0, r1, r2
# CHECK-NEXT: 1.00   uqadd8	r0, r1, r2
# CHECK-NEXT: 1.00   uqasx	r0, r1, r2
# CHECK-NEXT: 1.00   uqsax	r0, r1, r2
# CHECK-NEXT: 1.00   uqsub16	r0, r1, r2
# CHECK-NEXT: 1.00   uqsub8	r0, r1, r2
# CHECK-NEXT: 1.00   usad8	r0, r1, r2
# CHECK-NEXT: 1.00   usada8	r0, r1, r2, r3
# CHECK-NEXT: 1.00   usat	r0, #1, r1
# CHECK-NEXT: 1.00   usat	r0, #1, r1, lsl #1
# CHECK-NEXT: 1.00   usat16	r0, #1, r1
# CHECK-NEXT: 1.00   usax	r0, r1, r2
# CHECK-NEXT: 1.00   usub16	r0, r1, r2
# CHECK-NEXT: 1.00   usub8	r0, r1, r2
# CHECK-NEXT: 1.00   uxtab	r0, r1, r2
# CHECK-NEXT: 1.00   uxtab	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   uxtab16	r0, r1, r2
# CHECK-NEXT: 1.00   uxtab16	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   uxtah	r0, r1, r2
# CHECK-NEXT: 1.00   uxtah	r0, r1, r2, ror #8
# CHECK-NEXT: 1.00   uxtb	r0, r1
# CHECK-NEXT: 1.00   uxtb.w	r0, r1
# CHECK-NEXT: 1.00   uxtb.w	r0, r1, ror #8
# CHECK-NEXT: 1.00   uxtb16	r0, r1
# CHECK-NEXT: 1.00   uxtb16	r0, r1, ror #8
# CHECK-NEXT: 1.00   uxth	r0, r1
# CHECK-NEXT: 1.00   uxth.w	r0, r1
# CHECK-NEXT: 1.00   uxth.w	r0, r1, ror #8
# CHECK-NEXT: 1.00   wfe
# CHECK-NEXT: 1.00   wfi
# CHECK-NEXT: 1.00   yield