Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:SVI

251     } else if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(I)) {
255 int SrcIdx = SVI->getMaskValue(Elt->getZExtValue());
258 SVI->getOperand(0)->getType()->getVectorNumElements();
263 Src = SVI->getOperand(0);
266 Src = SVI->getOperand(1);
1129 static bool isShuffleExtractingFromLHS(ShuffleVectorInst &SVI,
1131 unsigned LHSElems = SVI.getOperand(0)->getType()->getVectorNumElements();
1353 Instruction *InstCombiner::visitShuffleVectorInst(ShuffleVectorInst &SVI) {
1354 Value *LHS = SVI.getOperand(0);
1355 Value *RHS = SVI.getOperand(1);
1356 SmallVector<int, 16> Mask = SVI.getShuffleMask();
1357 Type *Int32Ty = Type::getInt32Ty(SVI.getContext());
1360 LHS, RHS, SVI.getMask(), SVI.getType(), SQ.getWithInstruction(&SVI)))
1361 return replaceInstUsesWith(SVI, V);
1363 if (Instruction *I = foldSelectShuffle(SVI, Builder, DL))
1367 unsigned VWidth = SVI.getType()->getVectorNumElements();
1371 if (Value *V = SimplifyDemandedVectorElts(&SVI, AllOnesEltMask, UndefElts)) {
1372 if (V != &SVI)
1373 return replaceInstUsesWith(SVI, V);
1374 return &SVI;
1385 ? LHS : UndefValue::get(SVI.getType());
1386 return replaceInstUsesWith(SVI, Result);
1406 SVI.setOperand(0, SVI.getOperand(1));
1407 SVI.setOperand(1, UndefValue::get(RHS->getType()));
1408 SVI.setOperand(2, ConstantVector::get(Elts));
1409 LHS = SVI.getOperand(0);
1410 RHS = SVI.getOperand(1);
1420 if (isLHSID) return replaceInstUsesWith(SVI, LHS);
1421 if (isRHSID) return replaceInstUsesWith(SVI, RHS);
1426 return replaceInstUsesWith(SVI, V);
1458 if (isShuffleExtractingFromLHS(SVI, Mask)) {
1468 for (User *U : SVI.users())
1496 SVI.getName() + ".extract");
1506 : Builder.CreateBitCast(V, CastSrcTy, SVI.getName() + ".bc");
1510 NewBC, ConstantInt::get(Int32Ty, BegIdx), SVI.getName() + ".extract");
1570 return MadeChange ? &SVI : nullptr;
1610 return MadeChange ? &SVI : nullptr;
1704 if (isLHSID && VWidth == LHSOp0Width) return replaceInstUsesWith(SVI, newLHS);
1705 if (isRHSID && VWidth == RHSOp0Width) return replaceInstUsesWith(SVI, newRHS);
1707 return MadeChange ? &SVI : nullptr;