[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