This looks for vaddv(shuffle) or vmlav(shuffle, shuffle), with a shuffle where all the lanes are used once. Due to the reduction being commutative the shuffle can be removed.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Paths
| Differential D143382
[ARM] Remove reduce(shuffle) if all the lanes are used ClosedPublic Authored by dmgreen on Feb 6 2023, 4:20 AM.
Details Summary This looks for vaddv(shuffle) or vmlav(shuffle, shuffle), with a shuffle where all the lanes are used once. Due to the reduction being commutative the shuffle can be removed.
Diff Detail
Event Timelinedmgreen added a child revision: D143396: [ARM] Perform lane interleaving from reductions..Feb 6 2023, 6:58 AM This revision is now accepted and ready to land.Feb 6 2023, 8:22 AM This revision was landed with ongoing or failed builds.Feb 7 2023, 2:44 AM Closed by commit rG734d113a6c88: [ARM] Remove reduce(shuffle) if all the lanes are used (authored by dmgreen). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 495446 llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/Thumb2/mve-vecreduce-add-combine.ll
|