diff options
| author | Zvi Rackover <zvi.rackover@intel.com> | 2017-04-04 04:47:57 +0000 |
|---|---|---|
| committer | Zvi Rackover <zvi.rackover@intel.com> | 2017-04-04 04:47:57 +0000 |
| commit | 82bf48d8b955c8b06eabc374196042d8ae14010d (patch) | |
| tree | 3576f5fa911949bb88e98485bb609bcf57677641 | |
| parent | 61329522afd8e3d7ca0c441cb76d4d1886479466 (diff) | |
| download | bcm5719-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.cpp | 9 |
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); |

