• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/InstCombine/

Lines Matching defs:InsElt

532 static void replaceExtractElements(InsertElementInst *InsElt,
535 VectorType *InsVecType = InsElt->getType();
570 if (InsertionBlock != InsElt->getParent())
578 if (InsElt->hasOneUse() && isa<InsertElementInst>(InsElt->user_back()))
758 static Instruction *foldInsSequenceIntoSplat(InsertElementInst &InsElt) {
761 if (InsElt.hasOneUse() && isa<InsertElementInst>(InsElt.user_back()))
764 VectorType *VecTy = InsElt.getType();
776 Value *SplatVal = InsElt.getOperand(1);
777 InsertElementInst *CurrIE = &InsElt;
792 if (CurrIE != &InsElt &&
802 if (FirstIE == &InsElt)
814 Type *Int32Ty = Type::getInt32Ty(InsElt.getContext());
818 FirstIE = InsertElementInst::Create(UndefVec, SplatVal, Zero, "", &InsElt);
831 static Instruction *foldInsEltIntoSplat(InsertElementInst &InsElt) {
833 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0));
844 if (!match(InsElt.getOperand(2), m_ConstantInt(IdxC)))
848 Value *X = InsElt.getOperand(1);
867 static Instruction *foldInsEltIntoIdentityShuffle(InsertElementInst &InsElt) {
869 auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0));
881 if (!match(InsElt.getOperand(2), m_ConstantInt(IdxC)))
886 Value *Scalar = InsElt.getOperand(1);
948 static Instruction *foldConstantInsEltIntoShuffle(InsertElementInst &InsElt) {
949 auto *Inst = dyn_cast<Instruction>(InsElt.getOperand(0));
954 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(InsElt.getOperand(0))) {
960 !match(InsElt.getOperand(1), m_Constant(InsEltScalar)) ||
961 !match(InsElt.getOperand(2), m_ConstantInt(InsEltIndex)))
1004 if (isa<ScalableVectorType>(InsElt.getType()))
1007 cast<FixedVectorType>(InsElt.getType())->getNumElements();
1011 if (!match(InsElt.getOperand(2), m_ConstantInt(InsertIdx[0])) ||
1012 !match(InsElt.getOperand(1), m_Constant(Val[0])) ||
1032 Values[I] = UndefValue::get(InsElt.getType()->getElementType());