Lines Matching defs:Shuf
632 auto *Shuf = dyn_cast<ShuffleVectorInst>(Trunc.getOperand(0));
633 if (Shuf && Shuf->hasOneUse() && match(Shuf->getOperand(1), m_Undef()) &&
634 all_equal(Shuf->getShuffleMask()) &&
635 Shuf->getType() == Shuf->getOperand(0)->getType()) {
638 Value *NarrowOp = Builder.CreateTrunc(Shuf->getOperand(0), Trunc.getType());
639 return new ShuffleVectorInst(NarrowOp, Shuf->getShuffleMask());
2753 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) {
2756 Value *ShufOp0 = Shuf->getOperand(0);
2757 Value *ShufOp1 = Shuf->getOperand(1);
2758 auto ShufElts = cast<VectorType>(Shuf->getType())->getElementCount();
2760 if (Shuf->hasOneUse() && DestTy->isVectorTy() &&
2775 return new ShuffleVectorInst(LHS, RHS, Shuf->getShuffleMask());
2784 Shuf->hasOneUse() && Shuf->isReverse()) {