@@ -145,7 +145,7 @@ define void @geps_feeding_interleave_groups_with_reuse(ptr %arg, i64 %arg1, ptr
145145; CHECK-NEXT: [[TMP26:%.*]] = getelementptr inbounds i8, ptr [[ARG]], i64 [[TMP9]]
146146; CHECK-NEXT: [[TMP11:%.*]] = shl i64 [[INDEX]], 4
147147; CHECK-NEXT: [[TMP28:%.*]] = getelementptr inbounds i8, ptr [[ARG2]], i64 [[TMP11]]
148- ; CHECK-NEXT: [[WIDE_VEC:%.*]] = load <16 x float>, ptr [[TMP26]], align 4
148+ ; CHECK-NEXT: [[WIDE_VEC:%.*]] = load <16 x float>, ptr [[TMP26]], align 4, !alias.scope [[META4:![0-9]+]]
149149; CHECK-NEXT: [[STRIDED_VEC:%.*]] = shufflevector <16 x float> [[WIDE_VEC]], <16 x float> poison, <2 x i32> <i32 0, i32 8>
150150; CHECK-NEXT: [[STRIDED_VEC14:%.*]] = shufflevector <16 x float> [[WIDE_VEC]], <16 x float> poison, <2 x i32> <i32 1, i32 9>
151151; CHECK-NEXT: [[STRIDED_VEC15:%.*]] = shufflevector <16 x float> [[WIDE_VEC]], <16 x float> poison, <2 x i32> <i32 2, i32 10>
@@ -166,10 +166,10 @@ define void @geps_feeding_interleave_groups_with_reuse(ptr %arg, i64 %arg1, ptr
166166; CHECK-NEXT: [[TMP41:%.*]] = shufflevector <2 x float> [[TMP35]], <2 x float> [[TMP37]], <4 x i32> <i32 0, i32 1, i32 2, i32 3>
167167; CHECK-NEXT: [[TMP42:%.*]] = shufflevector <4 x float> [[TMP40]], <4 x float> [[TMP41]], <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
168168; CHECK-NEXT: [[INTERLEAVED_VEC:%.*]] = shufflevector <8 x float> [[TMP42]], <8 x float> poison, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 1, i32 3, i32 5, i32 7>
169- ; CHECK-NEXT: store <8 x float> [[INTERLEAVED_VEC]], ptr [[TMP28]], align 4
169+ ; CHECK-NEXT: store <8 x float> [[INTERLEAVED_VEC]], ptr [[TMP28]], align 4, !alias.scope [[META7:![0-9]+]], !noalias [[META4]]
170170; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 2
171171; CHECK-NEXT: [[TMP43:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
172- ; CHECK-NEXT: br i1 [[TMP43]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP4 :![0-9]+]]
172+ ; CHECK-NEXT: br i1 [[TMP43]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP9 :![0-9]+]]
173173; CHECK: [[MIDDLE_BLOCK]]:
174174; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP0]], [[N_VEC]]
175175; CHECK-NEXT: br i1 [[CMP_N]], label %[[EXIT:.*]], label %[[SCALAR_PH]]
@@ -215,7 +215,7 @@ define void @geps_feeding_interleave_groups_with_reuse(ptr %arg, i64 %arg1, ptr
215215; CHECK-NEXT: store float [[MUL_4]], ptr [[GEP_11]], align 4
216216; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
217217; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], [[ARG1]]
218- ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP5 :![0-9]+]]
218+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP10 :![0-9]+]]
219219; CHECK: [[EXIT]]:
220220; CHECK-NEXT: ret void
221221;
@@ -396,24 +396,24 @@ define void @geps_feeding_interleave_groups_with_reuse2(ptr %A, ptr %B, i64 %N)
396396; CHECK-NEXT: [[OFFSET_IDX:%.*]] = mul i64 [[INDEX]], 8
397397; CHECK-NEXT: [[TMP51:%.*]] = lshr exact i64 [[OFFSET_IDX]], 1
398398; CHECK-NEXT: [[TMP52:%.*]] = getelementptr nusw i32, ptr [[B]], i64 [[TMP51]]
399- ; CHECK-NEXT: [[WIDE_VEC:%.*]] = load <16 x i32>, ptr [[TMP52]], align 4
399+ ; CHECK-NEXT: [[WIDE_VEC:%.*]] = load <16 x i32>, ptr [[TMP52]], align 4, !alias.scope [[META11:![0-9]+]], !noalias [[META14:![0-9]+]]
400400; CHECK-NEXT: [[STRIDED_VEC:%.*]] = shufflevector <16 x i32> [[WIDE_VEC]], <16 x i32> poison, <4 x i32> <i32 0, i32 4, i32 8, i32 12>
401401; CHECK-NEXT: [[STRIDED_VEC34:%.*]] = shufflevector <16 x i32> [[WIDE_VEC]], <16 x i32> poison, <4 x i32> <i32 1, i32 5, i32 9, i32 13>
402402; CHECK-NEXT: [[TMP56:%.*]] = getelementptr i32, ptr [[A]], i64 [[OFFSET_IDX]]
403403; CHECK-NEXT: [[TMP54:%.*]] = getelementptr i32, ptr [[B]], <4 x i64> [[VEC_IND]]
404- ; CHECK-NEXT: [[WIDE_MASKED_GATHER:%.*]] = call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> [[TMP54]], i32 4, <4 x i1> splat (i1 true), <4 x i32> poison), !alias.scope [[META6 :![0-9]+]], !noalias [[META9:![0-9]+ ]]
404+ ; CHECK-NEXT: [[WIDE_MASKED_GATHER:%.*]] = call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> [[TMP54]], i32 4, <4 x i1> splat (i1 true), <4 x i32> poison), !alias.scope [[META16 :![0-9]+]], !noalias [[META14 ]]
405405; CHECK-NEXT: [[TMP58:%.*]] = shufflevector <4 x i32> [[STRIDED_VEC]], <4 x i32> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
406406; CHECK-NEXT: [[TMP59:%.*]] = shufflevector <4 x i32> [[STRIDED_VEC34]], <4 x i32> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
407407; CHECK-NEXT: [[TMP60:%.*]] = shufflevector <4 x i32> [[WIDE_MASKED_GATHER]], <4 x i32> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
408408; CHECK-NEXT: [[TMP61:%.*]] = shufflevector <8 x i32> [[TMP58]], <8 x i32> [[TMP59]], <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
409409; CHECK-NEXT: [[TMP62:%.*]] = shufflevector <8 x i32> [[TMP60]], <8 x i32> zeroinitializer, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
410410; CHECK-NEXT: [[TMP63:%.*]] = shufflevector <16 x i32> [[TMP61]], <16 x i32> [[TMP62]], <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
411411; CHECK-NEXT: [[INTERLEAVED_VEC:%.*]] = shufflevector <32 x i32> [[TMP63]], <32 x i32> poison, <32 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 28, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 29, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 30, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27, i32 31>
412- ; CHECK-NEXT: store <32 x i32> [[INTERLEAVED_VEC]], ptr [[TMP56]], align 4
412+ ; CHECK-NEXT: store <32 x i32> [[INTERLEAVED_VEC]], ptr [[TMP56]], align 4, !alias.scope [[META14]]
413413; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 4
414414; CHECK-NEXT: [[VEC_IND_NEXT]] = add <4 x i64> [[VEC_IND]], splat (i64 32)
415415; CHECK-NEXT: [[TMP64:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
416- ; CHECK-NEXT: br i1 [[TMP64]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP11 :![0-9]+]]
416+ ; CHECK-NEXT: br i1 [[TMP64]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], !llvm.loop [[LOOP18 :![0-9]+]]
417417; CHECK: [[MIDDLE_BLOCK]]:
418418; CHECK-NEXT: br label %[[SCALAR_PH]]
419419; CHECK: [[SCALAR_PH]]:
@@ -454,7 +454,7 @@ define void @geps_feeding_interleave_groups_with_reuse2(ptr %A, ptr %B, i64 %N)
454454; CHECK-NEXT: store i32 0, ptr [[GEP_A_7]], align 4
455455; CHECK-NEXT: [[IV_NEXT_7]] = add nuw nsw i64 [[IV]], 8
456456; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], [[N]]
457- ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT:.*]], label %[[LOOP]], !llvm.loop [[LOOP12 :![0-9]+]]
457+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT:.*]], label %[[LOOP]], !llvm.loop [[LOOP19 :![0-9]+]]
458458; CHECK: [[EXIT]]:
459459; CHECK-NEXT: ret void
460460;
@@ -525,7 +525,7 @@ define void @interleave_store_double_i64(ptr %dst) {
525525; CHECK-NEXT: store double 0.000000e+00, ptr [[GEP_0]], align 8
526526; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
527527; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], 1
528- ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP13 :![0-9]+]]
528+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP20 :![0-9]+]]
529529; CHECK: [[EXIT]]:
530530; CHECK-NEXT: ret void
531531;
@@ -637,7 +637,7 @@ define void @interleave_store_i64_double_2(ptr %dst) {
637637; CHECK-NEXT: store double 0.000000e+00, ptr [[GEP_1]], align 8
638638; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
639639; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], 1
640- ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP14 :![0-9]+]]
640+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP21 :![0-9]+]]
641641; CHECK: [[EXIT]]:
642642; CHECK-NEXT: ret void
643643;
@@ -668,15 +668,22 @@ attributes #1 = { "min-legal-vector-width"="0" "target-cpu"="cascadelake" }
668668; CHECK: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
669669; CHECK: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
670670; CHECK: [[LOOP3]] = distinct !{[[LOOP3]], [[META2]], [[META1]]}
671- ; CHECK: [[LOOP4]] = distinct !{[[LOOP4]], [[META1]], [[META2]]}
672- ; CHECK: [[LOOP5]] = distinct !{[[LOOP5]], [[META1]]}
673- ; CHECK: [[META6]] = !{[[META7:![0-9]+]]}
674- ; CHECK: [[META7]] = distinct !{[[META7]], [[META8:![0-9]+]]}
675- ; CHECK: [[META8]] = distinct !{[[META8]], !"LVerDomain"}
676- ; CHECK: [[META9]] = !{[[META10:![0-9]+]]}
677- ; CHECK: [[META10]] = distinct !{[[META10]], [[META8]]}
678- ; CHECK: [[LOOP11]] = distinct !{[[LOOP11]], [[META1]], [[META2]]}
679- ; CHECK: [[LOOP12]] = distinct !{[[LOOP12]], [[META1]]}
680- ; CHECK: [[LOOP13]] = distinct !{[[LOOP13]], [[META2]], [[META1]]}
681- ; CHECK: [[LOOP14]] = distinct !{[[LOOP14]], [[META2]], [[META1]]}
671+ ; CHECK: [[META4]] = !{[[META5:![0-9]+]]}
672+ ; CHECK: [[META5]] = distinct !{[[META5]], [[META6:![0-9]+]]}
673+ ; CHECK: [[META6]] = distinct !{[[META6]], !"LVerDomain"}
674+ ; CHECK: [[META7]] = !{[[META8:![0-9]+]]}
675+ ; CHECK: [[META8]] = distinct !{[[META8]], [[META6]]}
676+ ; CHECK: [[LOOP9]] = distinct !{[[LOOP9]], [[META1]], [[META2]]}
677+ ; CHECK: [[LOOP10]] = distinct !{[[LOOP10]], [[META1]]}
678+ ; CHECK: [[META11]] = !{[[META12:![0-9]+]]}
679+ ; CHECK: [[META12]] = distinct !{[[META12]], [[META13:![0-9]+]]}
680+ ; CHECK: [[META13]] = distinct !{[[META13]], !"LVerDomain"}
681+ ; CHECK: [[META14]] = !{[[META15:![0-9]+]]}
682+ ; CHECK: [[META15]] = distinct !{[[META15]], [[META13]]}
683+ ; CHECK: [[META16]] = !{[[META17:![0-9]+]]}
684+ ; CHECK: [[META17]] = distinct !{[[META17]], [[META13]]}
685+ ; CHECK: [[LOOP18]] = distinct !{[[LOOP18]], [[META1]], [[META2]]}
686+ ; CHECK: [[LOOP19]] = distinct !{[[LOOP19]], [[META1]]}
687+ ; CHECK: [[LOOP20]] = distinct !{[[LOOP20]], [[META2]], [[META1]]}
688+ ; CHECK: [[LOOP21]] = distinct !{[[LOOP21]], [[META2]], [[META1]]}
682689;.
0 commit comments