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