• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM
2; RUN: llc < %s -O0 -fast-isel-abort -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | 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}
108