diff options
Diffstat (limited to 'test/CodeGen/ARM/fast-isel-mvn.ll')
-rw-r--r-- | test/CodeGen/ARM/fast-isel-mvn.ll | 85 |
1 files changed, 35 insertions, 50 deletions
diff --git a/test/CodeGen/ARM/fast-isel-mvn.ll b/test/CodeGen/ARM/fast-isel-mvn.ll index 0bc9395..886f2da 100644 --- a/test/CodeGen/ARM/fast-isel-mvn.ll +++ b/test/CodeGen/ARM/fast-isel-mvn.ll @@ -1,17 +1,14 @@ -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-linux-gnueabi | FileCheck %s --check-prefix=ARM -; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB +; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -arm-use-movt=false -mtriple=armv7-apple-ios < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ARM +; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -arm-use-movt=false -mtriple=armv7-linux-gnueabi < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ARM +; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -arm-use-movt=false -mtriple=thumbv7-apple-ios < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ARM +; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -arm-use-movt=true -mtriple=thumbv7-apple-ios < %s | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB +; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -arm-use-movt=true -mtriple=armv7-apple-ios < %s | FileCheck %s --check-prefix=MOVT ; rdar://10412592 -; Note: The Thumb code is being generated by the target-independent selector. - define void @t1() nounwind { entry: -; ARM: t1 -; THUMB: t1 -; ARM: mvn r0, #0 -; THUMB: movw r0, #65535 -; THUMB: movt r0, #65535 +; CHECK-LABEL: t1 +; CHECK: mvn r0, #0 call void @foo(i32 -1) ret void } @@ -20,22 +17,16 @@ declare void @foo(i32) define void @t2() nounwind { entry: -; ARM: t2 -; THUMB: t2 -; ARM: mvn r0, #233 -; THUMB: movw r0, #65302 -; THUMB: movt r0, #65535 +; CHECK-LABEL: t2 +; CHECK: mvn r0, #233 call void @foo(i32 -234) ret void } define void @t3() nounwind { entry: -; ARM: t3 -; THUMB: t3 -; ARM: mvn r0, #256 -; THUMB: movw r0, #65279 -; THUMB: movt r0, #65535 +; CHECK-LABEL: t3 +; CHECK: mvn r0, #256 call void @foo(i32 -257) ret void } @@ -43,66 +34,60 @@ entry: ; Load from constant pool define void @t4() nounwind { entry: -; ARM: t4 -; THUMB: t4 -; ARM: ldr r0 -; THUMB: movw r0, #65278 -; THUMB: movt r0, #65535 +; ARM-LABEL: t4 +; ARM: ldr r0 +; THUMB-LABEL: t4 +; THUMB: movw r0, #65278 +; THUMB: movt r0, #65535 call void @foo(i32 -258) ret void } define void @t5() nounwind { entry: -; ARM: t5 -; THUMB: t5 -; ARM: mvn r0, #65280 -; THUMB: movs r0, #255 -; THUMB: movt r0, #65535 +; CHECK-LABEL: t5 +; CHECK: mvn r0, #65280 call void @foo(i32 -65281) ret void } define void @t6() nounwind { entry: -; ARM: t6 -; THUMB: t6 -; ARM: mvn r0, #978944 -; THUMB: movw r0, #4095 -; THUMB: movt r0, #65521 +; CHECK-LABEL: t6 +; CHECK: mvn r0, #978944 call void @foo(i32 -978945) ret void } define void @t7() nounwind { entry: -; ARM: t7 -; THUMB: t7 -; ARM: mvn r0, #267386880 -; THUMB: movw r0, #65535 -; THUMB: movt r0, #61455 +; CHECK-LABEL: t7 +; CHECK: mvn r0, #267386880 call void @foo(i32 -267386881) ret void } define void @t8() nounwind { entry: -; ARM: t8 -; THUMB: t8 -; ARM: mvn r0, #65280 -; THUMB: movs r0, #255 -; THUMB: movt r0, #65535 +; CHECK-LABEL: t8 +; CHECK: mvn r0, #65280 call void @foo(i32 -65281) ret void } define void @t9() nounwind { entry: -; ARM: t9 -; THUMB: t9 -; ARM: mvn r0, #2130706432 -; THUMB: movw r0, #65535 -; THUMB: movt r0, #33023 +; CHECK-LABEL: t9 +; CHECK: mvn r0, #2130706432 call void @foo(i32 -2130706433) ret void } + +; Load from constant pool. +define i32 @t10(i32 %a) { +; MOVT-LABEL: t10 +; MOVT: ldr + %1 = xor i32 -1998730207, %a + ret i32 %1 +} + |