[all-commits] [llvm/llvm-project] d28ed2: [TTI][WebAssembly] Pairwise reduction expansion (#...
Sam Parker via All-commits
all-commits at lists.llvm.org
Wed Jul 17 01:22:15 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d28ed29d6bd9f0389092775406fff7e6205d4d5f
https://github.com/llvm/llvm-project/commit/d28ed29d6bd9f0389092775406fff7e6205d4d5f
Author: Sam Parker <sam.parker at arm.com>
Date: 2024-07-17 (Wed, 17 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Analysis/TargetTransformInfo.cpp
M llvm/lib/CodeGen/ExpandReductions.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp
M llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h
M llvm/lib/Transforms/Utils/LoopUtils.cpp
A llvm/test/CodeGen/WebAssembly/vector-reduce.ll
Log Message:
-----------
[TTI][WebAssembly] Pairwise reduction expansion (#93948)
WebAssembly doesn't support horizontal operations nor does it have a way
of expressing fast-math or reassoc flags, so runtimes are currently
unable to use pairwise operations when generating code from the existing
shuffle patterns.
This patch allows the backend to select which, arbitary, shuffle pattern
to be used per reduction intrinsic. The default behaviour is the same as
the existing, which is by splitting the vector into a top and bottom
half. The other pattern introduced is for a pairwise shuffle.
WebAssembly enables pairwise reductions for int/fp add/sub.
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