@@ -457,17 +457,17 @@ define void @latch_branch_cost(ptr %dst) {
457
457
; PRED-NEXT: [[TMP25:%.*]] = icmp eq i64 [[INDEX_NEXT]], 104
458
458
; PRED-NEXT: br i1 [[TMP25]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
459
459
; PRED: [[MIDDLE_BLOCK]]:
460
- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
460
+ ; PRED-NEXT: br label %[[EXIT:.*]]
461
461
; 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]] ]
463
463
; PRED-NEXT: br label %[[LOOP:.*]]
464
464
; 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]] ]
466
466
; PRED-NEXT: [[GEP:%.*]] = getelementptr i8, ptr [[DST]], i64 [[IV]]
467
467
; 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]+]]
471
471
; PRED: [[EXIT]]:
472
472
; PRED-NEXT: ret void
473
473
;
@@ -713,9 +713,6 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
713
713
; PRED-NEXT: [[N_VEC:%.*]] = sub i64 [[N_RND_UP]], [[N_MOD_VF]]
714
714
; PRED-NEXT: [[TMP4:%.*]] = call i64 @llvm.vscale.i64()
715
715
; 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
719
716
; PRED-NEXT: [[TMP6:%.*]] = call i64 @llvm.vscale.i64()
720
717
; PRED-NEXT: [[TMP7:%.*]] = mul i64 [[TMP6]], 2
721
718
; PRED-NEXT: [[TMP8:%.*]] = sub i64 257, [[TMP7]]
@@ -741,10 +738,10 @@ define void @multiple_exit_conditions(ptr %src, ptr noalias %dst) #1 {
741
738
; PRED-NEXT: [[TMP17:%.*]] = extractelement <vscale x 2 x i1> [[TMP16]], i32 0
742
739
; PRED-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
743
740
; PRED: [[MIDDLE_BLOCK]]:
744
- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
741
+ ; PRED-NEXT: br label %[[EXIT:.*]]
745
742
; 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]] ]
748
745
; PRED-NEXT: br label %[[LOOP:.*]]
749
746
; PRED: [[LOOP]]:
750
747
; 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) {
869
866
; DEFAULT-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
870
867
; DEFAULT-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP24:![0-9]+]]
871
868
; DEFAULT: [[MIDDLE_BLOCK]]:
872
- ; DEFAULT-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
869
+ ; DEFAULT-NEXT: br label %[[EXIT:.*]]
873
870
; 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]] ]
875
872
; DEFAULT-NEXT: br label %[[LOOP:.*]]
876
873
; DEFAULT: [[LOOP]]:
877
874
; 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) {
971
968
; PRED-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 8
972
969
; PRED-NEXT: br i1 true, label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
973
970
; PRED: [[MIDDLE_BLOCK]]:
974
- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
971
+ ; PRED-NEXT: br label %[[EXIT:.*]]
975
972
; 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]] ]
977
974
; PRED-NEXT: br label %[[LOOP:.*]]
978
975
; PRED: [[LOOP]]:
979
976
; 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
1408
1405
; PRED-NEXT: [[TMP85:%.*]] = extractelement <8 x i1> [[TMP84]], i32 0
1409
1406
; PRED-NEXT: br i1 [[TMP85]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
1410
1407
; PRED: [[MIDDLE_BLOCK]]:
1411
- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1408
+ ; PRED-NEXT: br label %[[EXIT:.*]]
1412
1409
; 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]] ]
1414
1411
; PRED-NEXT: br label %[[LOOP_HEADER:.*]]
1415
1412
; PRED: [[LOOP_HEADER]]:
1416
1413
; 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 {
1521
1518
; DEFAULT-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1522
1519
; DEFAULT-NEXT: br i1 [[TMP11]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP28:![0-9]+]]
1523
1520
; DEFAULT: [[MIDDLE_BLOCK]]:
1524
- ; DEFAULT-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1521
+ ; DEFAULT-NEXT: br label %[[EXIT:.*]]
1525
1522
; 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]] ]
1527
1524
; DEFAULT-NEXT: br label %[[LOOP_HEADER:.*]]
1528
1525
; DEFAULT: [[LOOP_HEADER]]:
1529
1526
; 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 {
1584
1581
; PRED-NEXT: [[TMP11:%.*]] = icmp eq i64 [[INDEX_NEXT]], 24
1585
1582
; PRED-NEXT: br i1 [[TMP11]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
1586
1583
; PRED: [[MIDDLE_BLOCK]]:
1587
- ; PRED-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH ]]
1584
+ ; PRED-NEXT: br label %[[EXIT:.*]]
1588
1585
; 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]] ]
1590
1587
; PRED-NEXT: br label %[[LOOP_HEADER:.*]]
1591
1588
; PRED: [[LOOP_HEADER]]:
1592
1589
; PRED-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP_LATCH:.*]] ]
0 commit comments