Lines Matching refs:SVI

514     } else if (auto *SVI = dyn_cast<ShuffleVectorInst>(I)) {  in visitExtractElementInst()  local
518 if (isa<FixedVectorType>(SVI->getType()) && isa<ConstantInt>(Index)) { in visitExtractElementInst()
520 SVI->getMaskValue(cast<ConstantInt>(Index)->getZExtValue()); in visitExtractElementInst()
522 unsigned LHSWidth = cast<FixedVectorType>(SVI->getOperand(0)->getType()) in visitExtractElementInst()
528 Src = SVI->getOperand(0); in visitExtractElementInst()
531 Src = SVI->getOperand(1); in visitExtractElementInst()
1898 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI, in isShuffleExtractingFromLHS() argument
1901 cast<FixedVectorType>(SVI.getOperand(0)->getType())->getNumElements(); in isShuffleExtractingFromLHS()
2544 Instruction *InstCombinerImpl::visitShuffleVectorInst(ShuffleVectorInst &SVI) { in visitShuffleVectorInst() argument
2545 Value *LHS = SVI.getOperand(0); in visitShuffleVectorInst()
2546 Value *RHS = SVI.getOperand(1); in visitShuffleVectorInst()
2547 SimplifyQuery ShufQuery = SQ.getWithInstruction(&SVI); in visitShuffleVectorInst()
2548 if (auto *V = simplifyShuffleVectorInst(LHS, RHS, SVI.getShuffleMask(), in visitShuffleVectorInst()
2549 SVI.getType(), ShufQuery)) in visitShuffleVectorInst()
2550 return replaceInstUsesWith(SVI, V); in visitShuffleVectorInst()
2556 unsigned VWidth = cast<FixedVectorType>(SVI.getType())->getNumElements(); in visitShuffleVectorInst()
2570 SVI.getType()->getScalarSizeInBits() && in visitShuffleVectorInst()
2572 Value *V = Builder.CreateShuffleVector(X, Y, SVI.getShuffleMask(), in visitShuffleVectorInst()
2573 SVI.getName() + ".uncasted"); in visitShuffleVectorInst()
2574 return new BitCastInst(V, SVI.getType()); in visitShuffleVectorInst()
2577 ArrayRef<int> Mask = SVI.getShuffleMask(); in visitShuffleVectorInst()
2578 Type *Int32Ty = Type::getInt32Ty(SVI.getContext()); in visitShuffleVectorInst()
2605 return BitCastInst::Create(Instruction::BitCast, V, SVI.getType()); in visitShuffleVectorInst()
2618 SVI.commute(); in visitShuffleVectorInst()
2619 return &SVI; in visitShuffleVectorInst()
2622 if (Instruction *I = canonicalizeInsertSplat(SVI, Builder)) in visitShuffleVectorInst()
2625 if (Instruction *I = foldSelectShuffle(SVI)) in visitShuffleVectorInst()
2628 if (Instruction *I = foldTruncShuffle(SVI, DL.isBigEndian())) in visitShuffleVectorInst()
2631 if (Instruction *I = narrowVectorSelect(SVI, Builder)) in visitShuffleVectorInst()
2634 if (Instruction *I = foldFNegShuffle(SVI, Builder)) in visitShuffleVectorInst()
2637 if (Instruction *I = foldCastShuffle(SVI, Builder)) in visitShuffleVectorInst()
2642 if (Value *V = SimplifyDemandedVectorElts(&SVI, AllOnesEltMask, UndefElts)) { in visitShuffleVectorInst()
2643 if (V != &SVI) in visitShuffleVectorInst()
2644 return replaceInstUsesWith(SVI, V); in visitShuffleVectorInst()
2645 return &SVI; in visitShuffleVectorInst()
2648 if (Instruction *I = foldIdentityExtractShuffle(SVI)) in visitShuffleVectorInst()
2653 if (Instruction *I = foldShuffleWithInsert(SVI, *this)) in visitShuffleVectorInst()
2655 if (Instruction *I = foldIdentityPaddedShuffles(SVI)) in visitShuffleVectorInst()
2660 return replaceInstUsesWith(SVI, V); in visitShuffleVectorInst()
2693 if (isShuffleExtractingFromLHS(SVI, Mask)) { in visitShuffleVectorInst()
2703 for (User *U : SVI.users()) in visitShuffleVectorInst()
2729 SVI.getName() + ".extract"); in visitShuffleVectorInst()
2739 : Builder.CreateBitCast(V, CastSrcTy, SVI.getName() + ".bc"); in visitShuffleVectorInst()
2743 NewBC, ConstantInt::get(Int32Ty, BegIdx), SVI.getName() + ".extract"); in visitShuffleVectorInst()
2803 return MadeChange ? &SVI : nullptr; in visitShuffleVectorInst()
2843 return MadeChange ? &SVI : nullptr; in visitShuffleVectorInst()
2925 return MadeChange ? &SVI : nullptr; in visitShuffleVectorInst()