Lines Matching refs:ShuffleVectorInst
340 ShuffleVectorInst *Shuffle = cast<ShuffleVectorInst>(UserInstr); in findDemandedEltsBySingleUser()
544 } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) { in visitExtractElementInst()
743 auto *WideVec = new ShuffleVectorInst(ExtVecOp, ExtendMask); in replaceExtractElements()
1185 static bool isShuffleEquivalentToSelect(ShuffleVectorInst &Shuf) { in isShuffleEquivalentToSelect()
1282 return new ShuffleVectorInst(FirstIE, Mask); in foldInsSequenceIntoSplat()
1289 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoSplat()
1319 return new ShuffleVectorInst(Op0, NewMask); in foldInsEltIntoSplat()
1326 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0)); in foldInsEltIntoIdentityShuffle()
1371 return new ShuffleVectorInst(X, Shuf->getOperand(1), NewMask); in foldInsEltIntoIdentityShuffle()
1412 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0))) { in foldConstantInsEltIntoShuffle()
1459 return new ShuffleVectorInst(Shuf->getOperand(0), in foldConstantInsEltIntoShuffle()
1500 return new ShuffleVectorInst(IEI->getOperand(0), in foldConstantInsEltIntoShuffle()
1717 return new ShuffleVectorInst(LR.first, LR.second, Mask); in visitInsertElementInst()
2033 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI, in isShuffleExtractingFromLHS()
2099 static Instruction *foldSelectShuffleOfSelectShuffle(ShuffleVectorInst &Shuf) { in foldSelectShuffleOfSelectShuffle()
2108 auto *ShufOp = dyn_cast<ShuffleVectorInst>(Op0); in foldSelectShuffleOfSelectShuffle()
2112 ShuffleVectorInst::commuteShuffleMask(Mask, NumElts); in foldSelectShuffleOfSelectShuffle()
2115 ShufOp = dyn_cast<ShuffleVectorInst>(Op1); in foldSelectShuffleOfSelectShuffle()
2128 ShuffleVectorInst::commuteShuffleMask(Mask1, NumElts); in foldSelectShuffleOfSelectShuffle()
2140 assert((ShuffleVectorInst::isSelectMask(NewMask, NumElts) || in foldSelectShuffleOfSelectShuffle()
2141 ShuffleVectorInst::isIdentityMask(NewMask, NumElts)) && in foldSelectShuffleOfSelectShuffle()
2143 return new ShuffleVectorInst(X, Y, NewMask); in foldSelectShuffleOfSelectShuffle()
2146 static Instruction *foldSelectShuffleWith1Binop(ShuffleVectorInst &Shuf, in foldSelectShuffleWith1Binop()
2215 static Instruction *canonicalizeInsertSplat(ShuffleVectorInst &Shuf, in canonicalizeInsertSplat()
2243 return new ShuffleVectorInst(NewIns, NewMask); in canonicalizeInsertSplat()
2247 Instruction *InstCombinerImpl::foldSelectShuffle(ShuffleVectorInst &Shuf) { in foldSelectShuffle()
2386 static Instruction *foldTruncShuffle(ShuffleVectorInst &Shuf, in foldTruncShuffle()
2427 static Instruction *narrowVectorSelect(ShuffleVectorInst &Shuf, in narrowVectorSelect()
2449 !cast<ShuffleVectorInst>(Cond)->isIdentityWithPadding()) in narrowVectorSelect()
2461 static Instruction *foldShuffleOfUnaryOps(ShuffleVectorInst &Shuf, in foldShuffleOfUnaryOps()
2508 static Instruction *foldCastShuffle(ShuffleVectorInst &Shuf, in foldCastShuffle()
2557 static Instruction *foldIdentityExtractShuffle(ShuffleVectorInst &Shuf) { in foldIdentityExtractShuffle()
2602 return new ShuffleVectorInst(X, Y, NewMask); in foldIdentityExtractShuffle()
2607 static Instruction *foldShuffleWithInsert(ShuffleVectorInst &Shuf, in foldShuffleWithInsert()
2688 ShuffleVectorInst::commuteShuffleMask(Mask, NumElts); in foldShuffleWithInsert()
2695 static Instruction *foldIdentityPaddedShuffles(ShuffleVectorInst &Shuf) { in foldIdentityPaddedShuffles()
2699 auto *Shuffle0 = dyn_cast<ShuffleVectorInst>(Shuf.getOperand(0)); in foldIdentityPaddedShuffles()
2700 auto *Shuffle1 = dyn_cast<ShuffleVectorInst>(Shuf.getOperand(1)); in foldIdentityPaddedShuffles()
2758 return new ShuffleVectorInst(X, Y, NewMask); in foldIdentityPaddedShuffles()
2764 Instruction *InstCombinerImpl::simplifyBinOpSplats(ShuffleVectorInst &SVI) { in simplifyBinOpSplats()
2788 return new ShuffleVectorInst(NewBO, SVI.getShuffleMask()); in simplifyBinOpSplats()
2791 Instruction *InstCombinerImpl::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst()
2858 return new ShuffleVectorInst(LHS, createUnaryMask(Mask, LHSWidth)); in visitShuffleVectorInst()
3039 ShuffleVectorInst* LHSShuffle = dyn_cast<ShuffleVectorInst>(LHS); in visitShuffleVectorInst()
3040 ShuffleVectorInst* RHSShuffle = dyn_cast<ShuffleVectorInst>(RHS); in visitShuffleVectorInst()
3168 return new ShuffleVectorInst(newLHS, newRHS, newMask); in visitShuffleVectorInst()