@@ -401,9 +401,8 @@ define i1 @udiv_x_by_const_cmp_x(i32 %x) {
401
401
402
402
define <2 x i1 > @udiv_x_by_const_cmp_x_non_splat (<2 x i32 > %x ) {
403
403
; CHECK-LABEL: @udiv_x_by_const_cmp_x_non_splat(
404
- ; CHECK-NEXT: [[TMP1:%.*]] = udiv <2 x i32> [[X:%.*]], <i32 123, i32 -123>
405
- ; CHECK-NEXT: [[TMP2:%.*]] = icmp slt <2 x i32> [[TMP1]], [[X]]
406
- ; CHECK-NEXT: ret <2 x i1> [[TMP2]]
404
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt <2 x i32> [[X:%.*]], zeroinitializer
405
+ ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
407
406
;
408
407
%1 = udiv <2 x i32 > %x , <i32 123 , i32 -123 >
409
408
%2 = icmp slt <2 x i32 > %1 , %x
@@ -413,9 +412,8 @@ define <2 x i1> @udiv_x_by_const_cmp_x_non_splat(<2 x i32> %x) {
413
412
414
413
define <2 x i1 > @sdiv_x_by_const_cmp_x_non_splat (<2 x i32 > %x ) {
415
414
; CHECK-LABEL: @sdiv_x_by_const_cmp_x_non_splat(
416
- ; CHECK-NEXT: [[TMP1:%.*]] = sdiv <2 x i32> [[X:%.*]], <i32 2, i32 3>
417
- ; CHECK-NEXT: [[TMP2:%.*]] = icmp eq <2 x i32> [[TMP1]], [[X]]
418
- ; CHECK-NEXT: ret <2 x i1> [[TMP2]]
415
+ ; CHECK-NEXT: [[TMP1:%.*]] = icmp eq <2 x i32> [[X:%.*]], zeroinitializer
416
+ ; CHECK-NEXT: ret <2 x i1> [[TMP1]]
419
417
;
420
418
%1 = sdiv <2 x i32 > %x , <i32 2 , i32 3 >
421
419
%2 = icmp eq <2 x i32 > %1 , %x
@@ -446,8 +444,7 @@ define <4 x i1> @lshr_by_const_cmp_sle_value(<4 x i32> %x) {
446
444
447
445
define <4 x i1 > @lshr_by_const_cmp_sle_value_non_splat (<4 x i32 > %x ) {
448
446
; CHECK-LABEL: @lshr_by_const_cmp_sle_value_non_splat(
449
- ; CHECK-NEXT: [[V:%.*]] = lshr <4 x i32> [[X:%.*]], <i32 3, i32 3, i32 3, i32 5>
450
- ; CHECK-NEXT: [[R:%.*]] = icmp sle <4 x i32> [[V]], [[X]]
447
+ ; CHECK-NEXT: [[R:%.*]] = icmp sgt <4 x i32> [[X:%.*]], <i32 -1, i32 -1, i32 -1, i32 -1>
451
448
; CHECK-NEXT: ret <4 x i1> [[R]]
452
449
;
453
450
%v = lshr <4 x i32 > %x , <i32 3 , i32 3 , i32 3 , i32 5 >
@@ -458,8 +455,7 @@ define <4 x i1> @lshr_by_const_cmp_sle_value_non_splat(<4 x i32> %x) {
458
455
459
456
define <4 x i1 > @ashr_by_const_cmp_sge_value_non_splat (<4 x i32 > %x ) {
460
457
; CHECK-LABEL: @ashr_by_const_cmp_sge_value_non_splat(
461
- ; CHECK-NEXT: [[V:%.*]] = ashr <4 x i32> [[X:%.*]], <i32 1, i32 2, i32 3, i32 4>
462
- ; CHECK-NEXT: [[R:%.*]] = icmp sge <4 x i32> [[V]], [[X]]
458
+ ; CHECK-NEXT: [[R:%.*]] = icmp slt <4 x i32> [[X:%.*]], <i32 1, i32 1, i32 1, i32 1>
463
459
; CHECK-NEXT: ret <4 x i1> [[R]]
464
460
;
465
461
%v = ashr <4 x i32 > %x , <i32 1 , i32 2 , i32 3 , i32 4 >
0 commit comments