@@ -23,38 +23,38 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
2323; CHECK-LABEL: define void @_Z3fn1v(
2424; CHECK-SAME: ptr writeonly captures(none) [[R:%.*]], ptr readonly captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
2525; CHECK-NEXT: [[ENTRY:.*]]:
26- ; CHECK-NEXT: [[TMP :%.*]] = load i32, ptr @b, align 4
27- ; CHECK-NEXT: [[TOBOOL20:%.*]] = icmp eq i32 [[TMP ]], 0
26+ ; CHECK-NEXT: [[T :%.*]] = load i32, ptr @b, align 4
27+ ; CHECK-NEXT: [[TOBOOL20:%.*]] = icmp eq i32 [[T ]], 0
2828; CHECK-NEXT: br i1 [[TOBOOL20]], label %[[FOR_END6:.*]], label %[[FOR_BODY:.*]]
2929; CHECK: [[FOR_COND_LOOPEXIT_LOOPEXIT:.*]]:
3030; CHECK-NEXT: [[ADD_PTR_LCSSA:%.*]] = phi ptr [ [[ADD_PTR_LCSSA_UNR:%.*]], %[[FOR_BODY3_PROL_LOOPEXIT:.*]] ], [ [[ADD_PTR_1:%.*]], %[[FOR_INC_1:.*]] ]
31- ; CHECK-NEXT: [[SCEVGEP:%.*]] = getelementptr i8, ptr [[A_021:%.*]], i64 1
32- ; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[SCEVGEP]], i64 [[TMP1:%.*]]
33- ; CHECK-NEXT: [[TMP1_PRE:%.*]] = load i32, ptr @b, align 4
31+ ; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[T2:%.*]], -1
32+ ; CHECK-NEXT: [[TMP1:%.*]] = zext i32 [[TMP0]] to i64
33+ ; CHECK-NEXT: [[SCEVGEP1:%.*]] = getelementptr i8, ptr [[SCEVGEP:%.*]], i64 [[TMP1]]
34+ ; CHECK-NEXT: [[T1_PRE:%.*]] = load i32, ptr @b, align 4
3435; CHECK-NEXT: br label %[[FOR_COND_LOOPEXIT:.*]]
3536; CHECK: [[FOR_COND_LOOPEXIT]]:
36- ; CHECK-NEXT: [[T1:%.*]] = phi i32 [ [[T12:%.*]], %[[FOR_BODY]] ], [ [[TMP1_PRE ]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
37+ ; CHECK-NEXT: [[T1:%.*]] = phi i32 [ [[T12:%.*]], %[[FOR_BODY]] ], [ [[T1_PRE ]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
3738; CHECK-NEXT: [[R_1_LCSSA:%.*]] = phi ptr [ [[R_022:%.*]], %[[FOR_BODY]] ], [ [[ADD_PTR_LCSSA]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
38- ; CHECK-NEXT: [[A_1_LCSSA:%.*]] = phi ptr [ [[A_021]], %[[FOR_BODY]] ], [ [[SCEVGEP1]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
39+ ; CHECK-NEXT: [[A_1_LCSSA:%.*]] = phi ptr [ [[A_021:%.* ]], %[[FOR_BODY]] ], [ [[SCEVGEP1]], %[[FOR_COND_LOOPEXIT_LOOPEXIT]] ]
3940; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[T1]], 0
4041; CHECK-NEXT: br i1 [[TOBOOL]], label %[[FOR_END6]], label %[[FOR_BODY]]
4142; CHECK: [[FOR_BODY]]:
42- ; CHECK-NEXT: [[T12]] = phi i32 [ [[T1]], %[[FOR_COND_LOOPEXIT]] ], [ [[TMP ]], %[[ENTRY]] ]
43+ ; CHECK-NEXT: [[T12]] = phi i32 [ [[T1]], %[[FOR_COND_LOOPEXIT]] ], [ [[T ]], %[[ENTRY]] ]
4344; CHECK-NEXT: [[R_022]] = phi ptr [ [[R_1_LCSSA]], %[[FOR_COND_LOOPEXIT]] ], [ [[R]], %[[ENTRY]] ]
4445; CHECK-NEXT: [[A_021]] = phi ptr [ [[A_1_LCSSA]], %[[FOR_COND_LOOPEXIT]] ], [ [[A]], %[[ENTRY]] ]
45- ; CHECK-NEXT: [[TMP2:%.* ]] = load i32, ptr @c, align 4
46- ; CHECK-NEXT: [[TOBOOL215:%.*]] = icmp eq i32 [[TMP2 ]], 0
46+ ; CHECK-NEXT: [[T2 ]] = load i32, ptr @c, align 4
47+ ; CHECK-NEXT: [[TOBOOL215:%.*]] = icmp eq i32 [[T2 ]], 0
4748; CHECK-NEXT: br i1 [[TOBOOL215]], label %[[FOR_COND_LOOPEXIT]], label %[[FOR_BODY3_PREHEADER:.*]]
4849; CHECK: [[FOR_BODY3_PREHEADER]]:
49- ; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[TMP2]], -1
50- ; CHECK-NEXT: [[TMP1]] = zext i32 [[TMP0]] to i64
51- ; CHECK-NEXT: [[XTRAITER:%.*]] = and i32 [[TMP2]], 1
50+ ; CHECK-NEXT: [[SCEVGEP]] = getelementptr i8, ptr [[A_021]], i64 1
51+ ; CHECK-NEXT: [[XTRAITER:%.*]] = and i32 [[T2]], 1
5252; CHECK-NEXT: [[LCMP_MOD_NOT:%.*]] = icmp eq i32 [[XTRAITER]], 0
5353; CHECK-NEXT: br i1 [[LCMP_MOD_NOT]], label %[[FOR_BODY3_PROL_LOOPEXIT]], label %[[FOR_BODY3_PROL:.*]]
5454; CHECK: [[FOR_BODY3_PROL]]:
55- ; CHECK-NEXT: [[DEC18_PROL:%.*]] = add nsw i32 [[TMP2 ]], -1
56- ; CHECK-NEXT: [[TMP3_PROL :%.*]] = load i8, ptr [[A_021]], align 1
57- ; CHECK-NEXT: [[CMP_PROL:%.*]] = icmp eq i8 [[TMP3_PROL ]], 0
55+ ; CHECK-NEXT: [[DEC18_PROL:%.*]] = add nsw i32 [[T2 ]], -1
56+ ; CHECK-NEXT: [[T3_PROL :%.*]] = load i8, ptr [[A_021]], align 1
57+ ; CHECK-NEXT: [[CMP_PROL:%.*]] = icmp eq i8 [[T3_PROL ]], 0
5858; CHECK-NEXT: br i1 [[CMP_PROL]], label %[[IF_THEN_PROL:.*]], label %[[FOR_INC_PROL:.*]]
5959; CHECK: [[IF_THEN_PROL]]:
6060; CHECK-NEXT: [[ARRAYIDX_PROL:%.*]] = getelementptr inbounds nuw i8, ptr [[R_022]], i64 2
@@ -69,17 +69,17 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
6969; CHECK-NEXT: br label %[[FOR_BODY3_PROL_LOOPEXIT]]
7070; CHECK: [[FOR_BODY3_PROL_LOOPEXIT]]:
7171; CHECK-NEXT: [[ADD_PTR_LCSSA_UNR]] = phi ptr [ poison, %[[FOR_BODY3_PREHEADER]] ], [ [[ADD_PTR_PROL]], %[[FOR_INC_PROL]] ]
72- ; CHECK-NEXT: [[DEC18_IN_UNR:%.*]] = phi i32 [ [[TMP2 ]], %[[FOR_BODY3_PREHEADER]] ], [ [[DEC18_PROL]], %[[FOR_INC_PROL]] ]
72+ ; CHECK-NEXT: [[DEC18_IN_UNR:%.*]] = phi i32 [ [[T2 ]], %[[FOR_BODY3_PREHEADER]] ], [ [[DEC18_PROL]], %[[FOR_INC_PROL]] ]
7373; CHECK-NEXT: [[R_117_UNR:%.*]] = phi ptr [ [[R_022]], %[[FOR_BODY3_PREHEADER]] ], [ [[ADD_PTR_PROL]], %[[FOR_INC_PROL]] ]
7474; CHECK-NEXT: [[A_116_UNR:%.*]] = phi ptr [ [[A_021]], %[[FOR_BODY3_PREHEADER]] ], [ [[INCDEC_PTR_PROL]], %[[FOR_INC_PROL]] ]
75- ; CHECK-NEXT: [[TMP4 :%.*]] = icmp eq i32 [[TMP0 ]], 0
76- ; CHECK-NEXT: br i1 [[TMP4 ]], label %[[FOR_COND_LOOPEXIT_LOOPEXIT]], label %[[FOR_BODY3:.*]]
75+ ; CHECK-NEXT: [[TMP2 :%.*]] = icmp eq i32 [[T2 ]], 1
76+ ; CHECK-NEXT: br i1 [[TMP2 ]], label %[[FOR_COND_LOOPEXIT_LOOPEXIT]], label %[[FOR_BODY3:.*]]
7777; CHECK: [[FOR_BODY3]]:
7878; CHECK-NEXT: [[DEC18_IN:%.*]] = phi i32 [ [[DEC18_1:%.*]], %[[FOR_INC_1]] ], [ [[DEC18_IN_UNR]], %[[FOR_BODY3_PROL_LOOPEXIT]] ]
7979; CHECK-NEXT: [[R_117:%.*]] = phi ptr [ [[ADD_PTR_1]], %[[FOR_INC_1]] ], [ [[R_117_UNR]], %[[FOR_BODY3_PROL_LOOPEXIT]] ]
8080; CHECK-NEXT: [[A_116:%.*]] = phi ptr [ [[INCDEC_PTR_1:%.*]], %[[FOR_INC_1]] ], [ [[A_116_UNR]], %[[FOR_BODY3_PROL_LOOPEXIT]] ]
81- ; CHECK-NEXT: [[TMP3 :%.*]] = load i8, ptr [[A_116]], align 1
82- ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[TMP3 ]], 0
81+ ; CHECK-NEXT: [[T3 :%.*]] = load i8, ptr [[A_116]], align 1
82+ ; CHECK-NEXT: [[CMP:%.*]] = icmp eq i8 [[T3 ]], 0
8383; CHECK-NEXT: br i1 [[CMP]], label %[[IF_THEN:.*]], label %[[FOR_INC:.*]]
8484; CHECK: [[IF_THEN]]:
8585; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i8, ptr [[R_117]], i64 2
@@ -91,8 +91,8 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
9191; CHECK: [[FOR_INC]]:
9292; CHECK-NEXT: [[INCDEC_PTR:%.*]] = getelementptr inbounds nuw i8, ptr [[A_116]], i64 1
9393; CHECK-NEXT: [[DEC18_1]] = add nsw i32 [[DEC18_IN]], -2
94- ; CHECK-NEXT: [[TMP3_1 :%.*]] = load i8, ptr [[INCDEC_PTR]], align 1
95- ; CHECK-NEXT: [[CMP_1:%.*]] = icmp eq i8 [[TMP3_1 ]], 0
94+ ; CHECK-NEXT: [[T3_1 :%.*]] = load i8, ptr [[INCDEC_PTR]], align 1
95+ ; CHECK-NEXT: [[CMP_1:%.*]] = icmp eq i8 [[T3_1 ]], 0
9696; CHECK-NEXT: br i1 [[CMP_1]], label %[[IF_THEN_1:.*]], label %[[FOR_INC_1]]
9797; CHECK: [[IF_THEN_1]]:
9898; CHECK-NEXT: [[ADD_PTR:%.*]] = getelementptr inbounds nuw i8, ptr [[R_117]], i64 6
0 commit comments