@@ -457,17 +457,17 @@ define void @latch_branch_cost(ptr %dst) {
457457; PRED-NEXT: [[TMP25:%.*]] = icmp eq i64 [[INDEX_NEXT]], 104
458458; PRED-NEXT: br i1 [[TMP25]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
459459; PRED: [[MIDDLE_BLOCK]]:
460- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
460+ ; PRED-NEXT: br label %[[EXIT:.*]]
461461; PRED: [[SCALAR_PH]]:
462- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 104, %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
462+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
463463; PRED-NEXT: br label %[[LOOP:.*]]
464464; PRED: [[LOOP]]:
465- ; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[INDVARS_IV_NEXT :%.*]], %[[LOOP]] ]
465+ ; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT :%.*]], %[[LOOP]] ]
466466; PRED-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[IV]]
467467; PRED-NEXT: store i8 0, ptr [[GEP]], align 1
468- ; PRED-NEXT: [[INDVARS_IV_NEXT ]] = add i64 [[IV]], 1
469- ; PRED-NEXT: [[EXITCOND_NOT :%.*]] = icmp eq i64 [[INDVARS_IV_NEXT ]], 100
470- ; PRED-NEXT: br i1 [[EXITCOND_NOT ]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP3:![0-9]+]]
468+ ; PRED-NEXT: [[IV_NEXT ]] = add i64 [[IV]], 1
469+ ; PRED-NEXT: [[EC :%.*]] = icmp eq i64 [[IV_NEXT ]], 100
470+ ; PRED-NEXT: br i1 [[EC ]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP3:![0-9]+]]
471471; PRED: [[EXIT]]:
472472; PRED-NEXT: ret void
473473;
@@ -713,9 +713,6 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
713713; PRED-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
714714; PRED-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
715715; PRED-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 2
716- ; PRED-NEXT: [[TMP3:%.*]] = mul i64 [[N_VEC]], 8
717- ; PRED-NEXT: [[IND_END:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP3]]
718- ; PRED-NEXT: [[IND_END1:%.*]] = mul i64 [[N_VEC]], 2
719716; PRED-NEXT: [[TMP6:%.*]] = call i64 @llvm.vscale.i64()
720717; PRED-NEXT: [[TMP7:%.*]] = mul i64 [[TMP6]], 2
721718; PRED-NEXT: [[TMP8:%.*]] = sub i64 257, [[TMP7]]
@@ -741,10 +738,10 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
741738; PRED-NEXT: [[TMP17:%.*]] = extractelement <vscale x 2 x i1> [[TMP16]], i32 0
742739; PRED-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
743740; PRED: [[MIDDLE_BLOCK]]:
744- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
741+ ; PRED-NEXT: br label %[[EXIT:.*]]
745742; PRED: [[SCALAR_PH]]:
746- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[IND_END]], %[[MIDDLE_BLOCK]] ], [ [[ DST]], %[[ENTRY]] ]
747- ; PRED-NEXT: [[BC_RESUME_VAL1:%.*]] = phi i64 [ [[IND_END1]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
743+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[DST]], %[[ENTRY]] ]
744+ ; PRED-NEXT: [[BC_RESUME_VAL1:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
748745; PRED-NEXT: br label %[[LOOP:.*]]
749746; PRED: [[LOOP]]:
750747; PRED-NEXT: [[PTR_IV:%.*]] = phi ptr [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[PTR_IV_NEXT:%.*]], %[[LOOP]] ]
@@ -869,9 +866,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
869866; DEFAULT-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
870867; DEFAULT-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
871868; DEFAULT: [[MIDDLE_BLOCK]]:
872- ; DEFAULT-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
869+ ; DEFAULT-NEXT: br label %[[EXIT:.*]]
873870; DEFAULT: [[SCALAR_PH]]:
874- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
871+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
875872; DEFAULT-NEXT: br label %[[LOOP:.*]]
876873; DEFAULT: [[LOOP]]:
877874; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
@@ -971,9 +968,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
971968; PRED-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
972969; PRED-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
973970; PRED: [[MIDDLE_BLOCK]]:
974- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
971+ ; PRED-NEXT: br label %[[EXIT:.*]]
975972; PRED: [[SCALAR_PH]]:
976- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
973+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
977974; PRED-NEXT: br label %[[LOOP:.*]]
978975; PRED: [[LOOP]]:
979976; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
@@ -1408,9 +1405,9 @@ define void @test_conditional_interleave_group (ptr noalias %src.1, ptr noalias
14081405; PRED-NEXT: [[TMP85:%.*]] = extractelement <8 x i1> [[TMP84]], i32 0
14091406; PRED-NEXT: br i1 [[TMP85]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
14101407; PRED: [[MIDDLE_BLOCK]]:
1411- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1408+ ; PRED-NEXT: br label %[[EXIT:.*]]
14121409; PRED: [[SCALAR_PH]]:
1413- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ], [ 0, %[[VECTOR_SCEVCHECK]] ]
1410+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ 0, %[[VECTOR_SCEVCHECK]] ]
14141411; PRED-NEXT: br label %[[LOOP_HEADER:.*]]
14151412; PRED: [[LOOP_HEADER]]:
14161413; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
@@ -1521,9 +1518,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
15211518; DEFAULT-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
15221519; DEFAULT-NEXT: br i1 [[TMP11]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
15231520; DEFAULT: [[MIDDLE_BLOCK]]:
1524- ; DEFAULT-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1521+ ; DEFAULT-NEXT: br label %[[EXIT:.*]]
15251522; DEFAULT: [[SCALAR_PH]]:
1526- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
1523+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
15271524; DEFAULT-NEXT: br label %[[LOOP_HEADER:.*]]
15281525; DEFAULT: [[LOOP_HEADER]]:
15291526; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
@@ -1584,9 +1581,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
15841581; PRED-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
15851582; PRED-NEXT: br i1 [[TMP11]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
15861583; PRED: [[MIDDLE_BLOCK]]:
1587- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1584+ ; PRED-NEXT: br label %[[EXIT:.*]]
15881585; PRED: [[SCALAR_PH]]:
1589- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, %[[MIDDLE_BLOCK]] ], [ 0, %[[ENTRY]] ]
1586+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, %[[ENTRY]] ]
15901587; PRED-NEXT: br label %[[LOOP_HEADER:.*]]
15911588; PRED: [[LOOP_HEADER]]:
15921589; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
0 commit comments