@@ -982,13 +982,13 @@ define i64 @select_decreasing_induction_icmp_iv_out_of_bound(ptr %a, ptr %b, i64
982982; IC1VF4-NEXT: [[TMP0:%.*]] = add <4 x i64> [[VEC_IND]], splat (i64 -1)
983983; IC1VF4-NEXT: [[TMP1:%.*]] = extractelement <4 x i64> [[TMP0]], i32 0
984984; IC1VF4-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[TMP1]]
985- ; IC1VF4-NEXT: [[TMP3 :%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i32 0
986- ; IC1VF4-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[TMP3 ]], i32 -3
985+ ; IC1VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i64 0
986+ ; IC1VF4-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[TMP6 ]], i64 -3
987987; IC1VF4-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
988988; IC1VF4-NEXT: [[REVERSE:%.*]] = shufflevector <4 x i8> [[WIDE_LOAD]], <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
989989; IC1VF4-NEXT: [[TMP5:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[TMP1]]
990- ; IC1VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i32 0
991- ; IC1VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr [[TMP6 ]], i32 -3
990+ ; IC1VF4-NEXT: [[TMP16 :%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 0
991+ ; IC1VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr [[TMP16 ]], i64 -3
992992; IC1VF4-NEXT: [[WIDE_LOAD1:%.*]] = load <4 x i8>, ptr [[TMP7]], align 1
993993; IC1VF4-NEXT: [[REVERSE2:%.*]] = shufflevector <4 x i8> [[WIDE_LOAD1]], <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
994994; IC1VF4-NEXT: [[TMP8:%.*]] = icmp sgt <4 x i8> [[REVERSE]], [[REVERSE2]]
@@ -1038,13 +1038,13 @@ define i64 @select_decreasing_induction_icmp_iv_out_of_bound(ptr %a, ptr %b, i64
10381038; IC4VF4-NEXT: [[TMP0:%.*]] = add <4 x i64> [[VEC_IND]], splat (i64 -1)
10391039; IC4VF4-NEXT: [[TMP1:%.*]] = extractelement <4 x i64> [[TMP0]], i32 0
10401040; IC4VF4-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[A]], i64 [[TMP1]]
1041- ; IC4VF4-NEXT: [[TMP3 :%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i32 0
1042- ; IC4VF4-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[TMP3 ]], i32 -3
1041+ ; IC4VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i64 0
1042+ ; IC4VF4-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[TMP6 ]], i64 -3
10431043; IC4VF4-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
10441044; IC4VF4-NEXT: [[REVERSE:%.*]] = shufflevector <4 x i8> [[WIDE_LOAD]], <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
10451045; IC4VF4-NEXT: [[TMP5:%.*]] = getelementptr inbounds i8, ptr [[B]], i64 [[TMP1]]
1046- ; IC4VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i32 0
1047- ; IC4VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr [[TMP6 ]], i32 -3
1046+ ; IC4VF4-NEXT: [[TMP16 :%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 0
1047+ ; IC4VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr [[TMP16 ]], i64 -3
10481048; IC4VF4-NEXT: [[WIDE_LOAD1:%.*]] = load <4 x i8>, ptr [[TMP7]], align 1
10491049; IC4VF4-NEXT: [[REVERSE2:%.*]] = shufflevector <4 x i8> [[WIDE_LOAD1]], <4 x i8> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
10501050; IC4VF4-NEXT: [[TMP8:%.*]] = icmp sgt <4 x i8> [[REVERSE]], [[REVERSE2]]
@@ -1145,13 +1145,13 @@ define i64 @select_decreasing_induction_icmp_non_const_start(ptr %a, ptr %b, i64
11451145; IC1VF4-NEXT: [[TMP3:%.*]] = add nsw <4 x i64> [[VEC_IND]], splat (i64 -1)
11461146; IC1VF4-NEXT: [[TMP4:%.*]] = extractelement <4 x i64> [[TMP3]], i32 0
11471147; IC1VF4-NEXT: [[TMP5:%.*]] = getelementptr inbounds i64, ptr [[A]], i64 [[TMP4]]
1148- ; IC1VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i64, ptr [[TMP5]], i32 0
1149- ; IC1VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i64, ptr [[TMP6 ]], i32 -3
1148+ ; IC1VF4-NEXT: [[TMP9 :%.*]] = getelementptr inbounds i64, ptr [[TMP5]], i64 0
1149+ ; IC1VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i64, ptr [[TMP9 ]], i64 -3
11501150; IC1VF4-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i64>, ptr [[TMP7]], align 8
11511151; IC1VF4-NEXT: [[REVERSE:%.*]] = shufflevector <4 x i64> [[WIDE_LOAD]], <4 x i64> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
11521152; IC1VF4-NEXT: [[TMP8:%.*]] = getelementptr inbounds i64, ptr [[B]], i64 [[TMP4]]
1153- ; IC1VF4-NEXT: [[TMP9 :%.*]] = getelementptr inbounds i64, ptr [[TMP8]], i32 0
1154- ; IC1VF4-NEXT: [[TMP10:%.*]] = getelementptr inbounds i64, ptr [[TMP9 ]], i32 -3
1153+ ; IC1VF4-NEXT: [[TMP19 :%.*]] = getelementptr inbounds i64, ptr [[TMP8]], i64 0
1154+ ; IC1VF4-NEXT: [[TMP10:%.*]] = getelementptr inbounds i64, ptr [[TMP19 ]], i64 -3
11551155; IC1VF4-NEXT: [[WIDE_LOAD3:%.*]] = load <4 x i64>, ptr [[TMP10]], align 8
11561156; IC1VF4-NEXT: [[REVERSE4:%.*]] = shufflevector <4 x i64> [[WIDE_LOAD3]], <4 x i64> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
11571157; IC1VF4-NEXT: [[TMP11:%.*]] = icmp sgt <4 x i64> [[REVERSE]], [[REVERSE4]]
@@ -1214,13 +1214,13 @@ define i64 @select_decreasing_induction_icmp_non_const_start(ptr %a, ptr %b, i64
12141214; IC4VF4-NEXT: [[TMP3:%.*]] = add nsw <4 x i64> [[VEC_IND]], splat (i64 -1)
12151215; IC4VF4-NEXT: [[TMP4:%.*]] = extractelement <4 x i64> [[TMP3]], i32 0
12161216; IC4VF4-NEXT: [[TMP5:%.*]] = getelementptr inbounds i64, ptr [[A]], i64 [[TMP4]]
1217- ; IC4VF4-NEXT: [[TMP6 :%.*]] = getelementptr inbounds i64, ptr [[TMP5]], i32 0
1218- ; IC4VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i64, ptr [[TMP6 ]], i32 -3
1217+ ; IC4VF4-NEXT: [[TMP9 :%.*]] = getelementptr inbounds i64, ptr [[TMP5]], i64 0
1218+ ; IC4VF4-NEXT: [[TMP7:%.*]] = getelementptr inbounds i64, ptr [[TMP9 ]], i64 -3
12191219; IC4VF4-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i64>, ptr [[TMP7]], align 8
12201220; IC4VF4-NEXT: [[REVERSE:%.*]] = shufflevector <4 x i64> [[WIDE_LOAD]], <4 x i64> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
12211221; IC4VF4-NEXT: [[TMP8:%.*]] = getelementptr inbounds i64, ptr [[B]], i64 [[TMP4]]
1222- ; IC4VF4-NEXT: [[TMP9 :%.*]] = getelementptr inbounds i64, ptr [[TMP8]], i32 0
1223- ; IC4VF4-NEXT: [[TMP10:%.*]] = getelementptr inbounds i64, ptr [[TMP9 ]], i32 -3
1222+ ; IC4VF4-NEXT: [[TMP19 :%.*]] = getelementptr inbounds i64, ptr [[TMP8]], i64 0
1223+ ; IC4VF4-NEXT: [[TMP10:%.*]] = getelementptr inbounds i64, ptr [[TMP19 ]], i64 -3
12241224; IC4VF4-NEXT: [[WIDE_LOAD3:%.*]] = load <4 x i64>, ptr [[TMP10]], align 8
12251225; IC4VF4-NEXT: [[REVERSE4:%.*]] = shufflevector <4 x i64> [[WIDE_LOAD3]], <4 x i64> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
12261226; IC4VF4-NEXT: [[TMP11:%.*]] = icmp sgt <4 x i64> [[REVERSE]], [[REVERSE4]]
0 commit comments