[PATCH] D19318: [InstCombine][SSE] Demanded vector elements for scalar intrinsics (Part 2)
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 20 05:10:36 PDT 2016
RKSimon created this revision.
RKSimon added reviewers: majnemer, mkuper, ab, spatel.
RKSimon added a subscriber: llvm-commits.
RKSimon set the repository for this revision to rL LLVM.
Split from D17490. This patch improves support for determining the demanded vector elements through SSE scalar intrinsics:
1 - demanded vector element support for unary and some extra binary scalar intrinsics (RCP/RSQRT/SQRT/FRCZ and ADD/CMP/DIV/ROUND).
2 - addss/addsd get simplified to a fadd call if we aren't interested in the pass through elements
3 - if we don't need the lowest element of a scalar operation then just use the first argument (the pass through elements) directly
We can add support for propagating demanded elements through any equivalent packed SSE intrinsics in a future patch (these wouldn't use the pass through patterns).
Repository:
rL LLVM
http://reviews.llvm.org/D19318
Files:
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
test/Transforms/InstCombine/x86-sse.ll
test/Transforms/InstCombine/x86-sse2.ll
test/Transforms/InstCombine/x86-sse41.ll
test/Transforms/InstCombine/x86-xop.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19318.54346.patch
Type: text/x-patch
Size: 37536 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160420/72ad402b/attachment.bin>
More information about the llvm-commits
mailing list