summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/LoopUnroll.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-08-25 17:59:49 +0000
committerCraig Topper <craig.topper@intel.com>2019-08-25 17:59:49 +0000
commitb8b90ac1c515291ad66920b30e14467fee96f448 (patch)
treeed76af780780e13734c2f57bbb2e52601dab8840 /llvm/lib/Transforms/Utils/LoopUnroll.cpp
parent1475fad1d0d45572471575cdda8fed6eeab5b0ec (diff)
downloadbcm5719-llvm-b8b90ac1c515291ad66920b30e14467fee96f448.tar.gz
bcm5719-llvm-b8b90ac1c515291ad66920b30e14467fee96f448.zip
[X86][DAGCombiner] Teach narrowShuffle to use concat_vectors instead of inserting into undef
Summary: Concat_vectors is more canonical during early DAG combine. For example, its what's used by SelectionDAGBuilder when converting IR shuffles into SelectionDAG shuffles when element counts between inputs and mask don't match. We also have combines in DAGCombiner than can pull concat_vectors through a shuffle. See partitionShuffleOfConcats. So it seems like concat_vectors is a better operation to use here. I had to teach DAGCombiner's SimplifyVBinOp to also handle concat_vectors with undef. I haven't checked yet if we can remove the INSERT_SUBVECTOR version in there or not. I didn't want to mess with the other caller of getShuffleHalfVectors that's used during shuffle lowering where insert_subvector probably is what we want to produce so I've enabled this via a boolean passed to the function. Reviewers: spatel, RKSimon Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66504 llvm-svn: 369872
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnroll.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud