[PATCH] D53473: [SLPVectorizer] Add basic support for mul/and/or/xor horizontal reductions
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Oct 20 08:53:30 PDT 2018
RKSimon created this revision.
RKSimon added reviewers: ABataev, dtemirbulatov, spatel.
Herald added a subscriber: zzheng.
Expand arithmetic reduction to include mul/and/or/xor instructions.
This patch just fixes the SLPVectorizer - the effective reduction costs for AVX1+ are still poor (see https://reviews.llvm.org/rL344846) and will need to be improved before SLP sees this as a valid transform - but we can already see the effect on SSE2 tests.
This only partially helps PR37731, but doesn't fix it all as it still falls over on the extraction/reduction order for some reason.
Repository:
rL LLVM
https://reviews.llvm.org/D53473
Files:
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/SLPVectorizer/X86/reduction_unrolled.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53473.170312.patch
Type: text/x-patch
Size: 11343 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181020/d9084ba7/attachment.bin>
More information about the llvm-commits
mailing list