[all-commits] [llvm/llvm-project] f94368: [LV] Add support for absolute difference partial r...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Thu Apr 16 01:25:10 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f943685879121b02d568c0ae7e0c95a89a2323e3
      https://github.com/llvm/llvm-project/commit/f943685879121b02d568c0ae7e0c95a89a2323e3
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2026-04-16 (Thu, 16 Apr 2026)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
    M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
    A llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-usabs.ll
    A llvm/test/Transforms/LoopVectorize/VPlan/AArch64/partial-reduce-usabs.ll

  Log Message:
  -----------
  [LV] Add support for absolute difference partial reductions (#188043)

This adds support for partial reductions where the extended operand is a
signed or unsigned absolute difference.

We match the absolute difference as `abs(sub(ext(X), ext(Y)))`, where
`type(X) == type(Y)` and both extends are the same kind (sext/zext).
This is then handled the same as an operand without a binop
(`ext(...)`), as we will transform the operand to
`ext(absolute-difference(A, B))` when we rewrite the reduction chain to
partial reductions.


This is an alternative to #162296.



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