Lines Matching refs:SVI
259 static bool isReInterleaveMask(ShuffleVectorInst *SVI, unsigned &Factor, in isReInterleaveMask() argument
261 unsigned NumElts = SVI->getShuffleMask().size(); in isReInterleaveMask()
267 if (SVI->isInterleave(Factor)) in isReInterleaveMask()
298 auto *SVI = dyn_cast<ShuffleVectorInst>(U); in lowerInterleavedLoad() local
299 return SVI && isa<UndefValue>(SVI->getOperand(1)); in lowerInterleavedLoad()
301 for (auto *SVI : BI->users()) in lowerInterleavedLoad() local
302 BinOpShuffles.insert(cast<ShuffleVectorInst>(SVI)); in lowerInterleavedLoad()
306 auto *SVI = dyn_cast<ShuffleVectorInst>(User); in lowerInterleavedLoad() local
307 if (!SVI || !isa<UndefValue>(SVI->getOperand(1))) in lowerInterleavedLoad()
310 Shuffles.push_back(SVI); in lowerInterleavedLoad()
383 for (auto *SVI : BinOpShuffles) { in replaceBinOpShuffles() local
384 BinaryOperator *BI = cast<BinaryOperator>(SVI->getOperand(0)); in replaceBinOpShuffles()
386 ArrayRef<int> Mask = SVI->getShuffleMask(); in replaceBinOpShuffles()
393 Mask, SVI->getName(), SVI); in replaceBinOpShuffles()
396 SVI->getName(), SVI); in replaceBinOpShuffles()
398 BI->getOpcode(), NewSVI1, NewSVI2, BI, BI->getName(), SVI); in replaceBinOpShuffles()
399 SVI->replaceAllUsesWith(NewBI); in replaceBinOpShuffles()
400 LLVM_DEBUG(dbgs() << " Replaced: " << *BI << "\n And : " << *SVI in replaceBinOpShuffles()
403 RecursivelyDeleteTriviallyDeadInstructions(SVI); in replaceBinOpShuffles()
482 auto *SVI = dyn_cast<ShuffleVectorInst>(SI->getValueOperand()); in lowerInterleavedStore() local
483 if (!SVI || !SVI->hasOneUse() || isa<ScalableVectorType>(SVI->getType())) in lowerInterleavedStore()
488 if (!isReInterleaveMask(SVI, Factor, MaxFactor)) in lowerInterleavedStore()
494 if (!TLI->lowerInterleavedStore(SI, SVI, Factor)) in lowerInterleavedStore()
499 DeadInsts.push_back(SVI); in lowerInterleavedStore()