Lines Matching refs:Src

155   Value *Src = CI.getOperand(0);  in commonCastTransforms()  local
158 if (auto *SrcC = dyn_cast<Constant>(Src)) in commonCastTransforms()
163 if (auto *CSrc = dyn_cast<CastInst>(Src)) { // A->B->C cast in commonCastTransforms()
175 if (auto *Sel = dyn_cast<SelectInst>(Src)) { in commonCastTransforms()
193 if (auto *PN = dyn_cast<PHINode>(Src)) { in commonCastTransforms()
196 if (!Src->getType()->isIntegerTy() || !CI.getType()->isIntegerTy() || in commonCastTransforms()
208 if (match(Src, m_OneUse(m_Shuffle(m_Value(X), m_Undef(), m_Mask(Mask))))) { in commonCastTransforms()
673 Value *Src = Trunc.getOperand(0); in visitTrunc() local
674 Type *DestTy = Trunc.getType(), *SrcTy = Src->getType(); in visitTrunc()
683 canEvaluateTruncated(Src, DestTy, *this, &Trunc)) { in visitTrunc()
691 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitTrunc()
704 canEvaluateTruncated(Src, NewDestTy, *this, &Trunc)) { in visitTrunc()
709 Value *Res = EvaluateInDifferentType(Src, NewDestTy, false); in visitTrunc()
720 if (SelectInst *Sel = dyn_cast<SelectInst>(Src)) in visitTrunc()
737 Value *And = Builder.CreateAnd(Src, ConstantInt::get(SrcTy, 1)); in visitTrunc()
745 if (match(Src, m_OneUse(m_LShr(m_Value(X), m_Constant(C))))) { in visitTrunc()
752 if (match(Src, m_OneUse(m_c_Or(m_LShr(m_Value(X), m_ImmConstant(C)), in visitTrunc()
764 if (match(Src, m_LShr(m_SExt(m_Value(A)), m_Constant(C)))) { in visitTrunc()
767 auto *OldSh = cast<Instruction>(Src); in visitTrunc()
792 if (Src->hasOneUse()) { in visitTrunc()
810 if (Src->hasOneUse() && in visitTrunc()
814 if (match(Src, m_Shl(m_Value(A), m_Constant(C))) && in visitTrunc()
840 if (match(Src, m_OneUse(m_ExtractElt(m_Value(VecOp), m_ConstantInt(Cst))))) { in visitTrunc()
862 if (match(Src, m_OneUse(m_Intrinsic<Intrinsic::ctlz>(m_ZExt(m_Value(A)), in visitTrunc()
873 if (match(Src, m_VScale())) { in visitTrunc()
1115 Value *Src = Zext.getOperand(0); in visitZExt() local
1116 Type *SrcTy = Src->getType(), *DestTy = Zext.getType(); in visitZExt()
1121 canEvaluateZExtd(Src, DestTy, BitsToClear, *this, &Zext)) { in visitZExt()
1130 Value *Res = EvaluateInDifferentType(Src, DestTy, false); in visitZExt()
1134 if (auto *SrcOp = dyn_cast<Instruction>(Src)) in visitZExt()
1158 if (auto *CSrc = dyn_cast<TruncInst>(Src)) { // A->B->C cast in visitZExt()
1192 if (auto *Cmp = dyn_cast<ICmpInst>(Src)) in visitZExt()
1198 if (match(Src, m_OneUse(m_And(m_Trunc(m_Value(X)), m_Constant(C)))) && in visitZExt()
1204 if (match(Src, m_OneUse(m_Xor(m_Value(And), m_Constant(C)))) && in visitZExt()
1216 if (match(Src, m_And(m_Trunc(m_Value(X)), m_Constant(C))) && in visitZExt()
1222 if (match(Src, m_VScale())) { in visitZExt()
1228 unsigned TypeWidth = Src->getType()->getScalarSizeInBits(); in visitZExt()
1247 if (isKnownNonNegative(Src, SQ.getWithInstruction(&Zext))) { in visitZExt()
1399 Value *Src = Sext.getOperand(0); in visitSExt() local
1400 Type *SrcTy = Src->getType(), *DestTy = Sext.getType(); in visitSExt()
1405 if (isKnownNonNegative(Src, SQ.getWithInstruction(&Sext))) { in visitSExt()
1406 auto CI = CastInst::Create(Instruction::ZExt, Src, DestTy); in visitSExt()
1412 if (shouldChangeType(SrcTy, DestTy) && canEvaluateSExtd(Src, DestTy)) { in visitSExt()
1418 Value *Res = EvaluateInDifferentType(Src, DestTy, true); in visitSExt()
1433 if (match(Src, m_Trunc(m_Value(X)))) { in visitSExt()
1441 if (Src->hasOneUse() && X->getType() == DestTy) { in visitSExt()
1452 if (Src->hasOneUse() && in visitSExt()
1460 if (auto *Cmp = dyn_cast<ICmpInst>(Src)) in visitSExt()
1479 if (match(Src, m_AShr(m_Shl(m_Trunc(m_Value(A)), m_Constant(BA)), in visitSExt()
1499 if (match(Src, m_OneUse(m_AShr(m_Trunc(m_Value(X)), in visitSExt()
1508 if (cast<BinaryOperator>(Src)->getOperand(0)->hasOneUse()) { in visitSExt()
1514 if (match(Src, m_VScale())) { in visitSExt()
1626 Value *Src = I.getOperand(0); in isKnownExactCastIntToFP() local
1627 Type *SrcTy = Src->getType(); in isKnownExactCastIntToFP()
1641 if (match(Src, m_FPToSI(m_Value(F))) || match(Src, m_FPToUI(m_Value(F)))) { in isKnownExactCastIntToFP()
1645 if (!IsSigned && match(Src, m_FPToSI(m_Value()))) in isKnownExactCastIntToFP()
1659 KnownBits SrcKnown = IC.computeKnownBits(Src, 0, &I); in isKnownExactCastIntToFP()
1812 Value *Src = II->getArgOperand(0); in visitFPTrunc() local
1813 if (!Src->hasOneUse()) in visitFPTrunc()
1820 FPExtInst *FPExtSrc = dyn_cast<FPExtInst>(Src); in visitFPTrunc()
1827 Value *InnerTrunc = Builder.CreateFPTrunc(Src, Ty); in visitFPTrunc()
1843 Value *Src = FPT.getOperand(0); in visitFPTrunc() local
1844 if (isa<SIToFPInst>(Src) || isa<UIToFPInst>(Src)) { in visitFPTrunc()
1845 auto *FPCast = cast<CastInst>(Src); in visitFPTrunc()
1857 Value *Src = FPExt.getOperand(0); in visitFPExt() local
1858 if (isa<SIToFPInst>(Src) || isa<UIToFPInst>(Src)) { in visitFPExt()
1859 auto *FPCast = cast<CastInst>(Src); in visitFPExt()
2417 Value *Src = CI.getOperand(0); in optimizeBitCastFromPhi() local
2418 Type *SrcTy = Src->getType(); // Type B in optimizeBitCastFromPhi()
2582 Value *Src = CI.getOperand(0); in visitBitCast() local
2583 Type *SrcTy = Src->getType(); in visitBitCast()
2588 if (DestTy == Src->getType()) in visitBitCast()
2589 return replaceInstUsesWith(CI, Src); in visitBitCast()
2594 Value *Elem = Builder.CreateBitCast(Src, DestVTy->getElementType()); in visitBitCast()
2603 if (isa<TruncInst>(Src) || isa<ZExtInst>(Src)) { in visitBitCast()
2604 CastInst *SrcCast = cast<CastInst>(Src); in visitBitCast()
2626 Builder.CreateExtractElement(Src, in visitBitCast()
2634 if (auto *InsElt = dyn_cast<InsertElementInst>(Src)) in visitBitCast()
2642 if (match(Src, m_OneUse(m_InsertElt(m_OneUse(m_BitCast(m_Value(X))), in visitBitCast()
2663 if (auto *Shuf = dyn_cast<ShuffleVectorInst>(Src)) { in visitBitCast()
2714 if (PHINode *PN = dyn_cast<PHINode>(Src)) in visitBitCast()