blob: 3b1d282edeadd71611059e81de99ecfd1b024b6e [file] [log] [blame]
Bob Wilson5fe1d382009-08-24 20:33:47 +00001; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | FileCheck %s
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +00002
3; Test #<const>
4
5; var 2.1 - 0x00ab00ab
6define i32 @t2_const_var2_1_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +00007;CHECK: t2_const_var_1_ok_1:
8;CHECK: #11206827
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +00009 %ret = add i32 %lhs, 11206827 ; 0x00ab00ab
10 ret i32 %ret
11}
12
13define i32 @t2_const_var2_1_fail_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000014;CHECK: t2_const_var2_1_fail_1:
15;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000016 %ret = add i32 %lhs, 11206843 ; 0x00ab00bb
17 ret i32 %ret
18}
19
20define i32 @t2_const_var2_1_fail_2(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000021;CHECK: t2_const_var2_1_fail_2:
22;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000023 %ret = add i32 %lhs, 27984043 ; 0x01ab00ab
24 ret i32 %ret
25}
26
27define i32 @t2_const_var2_1_fail_3(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000028;CHECK: t2_const_var2_1_fail_3:
29;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000030 %ret = add i32 %lhs, 27984299 ; 0x01ab01ab
31 ret i32 %ret
32}
33
34define i32 @t2_const_var2_1_fail_4(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000035;CHECK: t2_const_var2_1_fail_4:
36;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000037 %ret = add i32 %lhs, 28027649 ; 0x01abab01
38 ret i32 %ret
39}
40
41; var 2.2 - 0xab00ab00
42define i32 @t2_const_var2_2_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000043;CHECK: t2_const_var2_2_ok_1:
44;CHECK: #2868947712
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000045 %ret = add i32 %lhs, 2868947712 ; 0xab00ab00
46 ret i32 %ret
47}
48
49define i32 @t2_const_var2_2_fail_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000050;CHECK: t2_const_var2_2_fail_1:
51;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000052 %ret = add i32 %lhs, 2868951552 ; 0xab00ba00
53 ret i32 %ret
54}
55
56define i32 @t2_const_var2_2_fail_2(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000057;CHECK: t2_const_var2_2_fail_2:
58;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000059 %ret = add i32 %lhs, 2868947728 ; 0xab00ab10
60 ret i32 %ret
61}
62
63define i32 @t2_const_var2_2_fail_3(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000064;CHECK: t2_const_var2_2_fail_3:
65;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000066 %ret = add i32 %lhs, 2869996304 ; 0xab10ab10
67 ret i32 %ret
68}
69
70define i32 @t2_const_var2_2_fail_4(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000071;CHECK: t2_const_var2_2_fail_4:
72;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000073 %ret = add i32 %lhs, 279685904 ; 0x10abab10
74 ret i32 %ret
75}
76
77; var 2.3 - 0xabababab
78define i32 @t2_const_var2_3_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000079;CHECK: t2_const_var2_3_ok_1:
80;CHECK: #2880154539
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000081 %ret = add i32 %lhs, 2880154539 ; 0xabababab
82 ret i32 %ret
83}
84
85define i32 @t2_const_var2_3_fail_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000086;CHECK: t2_const_var2_3_fail_1:
87;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000088 %ret = add i32 %lhs, 2880154554 ; 0xabababba
89 ret i32 %ret
90}
91
92define i32 @t2_const_var2_3_fail_2(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +000093;CHECK: t2_const_var2_3_fail_2:
94;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +000095 %ret = add i32 %lhs, 2880158379 ; 0xababbaab
96 ret i32 %ret
97}
98
99define i32 @t2_const_var2_3_fail_3(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000100;CHECK: t2_const_var2_3_fail_3:
101;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000102 %ret = add i32 %lhs, 2881137579 ; 0xabbaabab
103 ret i32 %ret
104}
105
106define i32 @t2_const_var2_3_fail_4(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000107;CHECK: t2_const_var2_3_fail_4:
108;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000109 %ret = add i32 %lhs, 3131812779 ; 0xbaababab
110 ret i32 %ret
111}
112
113; var 3 - 0x0F000000
114define i32 @t2_const_var3_1_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000115;CHECK: t2_const_var3_1_ok_1:
116;CHECK: #251658240
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000117 %ret = add i32 %lhs, 251658240 ; 0x0F000000
118 ret i32 %ret
119}
120
121define i32 @t2_const_var3_2_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000122;CHECK: t2_const_var3_2_ok_1:
123;CHECK: #3948544
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000124 %ret = add i32 %lhs, 3948544 ; 0b00000000001111000100000000000000
125 ret i32 %ret
126}
127
128define i32 @t2_const_var3_2_fail_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000129;CHECK: t2_const_var3_2_fail_1:
130;CHECK: movt
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000131 %ret = add i32 %lhs, 3940352 ; 0b00000000001111000010000000000000
132 ret i32 %ret
133}
134
135define i32 @t2_const_var3_3_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000136;CHECK: t2_const_var3_3_ok_1:
137;CHECK: #258
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000138 %ret = add i32 %lhs, 258 ; 0b00000000000000000000000100000010
139 ret i32 %ret
140}
141
142define i32 @t2_const_var3_4_ok_1(i32 %lhs) {
Bob Wilson5fe1d382009-08-24 20:33:47 +0000143;CHECK: t2_const_var3_4_ok_1:
144;CHECK: #4026531840
Anton Korobeynikov02bb33c2009-06-17 18:13:58 +0000145 %ret = add i32 %lhs, 4026531840 ; 0xF0000000
146 ret i32 %ret
147}