@@ -401,9 +401,8 @@ define i1 @udiv_x_by_const_cmp_x(i32 %x) {
401401
402402define <2 x i1 > @udiv_x_by_const_cmp_x_non_splat (<2 x i32 > %x ) {
403403; 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]]
407406;
408407 %1 = udiv <2 x i32 > %x , <i32 123 , i32 -123 >
409408 %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) {
413412
414413define <2 x i1 > @sdiv_x_by_const_cmp_x_non_splat (<2 x i32 > %x ) {
415414; 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]]
419417;
420418 %1 = sdiv <2 x i32 > %x , <i32 2 , i32 3 >
421419 %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) {
446444
447445define <4 x i1 > @lshr_by_const_cmp_sle_value_non_splat (<4 x i32 > %x ) {
448446; 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>
451448; CHECK-NEXT: ret <4 x i1> [[R]]
452449;
453450 %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) {
458455
459456define <4 x i1 > @ashr_by_const_cmp_sge_value_non_splat (<4 x i32 > %x ) {
460457; 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>
463459; CHECK-NEXT: ret <4 x i1> [[R]]
464460;
465461 %v = ashr <4 x i32 > %x , <i32 1 , i32 2 , i32 3 , i32 4 >
0 commit comments