@@ -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:%.*]] ]
@@ -823,9 +823,6 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
823
823
; PRED-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
824
824
; PRED-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
825
825
; PRED-NEXT: [[TMP5:%.*]] = mul i64 [[TMP4]], 2
826
- ; PRED-NEXT: [[TMP3:%.*]] = mul i64 [[N_VEC]], 8
827
- ; PRED-NEXT: [[IND_END:%.*]] = getelementptr i8, ptr [[DST]], i64 [[TMP3]]
828
- ; PRED-NEXT: [[IND_END1:%.*]] = mul i64 [[N_VEC]], 2
829
826
; PRED-NEXT: [[TMP6:%.*]] = call i64 @llvm.vscale.i64()
830
827
; PRED-NEXT: [[TMP7:%.*]] = mul i64 [[TMP6]], 2
831
828
; PRED-NEXT: [[TMP8:%.*]] = sub i64 257, [[TMP7]]
@@ -852,10 +849,10 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
852
849
; PRED-NEXT: [[TMP17:%.*]] = extractelement <vscale x 2 x i1> [[TMP16]], i32 0
853
850
; PRED-NEXT: br i1 [[TMP17]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP19:![0-9]+]]
854
851
; PRED: middle.block:
855
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
852
+ ; PRED-NEXT: br label [[EXIT:%.*]]
856
853
; PRED: scalar.ph:
857
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[IND_END]], [[MIDDLE_BLOCK]] ], [ [[ DST]], [[ENTRY:%.*]] ]
858
- ; PRED-NEXT: [[BC_RESUME_VAL2:%.*]] = phi i64 [ [[IND_END1]], [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY]] ]
854
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi ptr [ [[DST]], [[ENTRY:%.*]] ]
855
+ ; PRED-NEXT: [[BC_RESUME_VAL2:%.*]] = phi i64 [ 0, [[ENTRY]] ]
859
856
; PRED-NEXT: br label [[LOOP:%.*]]
860
857
; PRED: vector.scevcheck:
861
858
; PRED-NEXT: unreachable
@@ -982,9 +979,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
982
979
; DEFAULT-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
983
980
; DEFAULT-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
984
981
; DEFAULT: middle.block:
985
- ; DEFAULT-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
982
+ ; DEFAULT-NEXT: br label [[EXIT:%.*]]
986
983
; DEFAULT: scalar.ph:
987
- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
984
+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
988
985
; DEFAULT-NEXT: br label [[LOOP:%.*]]
989
986
; DEFAULT: loop:
990
987
; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
@@ -1084,9 +1081,9 @@ define void @low_trip_count_fold_tail_scalarized_store(ptr %dst) {
1084
1081
; PRED-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
1085
1082
; PRED-NEXT: br i1 true, label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP21:![0-9]+]]
1086
1083
; PRED: middle.block:
1087
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1084
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1088
1085
; PRED: scalar.ph:
1089
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 8, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1086
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1090
1087
; PRED-NEXT: br label [[LOOP:%.*]]
1091
1088
; PRED: loop:
1092
1089
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP]] ]
@@ -1521,9 +1518,9 @@ define void @test_conditional_interleave_group (ptr noalias %src.1, ptr noalias
1521
1518
; PRED-NEXT: [[TMP85:%.*]] = extractelement <8 x i1> [[TMP84]], i32 0
1522
1519
; PRED-NEXT: br i1 [[TMP85]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP23:![0-9]+]]
1523
1520
; PRED: middle.block:
1524
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1521
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1525
1522
; PRED: scalar.ph:
1526
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_SCEVCHECK]] ]
1523
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ 0, [[VECTOR_SCEVCHECK]] ]
1527
1524
; PRED-NEXT: br label [[LOOP_HEADER:%.*]]
1528
1525
; PRED: loop.header:
1529
1526
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
@@ -1634,9 +1631,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
1634
1631
; DEFAULT-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1635
1632
; DEFAULT-NEXT: br i1 [[TMP11]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
1636
1633
; DEFAULT: middle.block:
1637
- ; DEFAULT-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1634
+ ; DEFAULT-NEXT: br label [[EXIT:%.*]]
1638
1635
; DEFAULT: scalar.ph:
1639
- ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1636
+ ; DEFAULT-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1640
1637
; DEFAULT-NEXT: br label [[LOOP_HEADER:%.*]]
1641
1638
; DEFAULT: loop.header:
1642
1639
; DEFAULT-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
@@ -1697,9 +1694,9 @@ define void @redundant_branch_and_tail_folding(ptr %dst, i1 %c) optsize {
1697
1694
; PRED-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1698
1695
; PRED-NEXT: br i1 [[TMP11]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP25:![0-9]+]]
1699
1696
; PRED: middle.block:
1700
- ; PRED-NEXT: br i1 true, label [[EXIT:%.*]], label [[SCALAR_PH ]]
1697
+ ; PRED-NEXT: br label [[EXIT:%.*]]
1701
1698
; PRED: scalar.ph:
1702
- ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 24, [[MIDDLE_BLOCK]] ], [ 0, [[ENTRY:%.*]] ]
1699
+ ; PRED-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ]
1703
1700
; PRED-NEXT: br label [[LOOP_HEADER:%.*]]
1704
1701
; PRED: loop.header:
1705
1702
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], [[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], [[LOOP_LATCH:%.*]] ]
0 commit comments