Skip to content

Commit

Permalink
InstCombine: Use the InstSimplify hook for shufflevector
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Zvi Rackover committed Apr 4, 2017
1 parent 6132952 commit 82bf48d
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
Expand Up @@ -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);
Expand Down

0 comments on commit 82bf48d

Please sign in to comment.