[FastISel][ARM] Fix unit test from r215682.
[oota-llvm.git] / test / CodeGen / ARM / fast-isel-mvn.ll
1 ; 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
2 ; 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
3 ; RUN: llc < %s -O0 -verify-machineinstrs -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
4 ; 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
5 ; rdar://10412592
6
7 ; Note: The Thumb code is being generated by the target-independent selector.
8
9 define void @t1() nounwind {
10 entry:
11 ; ARM: t1
12 ; THUMB: t1
13 ; ARM: mvn r0, #0
14 ; THUMB: movw r0, #65535
15 ; THUMB: movt r0, #65535
16   call void @foo(i32 -1)
17   ret void
18 }
19
20 declare void @foo(i32)
21
22 define void @t2() nounwind {
23 entry:
24 ; ARM: t2
25 ; THUMB: t2
26 ; ARM: mvn r0, #233
27 ; THUMB: movw r0, #65302
28 ; THUMB: movt r0, #65535
29   call void @foo(i32 -234)
30   ret void
31 }
32
33 define void @t3() nounwind {
34 entry:
35 ; ARM: t3
36 ; THUMB: t3
37 ; ARM: mvn      r0, #256
38 ; THUMB: movw r0, #65279
39 ; THUMB: movt r0, #65535
40   call void @foo(i32 -257)
41   ret void
42 }
43
44 ; Load from constant pool
45 define void @t4() nounwind {
46 entry:
47 ; ARM: t4
48 ; THUMB: t4
49 ; ARM: ldr      r0
50 ; THUMB: movw r0, #65278
51 ; THUMB: movt r0, #65535
52   call void @foo(i32 -258)
53   ret void
54 }
55
56 define void @t5() nounwind {
57 entry:
58 ; ARM: t5
59 ; THUMB: t5
60 ; ARM: mvn r0, #65280
61 ; THUMB: movs r0, #255
62 ; THUMB: movt r0, #65535
63   call void @foo(i32 -65281)
64   ret void
65 }
66
67 define void @t6() nounwind {
68 entry:
69 ; ARM: t6
70 ; THUMB: t6
71 ; ARM: mvn r0, #978944
72 ; THUMB: movw r0, #4095
73 ; THUMB: movt r0, #65521
74   call void @foo(i32 -978945)
75   ret void
76 }
77
78 define void @t7() nounwind {
79 entry:
80 ; ARM: t7
81 ; THUMB: t7
82 ; ARM: mvn r0, #267386880
83 ; THUMB: movw r0, #65535
84 ; THUMB: movt r0, #61455
85   call void @foo(i32 -267386881)
86   ret void
87 }
88
89 define void @t8() nounwind {
90 entry:
91 ; ARM: t8
92 ; THUMB: t8
93 ; ARM: mvn r0, #65280
94 ; THUMB: movs r0, #255
95 ; THUMB: movt r0, #65535
96   call void @foo(i32 -65281)
97   ret void
98 }
99
100 define void @t9() nounwind {
101 entry:
102 ; ARM: t9
103 ; THUMB: t9
104 ; ARM: mvn r0, #2130706432
105 ; THUMB: movw r0, #65535
106 ; THUMB: movt r0, #33023
107   call void @foo(i32 -2130706433)
108   ret void
109 }
110
111 ; Load from constant pool.
112 define i32 @t10(i32 %a) {
113 ; MOVT-LABEL: t10
114 ; MOVT:       ldr
115   %1 = xor i32 -1998730207, %a
116   ret i32 %1
117 }
118