Lines Matching defs:SVI
237 static bool isReInterleaveMask(ShuffleVectorInst *SVI, unsigned &Factor,
239 unsigned NumElts = SVI->getShuffleMask().size();
245 if (SVI->isInterleave(Factor))
276 auto *SVI = dyn_cast<ShuffleVectorInst>(U);
277 return SVI && isa<UndefValue>(SVI->getOperand(1));
279 for (auto *SVI : BI->users())
280 BinOpShuffles.insert(cast<ShuffleVectorInst>(SVI));
284 auto *SVI = dyn_cast<ShuffleVectorInst>(User);
285 if (!SVI || !isa<UndefValue>(SVI->getOperand(1)))
288 Shuffles.push_back(SVI);
361 for (auto *SVI : BinOpShuffles) {
362 BinaryOperator *BI = cast<BinaryOperator>(SVI->getOperand(0));
364 ArrayRef<int> Mask = SVI->getShuffleMask();
369 BasicBlock::iterator insertPos = SVI->getIterator();
372 Mask, SVI->getName(), insertPos);
375 SVI->getName(), insertPos);
378 SVI->replaceAllUsesWith(NewBI);
379 LLVM_DEBUG(dbgs() << " Replaced: " << *BI << "\n And : " << *SVI
382 RecursivelyDeleteTriviallyDeadInstructions(SVI);
461 auto *SVI = dyn_cast<ShuffleVectorInst>(SI->getValueOperand());
462 if (!SVI || !SVI->hasOneUse() || isa<ScalableVectorType>(SVI->getType()))
467 if (!isReInterleaveMask(SVI, Factor, MaxFactor))
473 if (!TLI->lowerInterleavedStore(SI, SVI, Factor))
478 DeadInsts.insert(SVI);