[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