diff options
author | Sam Parker <sam.parker@arm.com> | 2019-12-12 13:51:02 +0000 |
---|---|---|
committer | Sam Parker <sam.parker@arm.com> | 2019-12-12 13:51:39 +0000 |
commit | 021b613cdc9091092e3429f36abdbe89a988681d (patch) | |
tree | e7a2264c533904dd075895fc928fee930405df26 /llvm/test/CodeGen/ARM/mul_const.ll | |
parent | 4ecf25545c3b34eb5a74ce920e421e59aab94905 (diff) | |
download | bcm5719-llvm-021b613cdc9091092e3429f36abdbe89a988681d.tar.gz bcm5719-llvm-021b613cdc9091092e3429f36abdbe89a988681d.zip |
[NFC][ARM] Add some test triples
Add thumb and thumb2 to a couple of the test files.
Diffstat (limited to 'llvm/test/CodeGen/ARM/mul_const.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/mul_const.ll | 191 |
1 files changed, 171 insertions, 20 deletions
diff --git a/llvm/test/CodeGen/ARM/mul_const.ll b/llvm/test/CodeGen/ARM/mul_const.ll index ada3d4e5b9c..adb615af2ab 100644 --- a/llvm/test/CodeGen/ARM/mul_const.ll +++ b/llvm/test/CodeGen/ARM/mul_const.ll @@ -1,73 +1,203 @@ -; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s --check-prefix=ARM +; RUN: llc -mtriple=thumbv6t2-eabi %s -o - | FileCheck %s --check-prefix=THUMB2 +; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck %s --check-prefix=THUMB define i32 @t9(i32 %v) nounwind readnone { +; ARM-LABEL: t9: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #3 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: t9: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #3 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: t9: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #9 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: t9: -; CHECK: add r0, r0, r0, lsl #3 %0 = mul i32 %v, 9 ret i32 %0 } define i32 @t7(i32 %v) nounwind readnone { +; ARM-LABEL: t7: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: rsb r0, r0, r0, lsl #3 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: t7: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: rsb r0, r0, r0, lsl #3 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: t7: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #7 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: t7: -; CHECK: rsb r0, r0, r0, lsl #3 %0 = mul i32 %v, 7 ret i32 %0 } define i32 @t5(i32 %v) nounwind readnone { +; ARM-LABEL: t5: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #2 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: t5: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #2 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: t5: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #5 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: t5: -; CHECK: add r0, r0, r0, lsl #2 %0 = mul i32 %v, 5 ret i32 %0 } define i32 @t3(i32 %v) nounwind readnone { +; ARM-LABEL: t3: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #1 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: t3: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #1 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: t3: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #3 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: t3: -; CHECK: add r0, r0, r0, lsl #1 %0 = mul i32 %v, 3 ret i32 %0 } define i32 @t12288(i32 %v) nounwind readnone { +; ARM-LABEL: t12288: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #1 +; ARM-NEXT: lsl r0, r0, #12 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: t12288: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #1 +; THUMB2-NEXT: lsls r0, r0, #12 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: t12288: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #3 +; THUMB-NEXT: lsls r1, r1, #12 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: t12288: -; CHECK: add r0, r0, r0, lsl #1 -; CHECK: lsl{{.*}}#12 %0 = mul i32 %v, 12288 ret i32 %0 } define i32 @tn9(i32 %v) nounwind readnone { +; ARM-LABEL: tn9: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #3 +; ARM-NEXT: rsb r0, r0, #0 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: tn9: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #3 +; THUMB2-NEXT: rsbs r0, r0, #0 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: tn9: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #8 +; THUMB-NEXT: mvns r1, r1 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: tn9: -; CHECK: add r0, r0, r0, lsl #3 -; CHECK: rsb r0, r0, #0 %0 = mul i32 %v, -9 ret i32 %0 } define i32 @tn7(i32 %v) nounwind readnone { +; ARM-LABEL: tn7: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: sub r0, r0, r0, lsl #3 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: tn7: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: sub.w r0, r0, r0, lsl #3 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: tn7: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #6 +; THUMB-NEXT: mvns r1, r1 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: tn7: -; CHECK: sub r0, r0, r0, lsl #3 %0 = mul i32 %v, -7 ret i32 %0 } define i32 @tn5(i32 %v) nounwind readnone { +; ARM-LABEL: tn5: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: add r0, r0, r0, lsl #2 +; ARM-NEXT: rsb r0, r0, #0 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: tn5: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: add.w r0, r0, r0, lsl #2 +; THUMB2-NEXT: rsbs r0, r0, #0 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: tn5: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #4 +; THUMB-NEXT: mvns r1, r1 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: -; CHECK-LABEL: tn5: -; CHECK: add r0, r0, r0, lsl #2 -; CHECK: rsb r0, r0, #0 %0 = mul i32 %v, -5 ret i32 %0 } define i32 @tn3(i32 %v) nounwind readnone { +; ARM-LABEL: tn3: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: sub r0, r0, r0, lsl #2 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: tn3: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: sub.w r0, r0, r0, lsl #2 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: tn3: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: movs r1, #2 +; THUMB-NEXT: mvns r1, r1 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr entry: ; CHECK-LABEL: tn3: ; CHECK: sub r0, r0, r0, lsl #2 @@ -76,6 +206,27 @@ entry: } define i32 @tn12288(i32 %v) nounwind readnone { +; ARM-LABEL: tn12288: +; ARM: @ %bb.0: @ %entry +; ARM-NEXT: sub r0, r0, r0, lsl #2 +; ARM-NEXT: lsl r0, r0, #12 +; ARM-NEXT: mov pc, lr +; +; THUMB2-LABEL: tn12288: +; THUMB2: @ %bb.0: @ %entry +; THUMB2-NEXT: sub.w r0, r0, r0, lsl #2 +; THUMB2-NEXT: lsls r0, r0, #12 +; THUMB2-NEXT: bx lr +; +; THUMB-LABEL: tn12288: +; THUMB: @ %bb.0: @ %entry +; THUMB-NEXT: ldr r1, .LCPI9_0 +; THUMB-NEXT: muls r0, r1, r0 +; THUMB-NEXT: bx lr +; THUMB-NEXT: .p2align 2 +; THUMB-NEXT: @ %bb.1: +; THUMB-NEXT: .LCPI9_0: +; THUMB-NEXT: .long 4294955008 @ 0xffffd000 entry: ; CHECK-LABEL: tn12288: ; CHECK: sub r0, r0, r0, lsl #2 |