@@ -23,38 +23,38 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
23
23
; CHECK-LABEL: define void @_Z3fn1v(
24
24
; CHECK-SAME: ptr writeonly captures(none) [[R:%.*]], ptr readonly captures(none) [[A:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
25
25
; 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
28
28
; CHECK-NEXT: br i1 [[TOBOOL20]], label %[[FOR_END6:.*]], label %[[FOR_BODY:.*]]
29
29
; CHECK: [[FOR_COND_LOOPEXIT_LOOPEXIT:.*]]:
30
30
; 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
34
35
; CHECK-NEXT: br label %[[FOR_COND_LOOPEXIT:.*]]
35
36
; 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]] ]
37
38
; 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]] ]
39
40
; CHECK-NEXT: [[TOBOOL:%.*]] = icmp eq i32 [[T1]], 0
40
41
; CHECK-NEXT: br i1 [[TOBOOL]], label %[[FOR_END6]], label %[[FOR_BODY]]
41
42
; 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]] ]
43
44
; CHECK-NEXT: [[R_022]] = phi ptr [ [[R_1_LCSSA]], %[[FOR_COND_LOOPEXIT]] ], [ [[R]], %[[ENTRY]] ]
44
45
; 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
47
48
; CHECK-NEXT: br i1 [[TOBOOL215]], label %[[FOR_COND_LOOPEXIT]], label %[[FOR_BODY3_PREHEADER:.*]]
48
49
; 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
52
52
; CHECK-NEXT: [[LCMP_MOD_NOT:%.*]] = icmp eq i32 [[XTRAITER]], 0
53
53
; CHECK-NEXT: br i1 [[LCMP_MOD_NOT]], label %[[FOR_BODY3_PROL_LOOPEXIT]], label %[[FOR_BODY3_PROL:.*]]
54
54
; 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
58
58
; CHECK-NEXT: br i1 [[CMP_PROL]], label %[[IF_THEN_PROL:.*]], label %[[FOR_INC_PROL:.*]]
59
59
; CHECK: [[IF_THEN_PROL]]:
60
60
; 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 {
69
69
; CHECK-NEXT: br label %[[FOR_BODY3_PROL_LOOPEXIT]]
70
70
; CHECK: [[FOR_BODY3_PROL_LOOPEXIT]]:
71
71
; 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]] ]
73
73
; CHECK-NEXT: [[R_117_UNR:%.*]] = phi ptr [ [[R_022]], %[[FOR_BODY3_PREHEADER]] ], [ [[ADD_PTR_PROL]], %[[FOR_INC_PROL]] ]
74
74
; 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:.*]]
77
77
; CHECK: [[FOR_BODY3]]:
78
78
; CHECK-NEXT: [[DEC18_IN:%.*]] = phi i32 [ [[DEC18_1:%.*]], %[[FOR_INC_1]] ], [ [[DEC18_IN_UNR]], %[[FOR_BODY3_PROL_LOOPEXIT]] ]
79
79
; CHECK-NEXT: [[R_117:%.*]] = phi ptr [ [[ADD_PTR_1]], %[[FOR_INC_1]] ], [ [[R_117_UNR]], %[[FOR_BODY3_PROL_LOOPEXIT]] ]
80
80
; 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
83
83
; CHECK-NEXT: br i1 [[CMP]], label %[[IF_THEN:.*]], label %[[FOR_INC:.*]]
84
84
; CHECK: [[IF_THEN]]:
85
85
; CHECK-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds nuw i8, ptr [[R_117]], i64 2
@@ -91,8 +91,8 @@ define void @_Z3fn1v(ptr %r, ptr %a) #0 {
91
91
; CHECK: [[FOR_INC]]:
92
92
; CHECK-NEXT: [[INCDEC_PTR:%.*]] = getelementptr inbounds nuw i8, ptr [[A_116]], i64 1
93
93
; 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
96
96
; CHECK-NEXT: br i1 [[CMP_1]], label %[[IF_THEN_1:.*]], label %[[FOR_INC_1]]
97
97
; CHECK: [[IF_THEN_1]]:
98
98
; CHECK-NEXT: [[ADD_PTR:%.*]] = getelementptr inbounds nuw i8, ptr [[R_117]], i64 6
0 commit comments