@@ -511,6 +511,8 @@ define void @interleave_store_double_i64(ptr %dst) {
511511; CHECK: [[VECTOR_PH]]:
512512; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
513513; CHECK: [[VECTOR_BODY]]:
514+ ; CHECK-NEXT: store <4 x double> <double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 4.940660e-324>, ptr [[DST]], align 8
515+ ; CHECK-NEXT: br label %[[MIDDLE_BLOCK:.*]]
514516; CHECK: [[MIDDLE_BLOCK]]:
515517; CHECK-NEXT: br label %[[EXIT:.*]]
516518; CHECK: [[SCALAR_PH]]:
@@ -523,6 +525,7 @@ define void @interleave_store_double_i64(ptr %dst) {
523525; CHECK-NEXT: store double 0.000000e+00, ptr [[GEP_0]], align 8
524526; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
525527; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], 1
528+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP20:![0-9]+]]
526529; CHECK: [[EXIT]]:
527530; CHECK-NEXT: ret void
528531;
@@ -620,6 +623,8 @@ define void @interleave_store_i64_double_2(ptr %dst) {
620623; CHECK: [[VECTOR_PH]]:
621624; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
622625; CHECK: [[VECTOR_BODY]]:
626+ ; CHECK-NEXT: store <4 x double> <double 0.000000e+00, double 0.000000e+00, double 4.940660e-324, double 0.000000e+00>, ptr [[DST]], align 8
627+ ; CHECK-NEXT: br label %[[MIDDLE_BLOCK:.*]]
623628; CHECK: [[MIDDLE_BLOCK]]:
624629; CHECK-NEXT: br label %[[EXIT:.*]]
625630; CHECK: [[SCALAR_PH]]:
@@ -632,6 +637,7 @@ define void @interleave_store_i64_double_2(ptr %dst) {
632637; CHECK-NEXT: store double 0.000000e+00, ptr [[GEP_1]], align 8
633638; CHECK-NEXT: [[IV_NEXT]] = add i64 [[IV]], 1
634639; CHECK-NEXT: [[EC:%.*]] = icmp eq i64 [[IV]], 1
640+ ; CHECK-NEXT: br i1 [[EC]], label %[[EXIT]], label %[[LOOP]], !llvm.loop [[LOOP21:![0-9]+]]
635641; CHECK: [[EXIT]]:
636642; CHECK-NEXT: ret void
637643;
@@ -662,3 +668,22 @@ attributes #1 = { "min-legal-vector-width"="0" "target-cpu"="cascadelake" }
662668; CHECK: [[META1]] = !{!"llvm.loop.isvectorized", i32 1}
663669; CHECK: [[META2]] = !{!"llvm.loop.unroll.runtime.disable"}
664670; CHECK: [[LOOP3]] = distinct !{[[LOOP3]], [[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]]}
689+ ;.
0 commit comments