[all-commits] [llvm/llvm-project] 87c971: [SLP]Emit loop-carried horizontal reductions as lo...
Alexey Bataev via All-commits
all-commits at lists.llvm.org
Mon Sep 21 05:38:14 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 87c971d36345c0ff4f7a7ae75080bd55e83e4fca
https://github.com/llvm/llvm-project/commit/87c971d36345c0ff4f7a7ae75080bd55e83e4fca
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-09-21 (Mon, 21 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-reduction.ll
M llvm/test/Transforms/SLPVectorizer/X86/slp-fma-loss.ll
Log Message:
-----------
[SLP]Emit loop-carried horizontal reductions as loop vector accumulator
A reduction whose root is the backedge value of a loop accumulator phi
is emitted as a lane-wise vector accumulator in the loop plus a single
reduction in the exit blocks, instead of a horizontal reduction on every
iteration. The loop-carried dependency chain becomes lane-wise and the
reduction is paid once per loop execution.
Note: It is partial vectorization within the loop, LV cannot handle it.
SLP already does something similar with multi-register reductions,
this adds another level - phi-based loop accumulator reductions.
Reviewers: RKSimon, bababuck
Pull Request: https://github.com/llvm/llvm-project/pull/221598
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