@@ -173,8 +173,7 @@ define i1 @test_two_ranges2(ptr nocapture readonly %arg1, ptr nocapture readonly
173
173
; Values' ranges do not overlap each other, so it can simplified to false.
174
174
define i1 @test_two_argument_ranges (i32 range(i32 1 , 6 ) %arg1 , i32 range(i32 8 , 16 ) %arg2 ) {
175
175
; CHECK-LABEL: @test_two_argument_ranges(
176
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult i32 [[ARG2:%.*]], [[ARG1:%.*]]
177
- ; CHECK-NEXT: ret i1 [[RVAL]]
176
+ ; CHECK-NEXT: ret i1 false
178
177
;
179
178
%rval = icmp ult i32 %arg2 , %arg1
180
179
ret i1 %rval
@@ -183,9 +182,7 @@ define i1 @test_two_argument_ranges(i32 range(i32 1, 6) %arg1, i32 range(i32 8,
183
182
; Values' ranges do not overlap each other, so it can simplified to false.
184
183
define i1 @test_one_range_and_one_argument_range (ptr nocapture readonly %arg1 , i32 range(i32 8 , 16 ) %arg2 ) {
185
184
; CHECK-LABEL: @test_one_range_and_one_argument_range(
186
- ; CHECK-NEXT: [[VAL1:%.*]] = load i32, ptr [[ARG1:%.*]], align 4, !range [[RNG2]]
187
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ugt i32 [[VAL1]], [[ARG2:%.*]]
188
- ; CHECK-NEXT: ret i1 [[RVAL]]
185
+ ; CHECK-NEXT: ret i1 false
189
186
;
190
187
%val1 = load i32 , ptr %arg1 , !range !0
191
188
%rval = icmp ult i32 %arg2 , %val1
@@ -195,9 +192,7 @@ define i1 @test_one_range_and_one_argument_range(ptr nocapture readonly %arg1, i
195
192
; Values' ranges do not overlap each other, so it can simplified to false.
196
193
define i1 @test_one_argument_range_and_one_range (i32 range(i32 1 , 6 ) %arg1 , ptr nocapture readonly %arg2 ) {
197
194
; CHECK-LABEL: @test_one_argument_range_and_one_range(
198
- ; CHECK-NEXT: [[VAL1:%.*]] = load i32, ptr [[ARG2:%.*]], align 4, !range [[RNG5]]
199
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult i32 [[VAL1]], [[ARG1:%.*]]
200
- ; CHECK-NEXT: ret i1 [[RVAL]]
195
+ ; CHECK-NEXT: ret i1 false
201
196
;
202
197
%val1 = load i32 , ptr %arg2 , !range !6
203
198
%rval = icmp ult i32 %val1 , %arg1
@@ -264,8 +259,7 @@ define <2 x i1> @test_two_argument_ranges_vec(<2 x i32> range(i32 5, 10) %arg1,
264
259
; Values' ranges do not overlap each other, so it can simplified to false.
265
260
define <2 x i1 > @test_two_argument_ranges_vec_false (<2 x i32 > range(i32 1 , 6 ) %arg1 , <2 x i32 > range(i32 8 , 16 ) %arg2 ) {
266
261
; CHECK-LABEL: @test_two_argument_ranges_vec_false(
267
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult <2 x i32> [[ARG2:%.*]], [[ARG1:%.*]]
268
- ; CHECK-NEXT: ret <2 x i1> [[RVAL]]
262
+ ; CHECK-NEXT: ret <2 x i1> zeroinitializer
269
263
;
270
264
%rval = icmp ult <2 x i32 > %arg2 , %arg1
271
265
ret <2 x i1 > %rval
@@ -274,8 +268,7 @@ define <2 x i1> @test_two_argument_ranges_vec_false(<2 x i32> range(i32 1, 6) %a
274
268
; Values' ranges do not overlap each other, so it can simplified to true.
275
269
define <2 x i1 > @test_two_argument_ranges_vec_true (<2 x i32 > range(i32 1 , 6 ) %arg1 , <2 x i32 > range(i32 8 , 16 ) %arg2 ) {
276
270
; CHECK-LABEL: @test_two_argument_ranges_vec_true(
277
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ugt <2 x i32> [[ARG2:%.*]], [[ARG1:%.*]]
278
- ; CHECK-NEXT: ret <2 x i1> [[RVAL]]
271
+ ; CHECK-NEXT: ret <2 x i1> <i1 true, i1 true>
279
272
;
280
273
%rval = icmp ugt <2 x i32 > %arg2 , %arg1
281
274
ret <2 x i1 > %rval
@@ -304,8 +297,7 @@ define i1 @test_two_return_attribute_ranges_one_in_call() {
304
297
; CHECK-LABEL: @test_two_return_attribute_ranges_one_in_call(
305
298
; CHECK-NEXT: [[VAL1:%.*]] = call range(i32 1, 6) i32 @create_range1()
306
299
; CHECK-NEXT: [[ARG1:%.*]] = call i32 @create_range2()
307
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult i32 [[ARG1]], [[VAL1]]
308
- ; CHECK-NEXT: ret i1 [[RVAL]]
300
+ ; CHECK-NEXT: ret i1 false
309
301
;
310
302
%val1 = call range(i32 1 , 6 ) i32 @create_range1 ()
311
303
%val2 = call i32 @create_range2 ()
@@ -318,8 +310,7 @@ define i1 @test_two_return_attribute_ranges() {
318
310
; CHECK-LABEL: @test_two_return_attribute_ranges(
319
311
; CHECK-NEXT: [[VAL1:%.*]] = call i32 @create_range3()
320
312
; CHECK-NEXT: [[ARG1:%.*]] = call i32 @create_range2()
321
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult i32 [[ARG1]], [[VAL1]]
322
- ; CHECK-NEXT: ret i1 [[RVAL]]
313
+ ; CHECK-NEXT: ret i1 false
323
314
;
324
315
%val1 = call i32 @create_range3 ()
325
316
%val2 = call i32 @create_range2 ()
@@ -331,8 +322,7 @@ define i1 @test_two_return_attribute_ranges() {
331
322
define i1 @test_one_return_argument_and_one_argument_range (i32 range(i32 8 , 16 ) %arg1 ) {
332
323
; CHECK-LABEL: @test_one_return_argument_and_one_argument_range(
333
324
; CHECK-NEXT: [[VAL1:%.*]] = call i32 @create_range3()
334
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ugt i32 [[VAL1]], [[ARG1:%.*]]
335
- ; CHECK-NEXT: ret i1 [[RVAL]]
325
+ ; CHECK-NEXT: ret i1 false
336
326
;
337
327
%val1 = call i32 @create_range3 ()
338
328
%rval = icmp ult i32 %arg1 , %val1
@@ -343,9 +333,7 @@ define i1 @test_one_return_argument_and_one_argument_range(i32 range(i32 8, 16)
343
333
define i1 @test_one_range_and_one_return_argument (ptr nocapture readonly %arg1 ) {
344
334
; CHECK-LABEL: @test_one_range_and_one_return_argument(
345
335
; CHECK-NEXT: [[VAL1:%.*]] = call i32 @create_range3()
346
- ; CHECK-NEXT: [[VAL2:%.*]] = load i32, ptr [[ARG1:%.*]], align 4, !range [[RNG5]]
347
- ; CHECK-NEXT: [[RVAL:%.*]] = icmp ult i32 [[VAL2]], [[VAL1]]
348
- ; CHECK-NEXT: ret i1 [[RVAL]]
336
+ ; CHECK-NEXT: ret i1 false
349
337
;
350
338
%val1 = call i32 @create_range3 ()
351
339
%val2 = load i32 , ptr %arg1 , !range !6
0 commit comments