blob: 4768dcf296bc75c632a08210237c986864994228 [file] [log] [blame]
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=thumbv7-m.main-none-none-eabi -mcpu=cortex-m7 -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
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
add r0, sp, #1
add sp, 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
adr 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
#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
#it eq
#adceq r0, r1, #1
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, [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, [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, [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, [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, [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
nop.w
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 }
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
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
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 ]
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
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
#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
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
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 0.50 adc r0, r1, #0
# CHECK-NEXT: 1 1 0.50 adcs r0, r1, #0
# CHECK-NEXT: 1 1 0.50 U adcs r0, r1
# CHECK-NEXT: 1 1 0.50 adc.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 adcs.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 adc.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 adcs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 1 0.50 adds r0, r1, #1
# CHECK-NEXT: 1 1 0.50 adds r0, #42
# CHECK-NEXT: 1 1 0.50 add.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 adds.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 addw r0, r1, #1
# CHECK-NEXT: 1 1 0.50 adds r0, r1, r2
# CHECK-NEXT: 1 1 0.50 add r0, r1
# CHECK-NEXT: 1 1 0.50 add.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 adds.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 add.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 adds.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 1 0.50 add.w r0, sp, #1
# CHECK-NEXT: 1 1 0.50 U add.w sp, sp, #1
# CHECK-NEXT: 1 1 0.50 add.w r0, sp, #1
# CHECK-NEXT: 1 1 0.50 adds.w r0, sp, #1
# CHECK-NEXT: 1 1 0.50 addw r0, sp, #1
# CHECK-NEXT: 1 1 0.50 U add r0, sp, r0
# CHECK-NEXT: 1 1 0.50 U add sp, r1
# CHECK-NEXT: 1 1 0.50 add.w r0, sp, r1
# CHECK-NEXT: 1 1 0.50 adds.w r0, sp, r1
# CHECK-NEXT: 1 2 1.00 add.w r0, sp, r1, lsl #1
# CHECK-NEXT: 1 2 1.00 adds.w r0, sp, r1, lsl #1
# CHECK-NEXT: 1 1 0.50 U adr.w r0, #-6
# CHECK-NEXT: 1 1 0.50 and r0, r1, #1
# CHECK-NEXT: 1 1 0.50 ands r0, r1, #1
# CHECK-NEXT: 1 1 0.50 ands r1, r0
# CHECK-NEXT: 1 1 0.50 and.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 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 0.50 bic r0, r1, #1
# CHECK-NEXT: 1 1 0.50 bics r0, r1, #1
# CHECK-NEXT: 1 1 0.50 bics r0, r1
# CHECK-NEXT: 1 1 0.50 bic.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 bics.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 bic.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 bics.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 3 0.50 U bkpt #1
# CHECK-NEXT: 1 3 0.50 * * U clrex
# CHECK-NEXT: 1 1 0.50 clz r0, r1
# CHECK-NEXT: 1 1 0.50 cmn.w r0, #1
# CHECK-NEXT: 1 1 0.50 cmn r0, r1
# CHECK-NEXT: 1 1 0.50 cmn.w r0, r1
# CHECK-NEXT: 1 2 1.00 cmn.w r0, r1, lsl #1
# CHECK-NEXT: 1 1 0.50 cmp r0, #1
# CHECK-NEXT: 1 1 0.50 cmp.w r0, #1
# CHECK-NEXT: 1 1 0.50 cmp r0, r1
# CHECK-NEXT: 1 1 0.50 U cmp r0, r10
# CHECK-NEXT: 1 1 0.50 cmp.w r0, r1
# CHECK-NEXT: 1 2 1.00 cmp.w r0, r1, lsl #1
# CHECK-NEXT: 1 3 0.50 * * U dmb sy
# CHECK-NEXT: 1 3 0.50 * * U dsb sy
# CHECK-NEXT: 1 1 0.50 eor r0, r1, #1
# CHECK-NEXT: 1 1 0.50 eors r0, r1, #1
# CHECK-NEXT: 1 1 0.50 eors r0, r1
# CHECK-NEXT: 1 1 0.50 eor.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 eors.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 eor.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 eors.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 3 0.50 * * U isb sy
# CHECK-NEXT: 1 2 0.50 * ldm r0!, {r1}
# CHECK-NEXT: 1 2 0.50 * ldm.w r0, {r1}
# CHECK-NEXT: 1 2 0.50 * ldm.w r0, {r1}
# CHECK-NEXT: 1 2 0.50 * ldr r1, [r0], #4
# CHECK-NEXT: 1 2 0.50 * ldmdb r0, {r1}
# CHECK-NEXT: 1 2 0.50 * ldmdb r0!, {r1}
# CHECK-NEXT: 1 2 0.50 * ldr r0, [r1, #4]
# CHECK-NEXT: 1 2 0.50 * ldr r0, [sp, #4]
# CHECK-NEXT: 1 2 0.50 * ldr.w r0, [r1, #4]
# CHECK-NEXT: 1 2 0.50 * ldr r0, [r1, #-1]
# CHECK-NEXT: 1 2 0.50 * ldr r0, [r1], #1
# CHECK-NEXT: 1 2 0.50 * ldr r0, [r1, #1]!
# CHECK-NEXT: 1 1 0.50 * ldr r0, [pc, #4]
# CHECK-NEXT: 1 1 0.50 * ldr.w r0, [pc, #4]
# CHECK-NEXT: 1 2 0.50 * ldr r0, [r1, r2]
# CHECK-NEXT: 1 2 0.50 * ldr.w r0, [r1, r2]
# CHECK-NEXT: 1 2 0.50 * ldr.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 0.50 * ldrb r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrb.w r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrb r0, [r1, #-1]
# CHECK-NEXT: 1 3 0.50 * ldrb r0, [r1], #1
# CHECK-NEXT: 1 3 0.50 * ldrb r0, [r1, #1]!
# CHECK-NEXT: 1 2 0.50 * ldrb.w r0, [pc, #4]
# CHECK-NEXT: 1 3 0.50 * ldrb r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrb.w r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrb.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 0.50 U ldrbt r0, [r1, #1]
# CHECK-NEXT: 1 2 0.50 * ldrd r0, r2, [r1]
# CHECK-NEXT: 1 2 0.50 * ldrd r0, r2, [r1, #-4]
# CHECK-NEXT: 1 2 0.50 * ldrd r0, r2, [r1], #4
# CHECK-NEXT: 1 2 0.50 * ldrd r0, r2, [r1, #4]!
# CHECK-NEXT: 1 2 0.50 * ldrd r0, r2, next
# CHECK-NEXT: 1 2 0.50 * * U ldrex r0, [r1]
# CHECK-NEXT: 1 2 0.50 * * U ldrex r0, [r1, #4]
# CHECK-NEXT: 1 3 0.50 * * U ldrexb r0, [r1]
# CHECK-NEXT: 1 3 0.50 * * U ldrexh r0, [r1]
# CHECK-NEXT: 1 3 0.50 * ldrh r0, [r1, #2]
# CHECK-NEXT: 1 3 0.50 * ldrh.w r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrh r0, [r1, #-1]
# CHECK-NEXT: 1 3 0.50 * ldrh r0, [r1], #1
# CHECK-NEXT: 1 3 0.50 * ldrh r0, [r1, #1]!
# CHECK-NEXT: 1 2 0.50 * ldrh.w r0, [pc, #4]
# CHECK-NEXT: 1 3 0.50 * ldrh r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrh.w r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrh.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 0.50 U ldrht r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrsb.w r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrsb r0, [r1, #-1]
# CHECK-NEXT: 1 3 0.50 * ldrsb r0, [r1], #1
# CHECK-NEXT: 1 3 0.50 * ldrsb r0, [r1, #1]!
# CHECK-NEXT: 1 2 0.50 * ldrsb.w r0, [pc, #4]
# CHECK-NEXT: 1 3 0.50 * ldrsb r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrsb.w r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrsb.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 0.50 U ldrsbt r0, [r1, #1]
# CHECK-NEXT: 1 3 0.50 * ldrsh.w r0, [r1, #2]
# CHECK-NEXT: 1 3 0.50 * ldrsh r0, [r1, #-1]
# CHECK-NEXT: 1 3 0.50 * ldrsh r0, [r1], #1
# CHECK-NEXT: 1 3 0.50 * ldrsh r0, [r1, #1]!
# CHECK-NEXT: 1 2 0.50 * ldrsh.w r0, [pc, #4]
# CHECK-NEXT: 1 3 0.50 * ldrsh r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrsh.w r0, [r1, r2]
# CHECK-NEXT: 1 3 0.50 * ldrsh.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 0.50 U ldrsht r0, [r1, #1]
# CHECK-NEXT: 1 2 0.50 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 0.50 movs r0, #1
# CHECK-NEXT: 1 1 0.50 mov.w r0, #1
# CHECK-NEXT: 1 1 0.50 movs.w r0, #1
# CHECK-NEXT: 1 1 0.50 movw r0, #1
# CHECK-NEXT: 1 1 0.50 mov r0, r1
# CHECK-NEXT: 1 1 0.50 mov.w r0, r1
# CHECK-NEXT: 1 1 0.50 movs.w r0, r1
# CHECK-NEXT: 1 1 0.50 movt r0, #1
# CHECK-NEXT: 1 3 0.50 U mrs r0, apsr
# CHECK-NEXT: 1 3 0.50 U msr apsr_nzcvq, r0
# CHECK-NEXT: 1 2 1.00 muls r1, r2, r1
# CHECK-NEXT: 1 2 1.00 mul r0, r1, r2
# CHECK-NEXT: 1 1 0.50 mvn r0, #1
# CHECK-NEXT: 1 1 0.50 mvns r0, #1
# CHECK-NEXT: 1 1 0.50 mvns r0, r1
# CHECK-NEXT: 1 1 0.50 mvn.w r0, r1
# CHECK-NEXT: 1 1 0.50 mvns.w r0, r1
# CHECK-NEXT: 1 2 1.00 mvn.w r0, r1, lsl #1
# CHECK-NEXT: 1 2 1.00 mvns.w r0, r1, lsl #1
# CHECK-NEXT: 1 3 0.50 * * U nop
# CHECK-NEXT: 1 3 0.50 * * U nop.w
# CHECK-NEXT: 1 1 0.50 orn r0, r1, #1
# CHECK-NEXT: 1 1 0.50 orns r0, r1, #1
# CHECK-NEXT: 1 1 0.50 orn r0, r1, r2
# CHECK-NEXT: 1 1 0.50 orns r0, r1, r2
# CHECK-NEXT: 1 2 1.00 orn r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 orns r0, r1, r2, lsl #1
# CHECK-NEXT: 1 1 0.50 orr r0, r1, #1
# CHECK-NEXT: 1 1 0.50 orrs r0, r1, #1
# CHECK-NEXT: 1 1 0.50 orrs r0, r1
# CHECK-NEXT: 1 1 0.50 orr.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 orrs.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 orr.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 orrs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 pkhbt r0, r1, r2
# CHECK-NEXT: 1 2 1.00 pkhbt r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 pkhbt r0, r2, r1
# CHECK-NEXT: 1 2 1.00 pkhtb r0, r1, r2, asr #1
# CHECK-NEXT: 1 2 0.50 * U pop {r0}
# CHECK-NEXT: 1 2 0.50 * pop.w {r0, r1}
# CHECK-NEXT: 1 2 0.50 * ldr r0, [sp], #4
# CHECK-NEXT: 1 3 1.00 * U push {r0}
# CHECK-NEXT: 1 3 1.00 * push.w {r0, r1}
# CHECK-NEXT: 1 3 1.00 * str r0, [sp, #-4]!
# CHECK-NEXT: 1 2 1.00 qadd r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qadd16 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qadd8 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qasx r0, r1, r2
# CHECK-NEXT: 1 3 1.00 qdadd r0, r1, r2
# CHECK-NEXT: 1 3 1.00 qdsub r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qsax r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qsub r0, r1, r2
# CHECK-NEXT: 1 2 1.00 qsub16 r0, r1, r2
# CHECK-NEXT: 1 2 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 2 1.00 rrx r0, r1
# CHECK-NEXT: 1 2 1.00 rrxs r0, r1
# CHECK-NEXT: 1 1 0.50 rsbs r0, r1, #0
# CHECK-NEXT: 1 1 0.50 rsb.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 rsbs.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 U rsb r0, r1, r2
# CHECK-NEXT: 1 1 0.50 U rsbs r0, r1, r2
# CHECK-NEXT: 1 2 1.00 rsb r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 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 0.50 sbc r0, r1, #1
# CHECK-NEXT: 1 1 0.50 sbcs r0, r1, #1
# CHECK-NEXT: 1 1 0.50 U sbcs r0, r1
# CHECK-NEXT: 1 1 0.50 sbc.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 sbcs.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 sbc.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 sbcs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 sbfx r0, r1, #1, #2
# CHECK-NEXT: 2 7 1.00 sdiv r0, r1, r2
# CHECK-NEXT: 1 1 1.00 * sel r0, r1, r2
# 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 2 1.00 smlabb r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlabt r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlatb r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlatt r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlad r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smladx r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlal r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlalbb r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlalbt r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlaltb r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlaltt r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlald r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlaldx r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlawb r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlawt r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlsd r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlsdx r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smlsld r0, r1, r2, r3
# CHECK-NEXT: 1 2 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 2 1.00 smmul r0, r1, r2
# CHECK-NEXT: 1 2 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 2 1.00 smulbb r0, r1, r2
# CHECK-NEXT: 1 2 1.00 smulbt r0, r1, r2
# CHECK-NEXT: 1 2 1.00 smultb r0, r1, r2
# CHECK-NEXT: 1 2 1.00 smultt r0, r1, r2
# CHECK-NEXT: 1 2 1.00 smull r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 smulwb r0, r1, r2
# CHECK-NEXT: 1 2 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 3 1.00 ssat r0, #1, r2
# CHECK-NEXT: 1 3 1.00 ssat r0, #1, r2, lsl #1
# CHECK-NEXT: 1 3 1.00 ssat16 r0, #1, r1
# CHECK-NEXT: 1 1 1.00 * * U ssax r0, r1, r2
# 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 3 1.00 * stm r0!, {r1}
# CHECK-NEXT: 1 3 1.00 * stm.w r0, {r1}
# CHECK-NEXT: 1 3 1.00 * stm.w r0!, {r1}
# CHECK-NEXT: 1 3 1.00 * stmdb r0, {r1}
# CHECK-NEXT: 1 3 1.00 * str r1, [r0, #-4]!
# CHECK-NEXT: 1 3 1.00 * str r0, [r1]
# CHECK-NEXT: 1 3 1.00 * str r0, [r1, #4]
# CHECK-NEXT: 1 3 1.00 * str r0, [sp, #4]
# CHECK-NEXT: 1 3 1.00 * str.w r0, [r1, #1]
# CHECK-NEXT: 1 3 1.00 * str r0, [r1, #-1]
# CHECK-NEXT: 1 3 1.00 * str r0, [r1], #1
# CHECK-NEXT: 1 3 1.00 * str r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * str.w r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * str.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1]
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1, #1]
# CHECK-NEXT: 1 3 1.00 * strb.w r0, [r1, #1]
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1, #-1]
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1], #1
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1, #1]!
# CHECK-NEXT: 1 3 1.00 * strb r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * strb.w r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * strb.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 1.00 U strbt r0, [r1, #1]
# CHECK-NEXT: 1 3 1.00 * strd r0, r1, [r2, #4]
# CHECK-NEXT: 1 3 1.00 * strd r0, r1, [r2], #4
# CHECK-NEXT: 1 3 1.00 * strd r0, r1, [r2, #4]!
# CHECK-NEXT: 1 3 1.00 * * U strex r0, r1, [r2]
# CHECK-NEXT: 1 3 1.00 * * U strex r0, r1, [r2, #4]
# CHECK-NEXT: 1 3 1.00 * * U strexb r0, r1, [r2]
# CHECK-NEXT: 1 3 1.00 * * U strexh r0, r1, [r2]
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1]
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1, #2]
# CHECK-NEXT: 1 3 1.00 * strh.w r0, [r1, #2]
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1, #-1]
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1], #1
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1, #1]!
# CHECK-NEXT: 1 3 1.00 * strh r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * strh.w r0, [r1, r2]
# CHECK-NEXT: 1 3 1.00 * strh.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: 1 3 1.00 U strht r0, [r1, #1]
# CHECK-NEXT: 1 3 1.00 U strt r0, [r1, #1]
# CHECK-NEXT: 1 1 0.50 subs r0, r1, #1
# CHECK-NEXT: 1 1 0.50 subs r0, #1
# CHECK-NEXT: 1 1 0.50 sub.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 subs.w r0, r1, #1
# CHECK-NEXT: 1 1 0.50 subw r0, r1, #1
# CHECK-NEXT: 1 1 0.50 subs r0, r1, r2
# CHECK-NEXT: 1 1 0.50 sub.w r0, r1, r2
# CHECK-NEXT: 1 1 0.50 subs.w r0, r1, r2
# CHECK-NEXT: 1 2 1.00 sub.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 2 1.00 subs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 1 1 0.50 U sub sp, #4
# CHECK-NEXT: 1 1 0.50 sub.w r0, sp, #1
# CHECK-NEXT: 1 1 0.50 subs.w r0, sp, #1
# CHECK-NEXT: 1 1 0.50 subw r0, sp, #1
# CHECK-NEXT: 1 1 0.50 sub.w r0, sp, r1
# CHECK-NEXT: 1 1 0.50 subs.w r0, sp, r1
# CHECK-NEXT: 1 2 1.00 sub.w r0, sp, r1, lsl #1
# CHECK-NEXT: 1 2 1.00 subs.w r0, sp, r1, lsl #1
# CHECK-NEXT: 1 2 1.00 sxtab r0, r1, r2
# CHECK-NEXT: 1 2 1.00 sxtab r0, r1, r2, ror #8
# CHECK-NEXT: 1 2 1.00 sxtab16 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 sxtab16 r0, r1, r2, ror #8
# CHECK-NEXT: 1 2 1.00 sxtah r0, r1, r2
# CHECK-NEXT: 1 2 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: 2 2 0.50 U tbb [r0, r1]
# CHECK-NEXT: 2 2 0.50 U tbh [r0, r1, lsl #1]
# CHECK-NEXT: 1 1 0.50 teq.w r0, #1
# CHECK-NEXT: 1 1 0.50 teq.w r0, r1
# CHECK-NEXT: 1 2 1.00 teq.w r0, r1, lsl #1
# CHECK-NEXT: 1 1 0.50 tst.w r0, #1
# CHECK-NEXT: 1 1 0.50 tst r0, r1
# CHECK-NEXT: 1 1 0.50 tst.w r0, r1
# CHECK-NEXT: 1 2 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 2 1.00 ubfx r0, r1, #1, #2
# CHECK-NEXT: 2 7 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: 1 2 1.00 umaal r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 umlal r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 umull r0, r1, r2, r3
# CHECK-NEXT: 1 2 1.00 uqadd16 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uqadd8 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uqasx r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uqsax r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uqsub16 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uqsub8 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 usad8 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 usada8 r0, r1, r2, r3
# CHECK-NEXT: 1 3 1.00 usat r0, #1, r1
# CHECK-NEXT: 1 3 1.00 usat r0, #1, r1, lsl #1
# CHECK-NEXT: 1 3 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 2 1.00 uxtab r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uxtab r0, r1, r2, ror #8
# CHECK-NEXT: 1 2 1.00 uxtab16 r0, r1, r2
# CHECK-NEXT: 1 2 1.00 uxtab16 r0, r1, r2, ror #8
# CHECK-NEXT: 1 2 1.00 uxtah r0, r1, r2
# CHECK-NEXT: 1 2 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 3 0.50 * * U wfe
# CHECK-NEXT: 1 3 0.50 * * U wfi
# CHECK-NEXT: 1 3 0.50 * * U yield
# CHECK: Resources:
# CHECK-NEXT: [0.0] - M7UnitALU
# CHECK-NEXT: [0.1] - M7UnitALU
# CHECK-NEXT: [1] - M7UnitBranch
# CHECK-NEXT: [2.0] - M7UnitLoad
# CHECK-NEXT: [2.1] - M7UnitLoad
# CHECK-NEXT: [3] - M7UnitMAC
# CHECK-NEXT: [4] - M7UnitSIMD
# CHECK-NEXT: [5] - M7UnitShift1
# CHECK-NEXT: [6] - M7UnitShift2
# CHECK-NEXT: [7] - M7UnitStore
# CHECK-NEXT: [8] - M7UnitVFP
# CHECK-NEXT: [9.0] - M7UnitVPort
# CHECK-NEXT: [9.1] - M7UnitVPort
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0.0] [0.1] [1] [2.0] [2.1] [3] [4] [5] [6] [7] [8] [9.0] [9.1]
# CHECK-NEXT: 125.00 125.00 - 35.00 35.00 43.00 90.00 88.00 2.00 45.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0.0] [0.1] [1] [2.0] [2.1] [3] [4] [5] [6] [7] [8] [9.0] [9.1] Instructions:
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adc r0, r1, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adcs r0, r1, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adcs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adc.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adcs.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - adc.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - adcs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds r0, #42
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - addw r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - add.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - adds.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w sp, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds.w r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - addw r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add r0, sp, r0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add sp, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - add.w r0, sp, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adds.w r0, sp, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - add.w r0, sp, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - adds.w r0, sp, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - adr.w r0, #-6
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - and r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ands r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ands r1, r0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - and.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - ands.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - and.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - ands.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asrs r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asr.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asrs.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asrs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asr.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - asrs.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - bfc r0, #1, #2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - bfi r0, r1, #1, #2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - bic r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - bics r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - bics r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - bic.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - bics.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - bic.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - bics.w r0, r1, r2, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - - bkpt #1
# CHECK-NEXT: - - - - - - - - - - - - - clrex
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - clz r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmn.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmn r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmn.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - cmn.w r0, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmp r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmp.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmp r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmp r0, r10
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - cmp.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - cmp.w r0, r1, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - - dmb sy
# CHECK-NEXT: - - - - - - - - - - - - - dsb sy
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - eor r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - eors r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - eors r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - eor.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - eors.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - eor.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - eors.w r0, r1, r2, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - - isb sy
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldm r0!, {r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldm.w r0, {r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldm.w r0, {r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r1, [r0], #4
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldmdb r0, {r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldmdb r0!, {r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [r1, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [sp, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr.w r0, [r1, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [r1, #-1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [r1], #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [r1, #1]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr.w r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr.w r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb.w r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb r0, [r1, #-1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb r0, [r1], #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb r0, [r1, #1]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb.w r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb.w r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrb.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrbt r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrd r0, r2, [r1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrd r0, r2, [r1, #-4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrd r0, r2, [r1], #4
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrd r0, r2, [r1, #4]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrd r0, r2, next
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrex r0, [r1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrex r0, [r1, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrexb r0, [r1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrexh r0, [r1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh r0, [r1, #2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh.w r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh r0, [r1, #-1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh r0, [r1], #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh r0, [r1, #1]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh.w r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh.w r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrh.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrht r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb.w r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb r0, [r1, #-1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb r0, [r1], #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb r0, [r1, #1]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb.w r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb.w r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsb.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsbt r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh.w r0, [r1, #2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh r0, [r1, #-1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh r0, [r1], #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh r0, [r1, #1]!
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh.w r0, [pc, #4]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh.w r0, [r1, r2]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsh.w r0, [r1, r2, lsl #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrsht r0, [r1, #1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldrt r0, [r1, #1]
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsls r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsl.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsls.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsls r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsl.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsls.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsrs r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsr.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsrs.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsrs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - lsr.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 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: 0.50 0.50 - - - - - - - - - - - movs r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mov.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - movs.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - movw r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mov r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mov.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - movs.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - movt r0, #1
# CHECK-NEXT: - - - - - - - - - - - - - mrs r0, apsr
# CHECK-NEXT: - - - - - - - - - - - - - msr apsr_nzcvq, r0
# CHECK-NEXT: - - - - - 1.00 - - - - - - - muls r1, r2, r1
# CHECK-NEXT: - - - - - 1.00 - - - - - - - mul r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mvn r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mvns r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mvns r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mvn.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - mvns.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - mvn.w r0, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - mvns.w r0, r1, lsl #1
# CHECK-NEXT: - - - - - - - - - - - - - nop
# CHECK-NEXT: - - - - - - - - - - - - - nop.w
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orn r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orns r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orn r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orns r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - orn r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - orns r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orr r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orrs r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orrs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orr.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - orrs.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - orr.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - orrs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - pkhbt r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - pkhbt r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - pkhbt r0, r2, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - pkhtb r0, r1, r2, asr #1
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - pop {r0}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - pop.w {r0, r1}
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - ldr r0, [sp], #4
# CHECK-NEXT: - - - - - - - - - 1.00 - - - push {r0}
# CHECK-NEXT: - - - - - - - - - 1.00 - - - push.w {r0, r1}
# CHECK-NEXT: - - - - - - - - - 1.00 - - - str r0, [sp, #-4]!
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qadd r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - qdadd r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - qdsub r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qsax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qsub r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qsub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - qsub8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - rbit r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - rev r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - rev.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - rev16 r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - rev16.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - revsh r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - revsh.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - ror.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - rors.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - rors r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - ror.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - rors.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 - - - - rrx r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - 1.00 - - - - rrxs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - rsbs r0, r1, #0
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - rsb.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - rsbs.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - rsb r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - rsbs r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - rsb r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - rsbs r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sbc r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sbcs r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sbcs r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sbc.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sbcs.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - sbc.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - sbcs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sbfx r0, r1, #1, #2
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - sdiv r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sel r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - shadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - shadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - shasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - shsax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - shsub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 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: - - - - - 1.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: 0.50 0.50 - - - - 1.00 1.00 - - - - - ssat r0, #1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - ssat r0, #1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - ssat16 r0, #1, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - ssax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - ssub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 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: 0.50 0.50 - - - - - - - - - - - subs r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sub.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs.w r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subw r0, r1, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sub.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs.w r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - sub.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - subs.w r0, r1, r2, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sub sp, #4
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sub.w r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs.w r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subw r0, sp, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - sub.w r0, sp, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - subs.w r0, sp, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - sub.w r0, sp, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - subs.w r0, sp, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtab r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtab r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtab16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtab16 r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtah r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - sxtah r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxtb r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxtb.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxtb.w r0, r1, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxtb16 r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxtb16 r0, r1, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxth r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxth.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - sxth.w r0, r1, ror #8
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - tbb [r0, r1]
# CHECK-NEXT: - - - 0.50 0.50 - - - - - - - - tbh [r0, r1, lsl #1]
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - teq.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - teq.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - teq.w r0, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tst.w r0, #1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tst r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - tst.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - - tst.w r0, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - ubfx r0, r1, #1, #2
# CHECK-NEXT: 1.00 1.00 - - - - - - - - - - - udiv r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhsax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhsub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uhsub8 r0, r1, r2
# CHECK-NEXT: - - - - - 1.00 - - - - - - - umaal r0, r1, r2, r3
# CHECK-NEXT: - - - - - 1.00 - - - - - - - umlal r0, r1, r2, r3
# CHECK-NEXT: - - - - - 1.00 - - - - - - - umull r0, r1, r2, r3
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqadd16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqadd8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqasx r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqsax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqsub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uqsub8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - usad8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - usada8 r0, r1, r2, r3
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - usat r0, #1, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - usat r0, #1, r1, lsl #1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - usat16 r0, #1, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - usax r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - usub16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - usub8 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtab r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtab r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtab16 r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtab16 r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtah r0, r1, r2
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 1.00 - - - - - uxtah r0, r1, r2, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxtb r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxtb.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxtb.w r0, r1, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxtb16 r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxtb16 r0, r1, ror #8
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxth r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxth.w r0, r1
# CHECK-NEXT: 0.50 0.50 - - - - 1.00 - - - - - - uxth.w r0, r1, ror #8
# CHECK-NEXT: - - - - - - - - - - - - - wfe
# CHECK-NEXT: - - - - - - - - - - - - - wfi
# CHECK-NEXT: - - - - - - - - - - - - - yield