[PATCH] D52140: [X86] Add initial SimplifyDemandedVectorEltsForTargetNode support
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 15 13:49:30 PDT 2018
RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel, andreadb, efriedma, niravd.
This patch adds an initial x86 SimplifyDemandedVectorEltsForTargetNode implementation to handle target shuffles.
Currently the patch only decodes a target shuffle, calls SimplifyDemandedVectorElts on its input operands and removes any shuffle that reduces to undef/zero/identity.
Future work will need to integrate this with combineX86ShufflesRecursively, add support for other x86 ops, etc.
A change had to be made to a test in extractelement-load.ll to prevent complete reduction due to improved undef propagation.
NOTE: There is a minor regression that appears to be affecting further (extractelement?) combines which I haven't been able to solve yet - possibly something to do with how nodes are added to the worklist after simplification.
Repository:
rL LLVM
https://reviews.llvm.org/D52140
Files:
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
test/CodeGen/X86/2012-01-12-extract-sv.ll
test/CodeGen/X86/combine-sdiv.ll
test/CodeGen/X86/combine-srem.ll
test/CodeGen/X86/dagcombine-cse.ll
test/CodeGen/X86/extractelement-load.ll
test/CodeGen/X86/insertps-combine.ll
test/CodeGen/X86/oddshuffles.ll
test/CodeGen/X86/pr13577.ll
test/CodeGen/X86/pr34592.ll
test/CodeGen/X86/reduce-trunc-shl.ll
test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
test/CodeGen/X86/vec_extract-sse4.ll
test/CodeGen/X86/vec_insert-3.ll
test/CodeGen/X86/vector-constrained-fp-intrinsics.ll
test/CodeGen/X86/vector-rotate-128.ll
test/CodeGen/X86/vector-shuffle-128-v4.ll
test/CodeGen/X86/vector-trunc.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52140.165660.patch
Type: text/x-patch
Size: 71686 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180915/6cdbaedf/attachment.bin>
More information about the llvm-commits
mailing list