Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / VE / Scalar / constants.ll
blobf845344ae0ffbe7e007dd79483650871f71e1250
1 ; RUN: llc < %s -mtriple=ve-unknown-unknown | FileCheck %s
3 define i8 @p0i8() {
4 ; CHECK-LABEL: p0i8:
5 ; CHECK:       # %bb.0:
6 ; CHECK-NEXT:    or %s0, 0, (0)1
7 ; CHECK-NEXT:    b.l.t (, %s10)
8   ret i8 0
11 define signext i8 @p0si8() {
12 ; CHECK-LABEL: p0si8:
13 ; CHECK:       # %bb.0:
14 ; CHECK-NEXT:    or %s0, 0, (0)1
15 ; CHECK-NEXT:    b.l.t (, %s10)
16   ret i8 0
19 define zeroext i8 @p0zi8() {
20 ; CHECK-LABEL: p0zi8:
21 ; CHECK:       # %bb.0:
22 ; CHECK-NEXT:    or %s0, 0, (0)1
23 ; CHECK-NEXT:    b.l.t (, %s10)
24   ret i8 0
27 define i8 @p128i8() {
28 ; CHECK-LABEL: p128i8:
29 ; CHECK:       # %bb.0:
30 ; CHECK-NEXT:    lea %s0, 128
31 ; CHECK-NEXT:    b.l.t (, %s10)
32   ret i8 128
35 define signext i8 @p128si8() {
36 ; CHECK-LABEL: p128si8:
37 ; CHECK:       # %bb.0:
38 ; CHECK-NEXT:    lea %s0, -128
39 ; CHECK-NEXT:    b.l.t (, %s10)
40   ret i8 128
43 define zeroext i8 @p128zi8() {
44 ; CHECK-LABEL: p128zi8:
45 ; CHECK:       # %bb.0:
46 ; CHECK-NEXT:    lea %s0, 128
47 ; CHECK-NEXT:    b.l.t (, %s10)
48   ret i8 128
51 define i8 @p256i8() {
52 ; CHECK-LABEL: p256i8:
53 ; CHECK:       # %bb.0:
54 ; CHECK-NEXT:    or %s0, 0, (0)1
55 ; CHECK-NEXT:    b.l.t (, %s10)
56   ret i8 256
59 define signext i8 @p256si8() {
60 ; CHECK-LABEL: p256si8:
61 ; CHECK:       # %bb.0:
62 ; CHECK-NEXT:    or %s0, 0, (0)1
63 ; CHECK-NEXT:    b.l.t (, %s10)
64   ret i8 256
67 define zeroext i8 @p256zi8() {
68 ; CHECK-LABEL: p256zi8:
69 ; CHECK:       # %bb.0:
70 ; CHECK-NEXT:    or %s0, 0, (0)1
71 ; CHECK-NEXT:    b.l.t (, %s10)
72   ret i8 256
75 define i16 @p0i16() {
76 ; CHECK-LABEL: p0i16:
77 ; CHECK:       # %bb.0:
78 ; CHECK-NEXT:    or %s0, 0, (0)1
79 ; CHECK-NEXT:    b.l.t (, %s10)
80   ret i16 0
83 define signext i16 @p0si16() {
84 ; CHECK-LABEL: p0si16:
85 ; CHECK:       # %bb.0:
86 ; CHECK-NEXT:    or %s0, 0, (0)1
87 ; CHECK-NEXT:    b.l.t (, %s10)
88   ret i16 0
91 define zeroext i16 @p0zi16() {
92 ; CHECK-LABEL: p0zi16:
93 ; CHECK:       # %bb.0:
94 ; CHECK-NEXT:    or %s0, 0, (0)1
95 ; CHECK-NEXT:    b.l.t (, %s10)
96   ret i16 0
99 define i32 @p0i32() {
100 ; CHECK-LABEL: p0i32:
101 ; CHECK:       # %bb.0:
102 ; CHECK-NEXT:    or %s0, 0, (0)1
103 ; CHECK-NEXT:    b.l.t (, %s10)
104   ret i32 0
107 define signext i32 @p0si32() {
108 ; CHECK-LABEL: p0si32:
109 ; CHECK:       # %bb.0:
110 ; CHECK-NEXT:    or %s0, 0, (0)1
111 ; CHECK-NEXT:    b.l.t (, %s10)
112   ret i32 0
115 define zeroext i32 @p0zi32() {
116 ; CHECK-LABEL: p0zi32:
117 ; CHECK:       # %bb.0:
118 ; CHECK-NEXT:    or %s0, 0, (0)1
119 ; CHECK-NEXT:    b.l.t (, %s10)
120   ret i32 0
123 define i32 @p128i32() {
124 ; CHECK-LABEL: p128i32:
125 ; CHECK:       # %bb.0:
126 ; CHECK-NEXT:    lea %s0, 128
127 ; CHECK-NEXT:    b.l.t (, %s10)
128   ret i32 128
131 define signext i32 @p128si32() {
132 ; CHECK-LABEL: p128si32:
133 ; CHECK:       # %bb.0:
134 ; CHECK-NEXT:    lea %s0, 128
135 ; CHECK-NEXT:    b.l.t (, %s10)
136   ret i32 128
139 define zeroext i32 @p128zi32() {
140 ; CHECK-LABEL: p128zi32:
141 ; CHECK:       # %bb.0:
142 ; CHECK-NEXT:    lea %s0, 128
143 ; CHECK-NEXT:    b.l.t (, %s10)
144   ret i32 128
147 define i64 @p0i64() {
148 ; CHECK-LABEL: p0i64:
149 ; CHECK:       # %bb.0:
150 ; CHECK-NEXT:    or %s0, 0, (0)1
151 ; CHECK-NEXT:    b.l.t (, %s10)
152   ret i64 0
155 define signext i64 @p0si64() {
156 ; CHECK-LABEL: p0si64:
157 ; CHECK:       # %bb.0:
158 ; CHECK-NEXT:    or %s0, 0, (0)1
159 ; CHECK-NEXT:    b.l.t (, %s10)
160   ret i64 0
163 define zeroext i64 @p0zi64() {
164 ; CHECK-LABEL: p0zi64:
165 ; CHECK:       # %bb.0:
166 ; CHECK-NEXT:    or %s0, 0, (0)1
167 ; CHECK-NEXT:    b.l.t (, %s10)
168   ret i64 0
171 define i64 @p128i64() {
172 ; CHECK-LABEL: p128i64:
173 ; CHECK:       # %bb.0:
174 ; CHECK-NEXT:    lea %s0, 128
175 ; CHECK-NEXT:    b.l.t (, %s10)
176   ret i64 128
179 define signext i64 @p128si64() {
180 ; CHECK-LABEL: p128si64:
181 ; CHECK:       # %bb.0:
182 ; CHECK-NEXT:    lea %s0, 128
183 ; CHECK-NEXT:    b.l.t (, %s10)
184   ret i64 128
187 define zeroext i64 @p128zi64() {
188 ; CHECK-LABEL: p128zi64:
189 ; CHECK:       # %bb.0:
190 ; CHECK-NEXT:    lea %s0, 128
191 ; CHECK-NEXT:    b.l.t (, %s10)
192   ret i64 128
195 define i64 @p2264924160i64() {
196 ; CHECK-LABEL: p2264924160i64:
197 ; CHECK:       # %bb.0:
198 ; CHECK-NEXT:    lea %s0, -2030043136
199 ; CHECK-NEXT:    and %s0, %s0, (32)0
200 ; CHECK-NEXT:    b.l.t (, %s10)
201   ret i64 2264924160
204 define signext i64 @p2264924160si64() {
205 ; CHECK-LABEL: p2264924160si64:
206 ; CHECK:       # %bb.0:
207 ; CHECK-NEXT:    lea %s0, -2030043136
208 ; CHECK-NEXT:    and %s0, %s0, (32)0
209 ; CHECK-NEXT:    b.l.t (, %s10)
210   ret i64 2264924160
213 define zeroext i64 @p2264924160zi64() {
214 ; CHECK-LABEL: p2264924160zi64:
215 ; CHECK:       # %bb.0:
216 ; CHECK-NEXT:    lea %s0, -2030043136
217 ; CHECK-NEXT:    and %s0, %s0, (32)0
218 ; CHECK-NEXT:    b.l.t (, %s10)
219   ret i64 2264924160
222 define i64 @p2147483647i64() {
223 ; CHECK-LABEL: p2147483647i64:
224 ; CHECK:       # %bb.0:
225 ; CHECK-NEXT:    lea %s0, 2147483647
226 ; CHECK-NEXT:    b.l.t (, %s10)
227   ret i64 2147483647
230 define signext i64 @p2147483647si64() {
231 ; CHECK-LABEL: p2147483647si64:
232 ; CHECK:       # %bb.0:
233 ; CHECK-NEXT:    lea %s0, 2147483647
234 ; CHECK-NEXT:    b.l.t (, %s10)
235   ret i64 2147483647
238 define zeroext i64 @p2147483647zi64() {
239 ; CHECK-LABEL: p2147483647zi64:
240 ; CHECK:       # %bb.0:
241 ; CHECK-NEXT:    lea %s0, 2147483647
242 ; CHECK-NEXT:    b.l.t (, %s10)
243   ret i64 2147483647
246 define i64 @p15032385535i64() {
247 ; CHECK-LABEL: p15032385535i64:
248 ; CHECK:       # %bb.0:
249 ; CHECK-NEXT:    lea %s0, 2147483647
250 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
251 ; CHECK-NEXT:    b.l.t (, %s10)
252   ret i64 15032385535
255 define signext i64 @p15032385535si64() {
256 ; CHECK-LABEL: p15032385535si64:
257 ; CHECK:       # %bb.0:
258 ; CHECK-NEXT:    lea %s0, 2147483647
259 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
260 ; CHECK-NEXT:    b.l.t (, %s10)
261   ret i64 15032385535
264 define zeroext i64 @p15032385535zi64() {
265 ; CHECK-LABEL: p15032385535zi64:
266 ; CHECK:       # %bb.0:
267 ; CHECK-NEXT:    lea %s0, 2147483647
268 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
269 ; CHECK-NEXT:    b.l.t (, %s10)
270   ret i64 15032385535
273 define i64 @p15032385536i64() {
274 ; CHECK-LABEL: p15032385536i64:
275 ; CHECK:       # %bb.0:
276 ; CHECK-NEXT:    lea %s0, -2147483648
277 ; CHECK-NEXT:    and %s0, %s0, (32)0
278 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
279 ; CHECK-NEXT:    b.l.t (, %s10)
280   ret i64 15032385536
283 define signext i64 @p15032385536si64() {
284 ; CHECK-LABEL: p15032385536si64:
285 ; CHECK:       # %bb.0:
286 ; CHECK-NEXT:    lea %s0, -2147483648
287 ; CHECK-NEXT:    and %s0, %s0, (32)0
288 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
289 ; CHECK-NEXT:    b.l.t (, %s10)
290   ret i64 15032385536
293 define zeroext i64 @p15032385536zi64() {
294 ; CHECK-LABEL: p15032385536zi64:
295 ; CHECK:       # %bb.0:
296 ; CHECK-NEXT:    lea %s0, -2147483648
297 ; CHECK-NEXT:    and %s0, %s0, (32)0
298 ; CHECK-NEXT:    lea.sl %s0, 3(, %s0)
299 ; CHECK-NEXT:    b.l.t (, %s10)
300   ret i64 15032385536
303 define float @m5f32() {
304 ; CHECK-LABEL: m5f32:
305 ; CHECK:       # %bb.0:
306 ; CHECK-NEXT:    lea.sl %s0, -1063256064
307 ; CHECK-NEXT:    b.l.t (, %s10)
308   ret float -5.000000e+00
311 define double @m5f64() {
312 ; CHECK-LABEL: m5f64:
313 ; CHECK:       # %bb.0:
314 ; CHECK-NEXT:    lea.sl %s0, -1072431104
315 ; CHECK-NEXT:    b.l.t (, %s10)
316   ret double -5.000000e+00
319 define float @p2p3f32() {
320 ; CHECK-LABEL: p2p3f32:
321 ; CHECK:       # %bb.0:
322 ; CHECK-NEXT:    lea.sl %s0, 1075000115
323 ; CHECK-NEXT:    b.l.t (, %s10)
324   ret float 0x4002666660000000 ; 2.3
327 define double @p2p3f64() {
328 ; CHECK-LABEL: p2p3f64:
329 ; CHECK:       # %bb.0:
330 ; CHECK-NEXT:    lea %s0, 1717986918
331 ; CHECK-NEXT:    lea.sl %s0, 1073899110(, %s0)
332 ; CHECK-NEXT:    b.l.t (, %s10)
333   ret double 2.3
336 define float @p128p3f32() {
337 ; CHECK-LABEL: p128p3f32:
338 ; CHECK:       # %bb.0:
339 ; CHECK-NEXT:    lea.sl %s0, 1124093133
340 ; CHECK-NEXT:    b.l.t (, %s10)
341   ret float 0x40600999A0000000 ; 128.3
344 define double @p128p3f64() {
345 ; CHECK-LABEL: p128p3f64:
346 ; CHECK:       # %bb.0:
347 ; CHECK-NEXT:    lea %s0, -1717986918
348 ; CHECK-NEXT:    and %s0, %s0, (32)0
349 ; CHECK-NEXT:    lea.sl %s0, 1080035737(, %s0)
350 ; CHECK-NEXT:    b.l.t (, %s10)
351   ret double 128.3