Skip to content

Commit 556c0a5

Browse files
committed
[LV][EVL] Attach a new metadata on EVL vectorized loops
TBA...
1 parent 2d7add6 commit 556c0a5

11 files changed

+254
-221
lines changed

llvm/lib/Transforms/Vectorize/VPlan.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,32 @@ void VPlan::execute(VPTransformState *State) {
10111011
Value *Val = State->get(PhiR->getOperand(1), NeedsScalar);
10121012
cast<PHINode>(Phi)->addIncoming(Val, VectorLatchBB);
10131013
}
1014+
1015+
// Check if it's EVL-vectorized and mark the corresponding metadata.
1016+
// Note that we could have done this during the codegen of
1017+
// ExplictVectorLength, but the enclosing vector loop was not in a good shape
1018+
// for us to attach the metadata.
1019+
bool IsEVLVectorized = llvm::any_of(*Header, [](const VPRecipeBase &Recipe) {
1020+
// Looking for the ExplictVectorLength VPInstruction.
1021+
if (const auto *VI = dyn_cast<VPInstruction>(&Recipe))
1022+
return VI->getOpcode() == VPInstruction::ExplicitVectorLength;
1023+
return false;
1024+
});
1025+
if (IsEVLVectorized) {
1026+
// VPTransformState::CurrentParentLoop has already been reset
1027+
// at this moment.
1028+
Loop *L = State->LI->getLoopFor(VectorLatchBB);
1029+
assert(L);
1030+
LLVMContext &Context = State->Builder.getContext();
1031+
MDNode *LoopID = L->getLoopID();
1032+
auto *IsEVLVectorizedMD = MDNode::get(
1033+
Context,
1034+
{MDString::get(Context, "llvm.loop.isvectorized.withevl"),
1035+
ConstantAsMetadata::get(ConstantInt::get(Context, APInt(32, 1)))});
1036+
MDNode *NewLoopID = makePostTransformationMetadata(Context, LoopID, {},
1037+
{IsEVLVectorizedMD});
1038+
L->setLoopID(NewLoopID);
1039+
}
10141040
}
10151041

10161042
InstructionCost VPlan::cost(ElementCount VF, VPCostContext &Ctx) {

llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,9 @@ exit: ; preds = %loop
7878
ret void
7979
}
8080
;.
81-
; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
82-
; CHECK: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
83-
; CHECK: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
84-
; CHECK: [[LOOP3]] = distinct !{[[LOOP3]], [[META2]], [[META1]]}
81+
; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]], [[META3:![0-9]+]]}
82+
; CHECK: [[META1]] = !{!"llvm.loop.isvectorized.withevl", i32 1}
83+
; CHECK: [[META2]] = !{!"llvm.loop.isvectorized", i32 1}
84+
; CHECK: [[META3]] = !{!"llvm.loop.unroll.runtime.disable"}
85+
; CHECK: [[LOOP4]] = distinct !{[[LOOP4]], [[META3]], [[META2]]}
8586
;.

llvm/test/Transforms/LoopVectorize/RISCV/type-info-cache-evl-crash.ll

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ define void @type_info_cache_clobber(ptr %dstv, ptr %src, i64 %wide.trip.count)
7979
; CHECK-NEXT: store i16 [[CONV36]], ptr null, align 2
8080
; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
8181
; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], [[WIDE_TRIP_COUNT]]
82-
; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP8:![0-9]+]]
82+
; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP9:![0-9]+]]
8383
; CHECK: [[EXIT]]:
8484
; CHECK-NEXT: ret void
8585
;
@@ -113,8 +113,9 @@ exit:
113113
; CHECK: [[META2]] = distinct !{[[META2]], !"LVerDomain"}
114114
; CHECK: [[META3]] = !{[[META4:![0-9]+]]}
115115
; CHECK: [[META4]] = distinct !{[[META4]], [[META2]]}
116-
; CHECK: [[LOOP5]] = distinct !{[[LOOP5]], [[META6:![0-9]+]], [[META7:![0-9]+]]}
117-
; CHECK: [[META6]] = !{!"llvm.loop.isvectorized", i32 1}
118-
; CHECK: [[META7]] = !{!"llvm.loop.unroll.runtime.disable"}
119-
; CHECK: [[LOOP8]] = distinct !{[[LOOP8]], [[META6]]}
116+
; CHECK: [[LOOP5]] = distinct !{[[LOOP5]], [[META6:![0-9]+]], [[META7:![0-9]+]], [[META8:![0-9]+]]}
117+
; CHECK: [[META6]] = !{!"llvm.loop.isvectorized.withevl", i32 1}
118+
; CHECK: [[META7]] = !{!"llvm.loop.isvectorized", i32 1}
119+
; CHECK: [[META8]] = !{!"llvm.loop.unroll.runtime.disable"}
120+
; CHECK: [[LOOP9]] = distinct !{[[LOOP9]], [[META7]]}
120121
;.

llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-bin-unary-ops-args.ll

Lines changed: 74 additions & 73 deletions
Large diffs are not rendered by default.

llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-call-intrinsics.ll

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ define void @vp_smax(ptr %a, ptr %b, ptr %c, i64 %N) {
7979
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
8080
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
8181
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
82-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP3:![0-9]+]]
82+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP4:![0-9]+]]
8383
; IF-EVL: [[EXIT]]:
8484
; IF-EVL-NEXT: ret void
8585
;
@@ -176,7 +176,7 @@ define void @vp_smin(ptr %a, ptr %b, ptr %c, i64 %N) {
176176
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
177177
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
178178
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
179-
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
179+
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP5:![0-9]+]]
180180
; IF-EVL: [[MIDDLE_BLOCK]]:
181181
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
182182
; IF-EVL: [[SCALAR_PH]]:
@@ -193,7 +193,7 @@ define void @vp_smin(ptr %a, ptr %b, ptr %c, i64 %N) {
193193
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
194194
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
195195
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
196-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP5:![0-9]+]]
196+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP6:![0-9]+]]
197197
; IF-EVL: [[EXIT]]:
198198
; IF-EVL-NEXT: ret void
199199
;
@@ -290,7 +290,7 @@ define void @vp_umax(ptr %a, ptr %b, ptr %c, i64 %N) {
290290
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
291291
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
292292
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
293-
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP6:![0-9]+]]
293+
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP7:![0-9]+]]
294294
; IF-EVL: [[MIDDLE_BLOCK]]:
295295
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
296296
; IF-EVL: [[SCALAR_PH]]:
@@ -307,7 +307,7 @@ define void @vp_umax(ptr %a, ptr %b, ptr %c, i64 %N) {
307307
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
308308
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
309309
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
310-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP7:![0-9]+]]
310+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP8:![0-9]+]]
311311
; IF-EVL: [[EXIT]]:
312312
; IF-EVL-NEXT: ret void
313313
;
@@ -404,7 +404,7 @@ define void @vp_umin(ptr %a, ptr %b, ptr %c, i64 %N) {
404404
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
405405
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
406406
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
407-
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP8:![0-9]+]]
407+
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP9:![0-9]+]]
408408
; IF-EVL: [[MIDDLE_BLOCK]]:
409409
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
410410
; IF-EVL: [[SCALAR_PH]]:
@@ -421,7 +421,7 @@ define void @vp_umin(ptr %a, ptr %b, ptr %c, i64 %N) {
421421
; IF-EVL-NEXT: store i32 [[DOT]], ptr [[GEP11]], align 4
422422
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
423423
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
424-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP9:![0-9]+]]
424+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP10:![0-9]+]]
425425
; IF-EVL: [[EXIT]]:
426426
; IF-EVL-NEXT: ret void
427427
;
@@ -510,7 +510,7 @@ define void @vp_ctlz(ptr %a, ptr %b, i64 %N) {
510510
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP16]], [[EVL_BASED_IV]]
511511
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
512512
; IF-EVL-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
513-
; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP10:![0-9]+]]
513+
; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP11:![0-9]+]]
514514
; IF-EVL: [[MIDDLE_BLOCK]]:
515515
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
516516
; IF-EVL: [[SCALAR_PH]]:
@@ -525,7 +525,7 @@ define void @vp_ctlz(ptr %a, ptr %b, i64 %N) {
525525
; IF-EVL-NEXT: store i32 [[TMP19]], ptr [[GEP3]], align 4
526526
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
527527
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
528-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP11:![0-9]+]]
528+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP12:![0-9]+]]
529529
; IF-EVL: [[EXIT]]:
530530
; IF-EVL-NEXT: ret void
531531
;
@@ -609,7 +609,7 @@ define void @vp_cttz(ptr %a, ptr %b, i64 %N) {
609609
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP20]], [[EVL_BASED_IV]]
610610
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP12]]
611611
; IF-EVL-NEXT: [[TMP21:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
612-
; IF-EVL-NEXT: br i1 [[TMP21]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP12:![0-9]+]]
612+
; IF-EVL-NEXT: br i1 [[TMP21]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP13:![0-9]+]]
613613
; IF-EVL: [[MIDDLE_BLOCK]]:
614614
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
615615
; IF-EVL: [[SCALAR_PH]]:
@@ -624,7 +624,7 @@ define void @vp_cttz(ptr %a, ptr %b, i64 %N) {
624624
; IF-EVL-NEXT: store i32 [[TMP23]], ptr [[GEP3]], align 4
625625
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
626626
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
627-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP13:![0-9]+]]
627+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP14:![0-9]+]]
628628
; IF-EVL: [[EXIT]]:
629629
; IF-EVL-NEXT: ret void
630630
;
@@ -711,7 +711,7 @@ define void @vp_lrint(ptr %a, ptr %b, i64 %N) {
711711
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
712712
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
713713
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
714-
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP14:![0-9]+]]
714+
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP15:![0-9]+]]
715715
; IF-EVL: [[MIDDLE_BLOCK]]:
716716
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
717717
; IF-EVL: [[SCALAR_PH]]:
@@ -728,7 +728,7 @@ define void @vp_lrint(ptr %a, ptr %b, i64 %N) {
728728
; IF-EVL-NEXT: store i32 [[CONV3]], ptr [[GEP5]], align 4
729729
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
730730
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
731-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP15:![0-9]+]]
731+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP16:![0-9]+]]
732732
; IF-EVL: [[EXIT]]:
733733
; IF-EVL-NEXT: ret void
734734
;
@@ -819,7 +819,7 @@ define void @vp_llrint(ptr %a, ptr %b, i64 %N) {
819819
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP18]], [[EVL_BASED_IV]]
820820
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
821821
; IF-EVL-NEXT: [[TMP19:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
822-
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP16:![0-9]+]]
822+
; IF-EVL-NEXT: br i1 [[TMP19]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP17:![0-9]+]]
823823
; IF-EVL: [[MIDDLE_BLOCK]]:
824824
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
825825
; IF-EVL: [[SCALAR_PH]]:
@@ -836,7 +836,7 @@ define void @vp_llrint(ptr %a, ptr %b, i64 %N) {
836836
; IF-EVL-NEXT: store i32 [[CONV3]], ptr [[GEP5]], align 4
837837
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
838838
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
839-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP17:![0-9]+]]
839+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP18:![0-9]+]]
840840
; IF-EVL: [[EXIT]]:
841841
; IF-EVL-NEXT: ret void
842842
;
@@ -925,7 +925,7 @@ define void @vp_abs(ptr %a, ptr %b, i64 %N) {
925925
; IF-EVL-NEXT: [[INDEX_EVL_NEXT]] = add i64 [[TMP16]], [[EVL_BASED_IV]]
926926
; IF-EVL-NEXT: [[INDEX_NEXT]] = add i64 [[INDEX]], [[TMP8]]
927927
; IF-EVL-NEXT: [[TMP17:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
928-
; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP18:![0-9]+]]
928+
; IF-EVL-NEXT: br i1 [[TMP17]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP19:![0-9]+]]
929929
; IF-EVL: [[MIDDLE_BLOCK]]:
930930
; IF-EVL-NEXT: br i1 true, label %[[EXIT:.*]], label %[[SCALAR_PH]]
931931
; IF-EVL: [[SCALAR_PH]]:
@@ -940,7 +940,7 @@ define void @vp_abs(ptr %a, ptr %b, i64 %N) {
940940
; IF-EVL-NEXT: store i32 [[COND]], ptr [[GEP9]], align 4
941941
; IF-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
942942
; IF-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[N]]
943-
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP19:![0-9]+]]
943+
; IF-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP20:![0-9]+]]
944944
; IF-EVL: [[EXIT]]:
945945
; IF-EVL-NEXT: ret void
946946
;
@@ -1046,24 +1046,25 @@ declare i64 @llvm.lrint.i64.f64(double)
10461046
declare i64 @llvm.llrint.i64.f64(double)
10471047
declare i32 @llvm.abs.i32(i32, i1 immarg)
10481048
;.
1049-
; IF-EVL: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
1050-
; IF-EVL: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
1051-
; IF-EVL: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
1052-
; IF-EVL: [[LOOP3]] = distinct !{[[LOOP3]], [[META1]]}
1053-
; IF-EVL: [[LOOP4]] = distinct !{[[LOOP4]], [[META1]], [[META2]]}
1054-
; IF-EVL: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]]}
1055-
; IF-EVL: [[LOOP6]] = distinct !{[[LOOP6]], [[META1]], [[META2]]}
1056-
; IF-EVL: [[LOOP7]] = distinct !{[[LOOP7]], [[META1]]}
1057-
; IF-EVL: [[LOOP8]] = distinct !{[[LOOP8]], [[META1]], [[META2]]}
1058-
; IF-EVL: [[LOOP9]] = distinct !{[[LOOP9]], [[META1]]}
1059-
; IF-EVL: [[LOOP10]] = distinct !{[[LOOP10]], [[META1]], [[META2]]}
1060-
; IF-EVL: [[LOOP11]] = distinct !{[[LOOP11]], [[META1]]}
1061-
; IF-EVL: [[LOOP12]] = distinct !{[[LOOP12]], [[META1]], [[META2]]}
1062-
; IF-EVL: [[LOOP13]] = distinct !{[[LOOP13]], [[META1]]}
1063-
; IF-EVL: [[LOOP14]] = distinct !{[[LOOP14]], [[META1]], [[META2]]}
1064-
; IF-EVL: [[LOOP15]] = distinct !{[[LOOP15]], [[META1]]}
1065-
; IF-EVL: [[LOOP16]] = distinct !{[[LOOP16]], [[META1]], [[META2]]}
1066-
; IF-EVL: [[LOOP17]] = distinct !{[[LOOP17]], [[META1]]}
1067-
; IF-EVL: [[LOOP18]] = distinct !{[[LOOP18]], [[META1]], [[META2]]}
1068-
; IF-EVL: [[LOOP19]] = distinct !{[[LOOP19]], [[META1]]}
1049+
; IF-EVL: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]], [[META3:![0-9]+]]}
1050+
; IF-EVL: [[META1]] = !{!"llvm.loop.isvectorized.withevl", i32 1}
1051+
; IF-EVL: [[META2]] = !{!"llvm.loop.isvectorized", i32 1}
1052+
; IF-EVL: [[META3]] = !{!"llvm.loop.unroll.runtime.disable"}
1053+
; IF-EVL: [[LOOP4]] = distinct !{[[LOOP4]], [[META2]]}
1054+
; IF-EVL: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]], [[META2]], [[META3]]}
1055+
; IF-EVL: [[LOOP6]] = distinct !{[[LOOP6]], [[META2]]}
1056+
; IF-EVL: [[LOOP7]] = distinct !{[[LOOP7]], [[META1]], [[META2]], [[META3]]}
1057+
; IF-EVL: [[LOOP8]] = distinct !{[[LOOP8]], [[META2]]}
1058+
; IF-EVL: [[LOOP9]] = distinct !{[[LOOP9]], [[META1]], [[META2]], [[META3]]}
1059+
; IF-EVL: [[LOOP10]] = distinct !{[[LOOP10]], [[META2]]}
1060+
; IF-EVL: [[LOOP11]] = distinct !{[[LOOP11]], [[META1]], [[META2]], [[META3]]}
1061+
; IF-EVL: [[LOOP12]] = distinct !{[[LOOP12]], [[META2]]}
1062+
; IF-EVL: [[LOOP13]] = distinct !{[[LOOP13]], [[META1]], [[META2]], [[META3]]}
1063+
; IF-EVL: [[LOOP14]] = distinct !{[[LOOP14]], [[META2]]}
1064+
; IF-EVL: [[LOOP15]] = distinct !{[[LOOP15]], [[META1]], [[META2]], [[META3]]}
1065+
; IF-EVL: [[LOOP16]] = distinct !{[[LOOP16]], [[META2]]}
1066+
; IF-EVL: [[LOOP17]] = distinct !{[[LOOP17]], [[META1]], [[META2]], [[META3]]}
1067+
; IF-EVL: [[LOOP18]] = distinct !{[[LOOP18]], [[META2]]}
1068+
; IF-EVL: [[LOOP19]] = distinct !{[[LOOP19]], [[META1]], [[META2]], [[META3]]}
1069+
; IF-EVL: [[LOOP20]] = distinct !{[[LOOP20]], [[META2]]}
10691070
;.

0 commit comments

Comments
 (0)