@@ -381,8 +381,7 @@ define i1 @sdiv_eq_smin_use(i32 %x, i32 %y) {
381
381
382
382
define i1 @sdiv_x_by_const_cmp_x (i32 %x ) {
383
383
; CHECK-LABEL: @sdiv_x_by_const_cmp_x(
384
- ; CHECK-NEXT: [[V:%.*]] = sdiv i32 [[X:%.*]], 13
385
- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[V]], [[X]]
384
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 0
386
385
; CHECK-NEXT: ret i1 [[TMP1]]
387
386
;
388
387
%v = sdiv i32 %x , 13
@@ -392,8 +391,7 @@ define i1 @sdiv_x_by_const_cmp_x(i32 %x) {
392
391
393
392
define i1 @udiv_x_by_const_cmp_x (i32 %x ) {
394
393
; CHECK-LABEL: @udiv_x_by_const_cmp_x(
395
- ; CHECK-NEXT: [[TMP2:%.*]] = udiv i32 [[X:%.*]], 123
396
- ; CHECK-NEXT: [[TMP1:%.*]] = icmp slt i32 [[TMP2]], [[X]]
394
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt i32 [[X:%.*]], 0
397
395
; CHECK-NEXT: ret i1 [[TMP1]]
398
396
;
399
397
%1 = udiv i32 %x , 123
@@ -405,8 +403,7 @@ define i1 @udiv_x_by_const_cmp_x(i32 %x) {
405
403
406
404
define i1 @lshr_x_by_const_cmp_x (i32 %x ) {
407
405
; CHECK-LABEL: @lshr_x_by_const_cmp_x(
408
- ; CHECK-NEXT: [[V:%.*]] = lshr i32 [[X:%.*]], 1
409
- ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[V]], [[X]]
406
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq i32 [[X:%.*]], 0
410
407
; CHECK-NEXT: ret i1 [[TMP1]]
411
408
;
412
409
%v = lshr i32 %x , 1
@@ -416,8 +413,7 @@ define i1 @lshr_x_by_const_cmp_x(i32 %x) {
416
413
417
414
define <4 x i1 > @lshr_by_const_cmp_sle_value (<4 x i32 > %x ) {
418
415
; CHECK-LABEL: @lshr_by_const_cmp_sle_value(
419
- ; CHECK-NEXT: [[V:%.*]] = lshr <4 x i32> [[X:%.*]], <i32 3, i32 3, i32 3, i32 3>
420
- ; CHECK-NEXT: [[R:%.*]] = icmp sle <4 x i32> [[V]], [[X]]
416
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt <4 x i32> [[X:%.*]], <i32 -1, i32 -1, i32 -1, i32 -1>
421
417
; CHECK-NEXT: ret <4 x i1> [[R]]
422
418
;
423
419
%v = lshr <4 x i32 > %x , <i32 3 , i32 3 , i32 3 , i32 3 >
@@ -427,8 +423,7 @@ define <4 x i1> @lshr_by_const_cmp_sle_value(<4 x i32> %x) {
427
423
428
424
define i1 @lshr_by_const_cmp_uge_value (i32 %x ) {
429
425
; CHECK-LABEL: @lshr_by_const_cmp_uge_value(
430
- ; CHECK-NEXT: [[V:%.*]] = lshr i32 [[X:%.*]], 3
431
- ; CHECK-NEXT: [[R:%.*]] = icmp sle i32 [[V]], [[X]]
426
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt i32 [[X:%.*]], -1
432
427
; CHECK-NEXT: ret i1 [[R]]
433
428
;
434
429
%v = lshr i32 %x , 3
@@ -438,8 +433,7 @@ define i1 @lshr_by_const_cmp_uge_value(i32 %x) {
438
433
439
434
define i1 @ashr_x_by_const_cmp_sge_x (i32 %x ) {
440
435
; CHECK-LABEL: @ashr_x_by_const_cmp_sge_x(
441
- ; CHECK-NEXT: [[V:%.*]] = ashr i32 [[X:%.*]], 5
442
- ; CHECK-NEXT: [[R:%.*]] = icmp sge i32 [[V]], [[X]]
436
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt i32 [[X:%.*]], 1
443
437
; CHECK-NEXT: ret i1 [[R]]
444
438
;
445
439
%v = ashr i32 %x , 5
0 commit comments