@@ -687,15 +687,23 @@ define i64 @same_exit_block_post_inc_use2() {
687
687
; CHECK-NEXT: [[VEC_IND:%.*]] = phi <4 x i64> [ <i64 3, i64 4, i64 5, i64 6>, [[VECTOR_PH]] ], [ [[VEC_IND_NEXT:%.*]], [[LOOP]] ]
688
688
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
689
689
; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[OFFSET_IDX]], 0
690
+ ; CHECK-NEXT: [[TMP15:%.*]] = add i64 [[OFFSET_IDX]], 1
691
+ ; CHECK-NEXT: [[TMP16:%.*]] = add i64 [[OFFSET_IDX]], 2
692
+ ; CHECK-NEXT: [[TMP17:%.*]] = add i64 [[OFFSET_IDX]], 3
690
693
; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[TMP0]]
691
694
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[TMP1]], i32 0
692
695
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP2]], align 1
693
696
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds i8, ptr [[P2]], i64 [[TMP0]]
694
697
; CHECK-NEXT: [[TMP4:%.*]] = getelementptr inbounds i8, ptr [[TMP3]], i32 0
695
698
; CHECK-NEXT: [[WIDE_LOAD2:%.*]] = load <4 x i8>, ptr [[TMP4]], align 1
696
699
; CHECK-NEXT: [[TMP5:%.*]] = add i64 [[TMP0]], 1
697
- ; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i64> poison, i64 [[TMP5]], i64 0
698
- ; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i64> [[BROADCAST_SPLATINSERT]], <4 x i64> poison, <4 x i32> zeroinitializer
700
+ ; CHECK-NEXT: [[TMP18:%.*]] = add i64 [[TMP15]], 1
701
+ ; CHECK-NEXT: [[TMP19:%.*]] = add i64 [[TMP16]], 1
702
+ ; CHECK-NEXT: [[TMP20:%.*]] = add i64 [[TMP17]], 1
703
+ ; CHECK-NEXT: [[TMP21:%.*]] = insertelement <4 x i64> poison, i64 [[TMP5]], i32 0
704
+ ; CHECK-NEXT: [[TMP22:%.*]] = insertelement <4 x i64> [[TMP21]], i64 [[TMP18]], i32 1
705
+ ; CHECK-NEXT: [[TMP14:%.*]] = insertelement <4 x i64> [[TMP22]], i64 [[TMP19]], i32 2
706
+ ; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = insertelement <4 x i64> [[TMP14]], i64 [[TMP20]], i32 3
699
707
; CHECK-NEXT: [[TMP6:%.*]] = icmp eq <4 x i8> [[WIDE_LOAD]], [[WIDE_LOAD2]]
700
708
; CHECK-NEXT: [[INDEX_NEXT3]] = add nuw i64 [[INDEX1]], 4
701
709
; CHECK-NEXT: [[TMP7:%.*]] = xor <4 x i1> [[TMP6]], splat (i1 true)
@@ -1127,9 +1135,17 @@ define i64 @diff_exit_block_post_inc_use2() {
1127
1135
; CHECK-NEXT: [[INDEX1:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT3:%.*]], [[LOOP]] ]
1128
1136
; CHECK-NEXT: [[OFFSET_IDX:%.*]] = add i64 3, [[INDEX1]]
1129
1137
; CHECK-NEXT: [[TMP0:%.*]] = add i64 [[OFFSET_IDX]], 0
1138
+ ; CHECK-NEXT: [[TMP13:%.*]] = add i64 [[OFFSET_IDX]], 1
1139
+ ; CHECK-NEXT: [[TMP14:%.*]] = add i64 [[OFFSET_IDX]], 2
1140
+ ; CHECK-NEXT: [[TMP15:%.*]] = add i64 [[OFFSET_IDX]], 3
1130
1141
; CHECK-NEXT: [[TMP1:%.*]] = add i64 [[TMP0]], 1
1131
- ; CHECK-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i64> poison, i64 [[TMP1]], i64 0
1132
- ; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i64> [[BROADCAST_SPLATINSERT]], <4 x i64> poison, <4 x i32> zeroinitializer
1142
+ ; CHECK-NEXT: [[TMP16:%.*]] = add i64 [[TMP13]], 1
1143
+ ; CHECK-NEXT: [[TMP17:%.*]] = add i64 [[TMP14]], 1
1144
+ ; CHECK-NEXT: [[TMP18:%.*]] = add i64 [[TMP15]], 1
1145
+ ; CHECK-NEXT: [[TMP19:%.*]] = insertelement <4 x i64> poison, i64 [[TMP1]], i32 0
1146
+ ; CHECK-NEXT: [[TMP20:%.*]] = insertelement <4 x i64> [[TMP19]], i64 [[TMP16]], i32 1
1147
+ ; CHECK-NEXT: [[TMP21:%.*]] = insertelement <4 x i64> [[TMP20]], i64 [[TMP17]], i32 2
1148
+ ; CHECK-NEXT: [[BROADCAST_SPLAT:%.*]] = insertelement <4 x i64> [[TMP21]], i64 [[TMP18]], i32 3
1133
1149
; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i8, ptr [[P1]], i64 [[TMP0]]
1134
1150
; CHECK-NEXT: [[TMP3:%.*]] = getelementptr inbounds i8, ptr [[TMP2]], i32 0
1135
1151
; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i8>, ptr [[TMP3]], align 1
0 commit comments