summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZvi Rackover <zvi.rackover@intel.com>2017-04-04 04:47:57 +0000
committerZvi Rackover <zvi.rackover@intel.com>2017-04-04 04:47:57 +0000
commit82bf48d8b955c8b06eabc374196042d8ae14010d (patch)
tree3576f5fa911949bb88e98485bb609bcf57677641
parent61329522afd8e3d7ca0c441cb76d4d1886479466 (diff)
downloadbcm5719-llvm-82bf48d8b955c8b06eabc374196042d8ae14010d.tar.gz
bcm5719-llvm-82bf48d8b955c8b06eabc374196042d8ae14010d.zip
InstCombine: Use the InstSimplify hook for shufflevector
Summary: Start using the recently added InstSimplify hook for shuffles in the respective InstCombine visitor. Reviewers: spatel, RKSimon, craig.topper, majnemer Reviewed By: majnemer Subscribers: majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D31526 llvm-svn: 299412
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
index c29d3276526..e89b400a4af 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
@@ -1140,12 +1140,11 @@ Instruction *InstCombiner::visitShuffleVectorInst(ShuffleVectorInst &SVI) {
SmallVector<int, 16> Mask = SVI.getShuffleMask();
Type *Int32Ty = Type::getInt32Ty(SVI.getContext());
- bool MadeChange = false;
-
- // Undefined shuffle mask -> undefined value.
- if (isa<UndefValue>(SVI.getOperand(2)))
- return replaceInstUsesWith(SVI, UndefValue::get(SVI.getType()));
+ if (auto *V = SimplifyShuffleVectorInst(LHS, RHS, SVI.getMask(),
+ SVI.getType(), DL, &TLI, &DT, &AC))
+ return replaceInstUsesWith(SVI, V);
+ bool MadeChange = false;
unsigned VWidth = SVI.getType()->getVectorNumElements();
APInt UndefElts(VWidth, 0);
OpenPOWER on IntegriCloud