[all-commits] [llvm/llvm-project] c858bf: Reland "[LoopVectorizer] Add support for partial r...

Sam Tebbs via All-commits all-commits at lists.llvm.org
Tue Dec 24 04:08:40 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c858bf620c3ab2a4db53e84b9365b553c3ad1aa6
      https://github.com/llvm/llvm-project/commit/c858bf620c3ab2a4db53e84b9365b553c3ad1aa6
  Author: Sam Tebbs <samuel.tebbs at arm.com>
  Date:   2024-12-24 (Tue, 24 Dec 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
    M llvm/lib/Transforms/Vectorize/VPlan.h
    M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/lib/Transforms/Vectorize/VPlanValue.h
    M llvm/test/Transforms/LoopVectorize/AArch64/fully-unrolled-cost.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-epilogue.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product-neon.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-no-dotprod.ll
    A llvm/test/Transforms/LoopVectorize/AArch64/vplan-printing.ll

  Log Message:
  -----------
  Reland "[LoopVectorizer] Add support for partial reductions" (#120721)

This re-lands the reverted #92418 

When the VF is small enough so that dividing the VF by the scaling
factor results in 1, the reduction phi execution thinks the VF is scalar
and sets the reduction's output as a scalar value, tripping assertions
expecting a vector value. The latest commit in this PR fixes that by
using `State.VF` in the scalar check, rather than the divided VF.

---------

Co-authored-by: Nicholas Guy <nicholas.guy at arm.com>



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