@@ -460,17 +460,17 @@ define void @latch_branch_cost(ptr %dst) {
460
460
; PRED-NEXT: [[TMP25:%.*]] = icmp eq i64 [[INDEX_NEXT]], 104
461
461
; PRED-NEXT: br i1 [[TMP25]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
462
462
; PRED: middle.block:
463
- ; PRED-NEXT: br i1 true, label [[FOR_END :%.*]], label [[SCALAR_PH ]]
463
+ ; PRED-NEXT: br label [[EXIT :%.*]]
464
464
; PRED: scalar.ph:
465
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 104, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
465
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
466
466
; PRED-NEXT: br label [[FOR_BODY:%.*]]
467
467
; PRED: loop:
468
468
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[INDVARS_IV_NEXT:%.*]], [[FOR_BODY]] ]
469
469
; PRED-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[IV]]
470
470
; PRED-NEXT: store i8 0, ptr [[GEP]], align 1
471
471
; PRED-NEXT: [[INDVARS_IV_NEXT]] = add i64 [[IV]], 1
472
472
; PRED-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[INDVARS_IV_NEXT]], 100
473
- ; PRED-NEXT: br i1 [[EXITCOND_NOT]], label [[FOR_END ]], label [[FOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
473
+ ; PRED-NEXT: br i1 [[EXITCOND_NOT]], label [[EXIT ]], label [[FOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
474
474
; PRED: exit:
475
475
; PRED-NEXT: ret void
476
476
;
@@ -713,9 +713,9 @@ define i32 @header_mask_and_invariant_compare(ptr %A, ptr %B, ptr %C, ptr %D, pt
713
713
; PRED-NEXT: [[TMP24:%.*]] = extractelement <4 x i1> [[TMP28]], i32 0
714
714
; PRED-NEXT: br i1 [[TMP24]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP17:![0-9]+]]
715
715
; PRED: middle.block:
716
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
716
+ ; PRED-NEXT: br label [[EXIT:%.*]]
717
717
; PRED: scalar.ph:
718
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_MEMCHECK]] ]
718
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_MEMCHECK]] ]
719
719
; PRED-NEXT: br label [[LOOP_HEADER:%.*]]
720
720
; PRED: loop.header:
721
721
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
@@ -821,9 +821,6 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
821
821
; PRED-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
822
822
; PRED-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
823
823
; PRED-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 2
824
- ; PRED-NEXT: [[TMP3:%.*]] = mul i64 [[N_VEC]], 8
825
- ; PRED-NEXT: [[IND_END:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP3]]
826
- ; PRED-NEXT: [[IND_END1:%.*]] = mul i64 [[N_VEC]], 2
827
824
; PRED-NEXT: [[TMP6:%.*]] = call i64 @llvm.vscale.i64()
828
825
; PRED-NEXT: [[TMP7:%.*]] = mul i64 [[TMP6]], 2
829
826
; PRED-NEXT: [[TMP8:%.*]] = sub i64 257, [[TMP7]]
@@ -850,10 +847,10 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
850
847
; PRED-NEXT: [[TMP17:%.*]] = extractelement <vscale x 2 x i1> [[TMP16]], i32 0
851
848
; PRED-NEXT: br i1 [[TMP17]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP19:![0-9]+]]
852
849
; PRED: middle.block:
853
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
850
+ ; PRED-NEXT: br label [[EXIT:%.*]]
854
851
; PRED: scalar.ph:
855
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[IND_END]], [[MIDDLE_BLOCK]] ], [ [[ DST]], [[ENTRY:%.*]] ]
856
- ; PRED-NEXT: [[BC_RESUME_VAL2:%.*]] = phi i64 [ [[IND_END1]], [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY]] ]
852
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[DST]], [[ENTRY:%.*]] ]
853
+ ; PRED-NEXT: [[BC_RESUME_VAL2:%.*]] = phi i64 [ 0, [[ENTRY]] ]
857
854
; PRED-NEXT: br label [[LOOP:%.*]]
858
855
; PRED: loop:
859
856
; PRED-NEXT: [[PTR_IV:%.*]] = phi ptr [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[PTR_IV_NEXT:%.*]], [[LOOP]] ]
@@ -978,9 +975,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
978
975
; DEFAULT-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
979
976
; DEFAULT-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
980
977
; DEFAULT: middle.block:
981
- ; DEFAULT-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
978
+ ; DEFAULT-NEXT: br label [[EXIT:%.*]]
982
979
; DEFAULT: scalar.ph:
983
- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
980
+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
984
981
; DEFAULT-NEXT: br label [[LOOP:%.*]]
985
982
; DEFAULT: loop:
986
983
; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
@@ -1080,9 +1077,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
1080
1077
; PRED-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
1081
1078
; PRED-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP21:![0-9]+]]
1082
1079
; PRED: middle.block:
1083
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1080
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1084
1081
; PRED: scalar.ph:
1085
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1082
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1086
1083
; PRED-NEXT: br label [[LOOP:%.*]]
1087
1084
; PRED: loop:
1088
1085
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
@@ -1517,9 +1514,9 @@ define void @test_conditional_interleave_group (ptr noalias %src.1, ptr noalias
1517
1514
; PRED-NEXT: [[TMP85:%.*]] = extractelement <8 x i1> [[TMP84]], i32 0
1518
1515
; PRED-NEXT: br i1 [[TMP85]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP23:![0-9]+]]
1519
1516
; PRED: middle.block:
1520
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1517
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1521
1518
; PRED: scalar.ph:
1522
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_SCEVCHECK]] ]
1519
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_SCEVCHECK]] ]
1523
1520
; PRED-NEXT: br label [[LOOP_HEADER:%.*]]
1524
1521
; PRED: loop.header:
1525
1522
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
@@ -1630,9 +1627,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
1630
1627
; DEFAULT-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1631
1628
; DEFAULT-NEXT: br i1 [[TMP11]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
1632
1629
; DEFAULT: middle.block:
1633
- ; DEFAULT-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1630
+ ; DEFAULT-NEXT: br label [[EXIT:%.*]]
1634
1631
; DEFAULT: scalar.ph:
1635
- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1632
+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1636
1633
; DEFAULT-NEXT: br label [[LOOP_HEADER:%.*]]
1637
1634
; DEFAULT: loop.header:
1638
1635
; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
@@ -1693,9 +1690,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
1693
1690
; PRED-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1694
1691
; PRED-NEXT: br i1 [[TMP11]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP25:![0-9]+]]
1695
1692
; PRED: middle.block:
1696
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1693
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1697
1694
; PRED: scalar.ph:
1698
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1695
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1699
1696
; PRED-NEXT: br label [[LOOP_HEADER:%.*]]
1700
1697
; PRED: loop.header:
1701
1698
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
0 commit comments