@@ -23,11 +23,9 @@ define void @preserve_lcssa_when_reusing_existing_phi() {
23
23
; CHECK-NEXT: br i1 true, label %[[LOOP_2_LATCH:.*]], label %[[LOOP_4_PREHEADER:.*]]
24
24
; CHECK: [[LOOP_4_PREHEADER]]:
25
25
; CHECK-NEXT: [[IV_3_LCSSA_LCSSA1:%.*]] = phi i32 [ [[IV_3_LCSSA]], %[[PH]] ]
26
- ; CHECK-NEXT: [[IV_3_LCSSA_LCSSA :%.*]] = phi i32 [ [[IV_3_LCSSA]], %[[PH]] ]
26
+ ; CHECK-NEXT: [[TMP2 :%.*]] = phi i32 [ [[IV_3_LCSSA]], %[[PH]] ]
27
27
; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[IV_3_LCSSA_LCSSA1]], 1
28
- ; CHECK-NEXT: [[TMP1:%.*]] = freeze i32 [[TMP0]]
29
- ; CHECK-NEXT: [[TMP2:%.*]] = add i32 [[TMP1]], -1
30
- ; CHECK-NEXT: [[XTRAITER:%.*]] = and i32 [[TMP1]], 7
28
+ ; CHECK-NEXT: [[XTRAITER:%.*]] = and i32 [[TMP0]], 7
31
29
; CHECK-NEXT: [[TMP3:%.*]] = icmp ult i32 [[TMP2]], 7
32
30
; CHECK-NEXT: br i1 [[TMP3]], label %[[LOOP_1_LATCH_UNR_LCSSA:.*]], label %[[LOOP_4_PREHEADER_NEW:.*]]
33
31
; CHECK: [[LOOP_4_PREHEADER_NEW]]:
@@ -62,7 +60,7 @@ define void @preserve_lcssa_when_reusing_existing_phi() {
62
60
; CHECK-NEXT: [[EPIL_ITER:%.*]] = phi i32 [ 0, %[[LOOP_4_EPIL_PREHEADER]] ], [ [[EPIL_ITER_NEXT:%.*]], %[[LOOP_4_EPIL]] ]
63
61
; CHECK-NEXT: call void @foo()
64
62
; CHECK-NEXT: [[INC_I_EPIL]] = add i32 [[IV_4_EPIL]], 1
65
- ; CHECK-NEXT: [[EC_EPIL:%.*]] = icmp eq i32 [[IV_4_EPIL]], [[IV_3_LCSSA_LCSSA ]]
63
+ ; CHECK-NEXT: [[EC_EPIL:%.*]] = icmp eq i32 [[IV_4_EPIL]], [[TMP2 ]]
66
64
; CHECK-NEXT: [[EPIL_ITER_NEXT]] = add i32 [[EPIL_ITER]], 1
67
65
; CHECK-NEXT: [[EPIL_ITER_CMP:%.*]] = icmp ne i32 [[EPIL_ITER_NEXT]], [[XTRAITER]]
68
66
; CHECK-NEXT: br i1 [[EPIL_ITER_CMP]], label %[[LOOP_4_EPIL]], label %[[LOOP_1_LATCH_EPILOG_LCSSA:.*]], !llvm.loop [[LOOP0:![0-9]+]]
0 commit comments