[PATCH] D79335: [X86][SSE] Move VZEXT_MOVL removal into SimplifyDemandedVectorEltsForTargetNode
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 4 09:37:51 PDT 2020
RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel.
Herald added a subscriber: hiraditya.
Herald added a project: LLVM.
This patch replaces the VZEXT_MOVL removal from combineShuffle with a more general version based in SimplifyDemandedVectorEltsForTargetNode.
By making use of the KnownZero result from a call to SimplifyDemandedVectorElts we can always remove the VZEXT_MOVL if the upper elements of the source operand are known to be zero.
This requires us to add the conversion ops to SimplifyDemandedVectorEltsForTargetNode as well, at the moment I've just added the 'known zero upper elements' tagging but we can add inner SimplifyDemandedVectorElts calls to the operands if/when the need occurs (I'm assuming we can't do this at all for the STRICT opcodes?).
I was hoping to do this even more generally by handling it in the target shuffle combines below but this is yet another occasion where I need to finish D66004 <https://reviews.llvm.org/D66004> first.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D79335
Files:
llvm/lib/Target/X86/X86ISelLowering.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79335.261843.patch
Type: text/x-patch
Size: 4353 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200504/2803974c/attachment.bin>
More information about the llvm-commits
mailing list