[all-commits] [llvm/llvm-project] 7f54fc: [VPlan] Add ExtractLastLanePerPart, use in narrowT...

Florian Hahn via All-commits all-commits at lists.llvm.org
Wed Oct 15 05:46:30 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7f54fccc0e556a9ca6e6df42911f05f23eb9889d
      https://github.com/llvm/llvm-project/commit/7f54fccc0e556a9ca6e6df42911f05f23eb9889d
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2025-10-15 (Wed, 15 Oct 2025)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/replicating-load-store-costs.ll
    M llvm/test/Transforms/LoopVectorize/narrow-to-single-scalar.ll

  Log Message:
  -----------
  [VPlan] Add ExtractLastLanePerPart, use in narrowToSingleScalar. (#163056)

When narrowing stores of a single-scalar, we currently use
ExtractLastElement, which extracts the last element across all parts.
This is not correct if the store's address is not uniform across all
parts. If it is only uniform-per-part, the last lane per part must be
extracted. Add a new ExtractLastLanePerPart opcode to handle this
correctly. Most transforms apply to both ExtractLastElement and
ExtractLastLanePerPart, with the only difference being their treatment
during unrolling.

Fixes https://github.com/llvm/llvm-project/issues/162498.

PR: https://github.com/llvm/llvm-project/pull/163056



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list