[llvm] bb2451e - [VPlan] Add test showing dropped metadata in narrowToSingleScalar (NFC) (#224321)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 17 08:46:06 PDT 2026
Author: Florian Hahn
Date: 2026-09-17T15:45:59Z
New Revision: bb2451e12541d3b2fffd29bcc9e7ae05cf71b493
URL: https://github.com/llvm/llvm-project/commit/bb2451e12541d3b2fffd29bcc9e7ae05cf71b493
DIFF: https://github.com/llvm/llvm-project/commit/bb2451e12541d3b2fffd29bcc9e7ae05cf71b493.diff
LOG: [VPlan] Add test showing dropped metadata in narrowToSingleScalar (NFC) (#224321)
Add test showing dropped metadata in narrowToSingleScalar.
Added:
Modified:
llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
Removed:
################################################################################
diff --git a/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll b/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
index ccc4e44dbcf9c..111bfc56eb8aa 100644
--- a/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
+++ b/llvm/test/Transforms/LoopVectorize/VPlan/vplan-printing-metadata.ll
@@ -237,6 +237,73 @@ exit:
ret void
}
+define void @test_narrowed_to_single_scalar_metadata(ptr noalias %A, float %a, float %b, i32 %n) {
+; CHECK-LABEL: VPlan for loop in 'test_narrowed_to_single_scalar_metadata'
+; CHECK: VPlan 'Initial VPlan for VF={4},UF>=1' {
+; CHECK-NEXT: Live-in vp<[[VP0:%[0-9]+]]> = VF
+; CHECK-NEXT: Live-in vp<[[VP1:%[0-9]+]]> = VF * UF
+; CHECK-NEXT: Live-in vp<[[VP2:%[0-9]+]]> = vector-trip-count
+; CHECK-NEXT: Live-in ir<%n> = original trip-count
+; CHECK-EMPTY:
+; CHECK-NEXT: ir-bb<entry>:
+; CHECK-NEXT: Successor(s): scalar.ph, vector.ph
+; CHECK-EMPTY:
+; CHECK-NEXT: vector.ph:
+; CHECK-NEXT: CLONE ir<%div> = fdiv ir<%a>, ir<%b>{{$}}
+; CHECK-NEXT: Successor(s): vector loop
+; CHECK-EMPTY:
+; CHECK-NEXT: <x1> vector loop: {
+; CHECK-NEXT: vp<[[VP3:%[0-9]+]]> = CANONICAL-IV
+; CHECK-EMPTY:
+; CHECK-NEXT: vector.body:
+; CHECK-NEXT: vp<[[VP4:%[0-9]+]]> = SCALAR-STEPS vp<[[VP3]]>, ir<1>, vp<[[VP0]]>
+; CHECK-NEXT: CLONE ir<%gep.A> = getelementptr inbounds ir<%A>, vp<[[VP4]]>
+; CHECK-NEXT: vp<[[VP5:%[0-9]+]]> = vector-pointer inbounds float, ir<%gep.A>, ir<1>
+; CHECK-NEXT: WIDEN store vp<[[VP5]]>, ir<%div> (!tbaa !{{[0-9]+}})
+; CHECK-NEXT: EMIT vp<%index.next> = add nuw vp<[[VP3]]>, vp<[[VP1]]>
+; CHECK-NEXT: EMIT branch-on-count vp<%index.next>, vp<[[VP2]]>
+; CHECK-NEXT: No successors
+; CHECK-NEXT: }
+; CHECK-NEXT: Successor(s): middle.block
+; CHECK-EMPTY:
+; CHECK-NEXT: middle.block:
+; CHECK-NEXT: EMIT vp<%cmp.n> = icmp eq ir<%n>, vp<[[VP2]]>
+; CHECK-NEXT: EMIT branch-on-cond vp<%cmp.n>
+; CHECK-NEXT: Successor(s): ir-bb<exit>, scalar.ph
+; CHECK-EMPTY:
+; CHECK-NEXT: ir-bb<exit>:
+; CHECK-NEXT: No successors
+; CHECK-EMPTY:
+; CHECK-NEXT: scalar.ph:
+; CHECK-NEXT: EMIT-SCALAR vp<%bc.resume.val> = phi [ vp<[[VP2]]>, middle.block ], [ ir<0>, ir-bb<entry> ]
+; CHECK-NEXT: Successor(s): ir-bb<loop>
+; CHECK-EMPTY:
+; CHECK-NEXT: ir-bb<loop>:
+; CHECK-NEXT: IR %i = phi i32 [ 0, %entry ], [ %i.next, %loop ] (extra operand: vp<%bc.resume.val> from scalar.ph)
+; CHECK-NEXT: IR %div = fdiv float %a, %b, !fpmath !{{[0-9]+}}
+; CHECK-NEXT: IR %gep.A = getelementptr inbounds float, ptr %A, i32 %i
+; CHECK-NEXT: IR store float %div, ptr %gep.A, align 4, !tbaa !{{[0-9]+}}
+; CHECK-NEXT: IR %i.next = add i32 %i, 1
+; CHECK-NEXT: IR %cond = icmp eq i32 %i.next, %n
+; CHECK-NEXT: No successors
+; CHECK-NEXT: }
+;
+entry:
+ br label %loop
+
+loop:
+ %i = phi i32 [ 0, %entry ], [ %i.next, %loop ]
+ %div = fdiv float %a, %b, !fpmath !5
+ %gep.A = getelementptr inbounds float, ptr %A, i32 %i
+ store float %div, ptr %gep.A, align 4, !tbaa !0
+ %i.next = add i32 %i, 1
+ %cond = icmp eq i32 %i.next, %n
+ br i1 %cond, label %exit, label %loop
+
+exit:
+ ret void
+}
+
!0 = !{!1, !1, i64 0}
!1 = !{!"float", !2}
!2 = !{!"root"}
More information about the llvm-commits
mailing list