[all-commits] [llvm/llvm-project] f33803: [SLP]Support copyable fmuls in fmuladd, modeled as...
Alexey Bataev via All-commits
all-commits at lists.llvm.org
Mon Aug 3 11:48:21 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f338032ff6f5c4d082cde3d9e89c95afc3b6982a
https://github.com/llvm/llvm-project/commit/f338032ff6f5c4d082cde3d9e89c95afc3b6982a
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2026-08-03 (Mon, 03 Aug 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCompatibilityAnalysis.h
M llvm/test/Transforms/SLPVectorizer/X86/fmuladd-copyable-fmul.ll
Log Message:
-----------
[SLP]Support copyable fmuls in fmuladd, modeled as fmuladd(a, b, -0.0)
A copyable lane holding a single-use fmul a, b is modeled as
fmuladd(a, b, -0.0), which equals fmul a, b (the add of -0.0 is exact
and preserves signed zeros), so the multiply dies instead of being
computed and gathered. Applied only when every copyable lane is such
an fmul; multi-use fmuls and mixed copyables keep the
addend/multiplicand modeling. On a tie between fmuladd and fmul main
ops, fmuladd is preferred only when the fmuls are absorbed profitably:
single-use, operands not part of the list and vectorizable as
multiplicand operands.
Reviewers: bababuck, hiraditya, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/213369
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