Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Src

283   Value *Src = CI.getOperand(0);
287 if (CastInst *CSrc = dyn_cast<CastInst>(Src)) { // A->B->C cast
297 if (SelectInst *SI = dyn_cast<SelectInst>(Src))
302 if (isa<PHINode>(Src)) {
305 if (!Src->getType()->isIntegerTy() ||
307 ShouldChangeType(CI.getType(), Src->getType()))
436 Value *Src = CI.getOperand(0);
437 Type *DestTy = CI.getType(), *SrcTy = Src->getType();
444 CanEvaluateTruncated(Src, DestTy)) {
450 Value *Res = EvaluateInDifferentType(Src, DestTy, false);
457 Constant *One = ConstantInt::get(Src->getType(), 1);
458 Src = Builder->CreateAnd(Src, One);
459 Value *Zero = Constant::getNullValue(Src->getType());
460 return new ICmpInst(ICmpInst::ICMP_NE, Src, Zero);
465 if (Src->hasOneUse() &&
466 match(Src, m_LShr(m_ZExt(m_Value(A)), m_ConstantInt(Cst)))) {
482 Shift->takeName(Src);
488 if (Src->hasOneUse() && isa<IntegerType>(Src->getType()) &&
489 ShouldChangeType(Src->getType(), CI.getType()) &&
490 match(Src, m_And(m_Value(A), m_ConstantInt(Cst)))) {
755 Value *Src = CI.getOperand(0);
756 Type *SrcTy = Src->getType(), *DestTy = CI.getType();
764 CanEvaluateZExtd(Src, DestTy, BitsToClear)) {
771 Value *Res = EvaluateInDifferentType(Src, DestTy, false);
792 if (TruncInst *CSrc = dyn_cast<TruncInst>(Src)) { // A->B->C cast
826 if (ICmpInst *ICI = dyn_cast<ICmpInst>(Src))
829 BinaryOperator *SrcI = dyn_cast<BinaryOperator>(Src);
1059 Value *Src = CI.getOperand(0);
1060 Type *SrcTy = Src->getType(), *DestTy = CI.getType();
1067 CanEvaluateSExtd(Src, DestTy)) {
1071 Value *Res = EvaluateInDifferentType(Src, DestTy, true);
1090 if (TruncInst *TI = dyn_cast<TruncInst>(Src))
1101 if (ICmpInst *ICI = dyn_cast<ICmpInst>(Src))
1120 if (match(Src, m_AShr(m_Shl(m_Trunc(m_Value(A)), m_ConstantInt(BA)),
1123 unsigned MidSize = Src->getType()->getScalarSizeInBits();
1324 Value *Src = CI.getOperand(0);
1326 if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Src)) {
1595 Value *Src = CI.getOperand(0);
1602 if (match(Src, m_Trunc(m_BitCast(m_Value(VecInput)))) &&
1622 if (match(Src, m_Trunc(m_LShr(m_BitCast(m_Value(VecInput)),
1647 Value *Src = CI.getOperand(0);
1648 Type *SrcTy = Src->getType();
1653 if (DestTy == Src->getType())
1654 return ReplaceInstUsesWith(CI, Src);
1670 if (AllocaInst *AI = dyn_cast<AllocaInst>(Src))
1687 // If we found a path from the src to dest, create the getelementptr now.
1690 return GetElementPtrInst::CreateInBounds(Src, Idxs);
1701 Value *Elem = Builder->CreateBitCast(Src, DestVTy->getElementType());
1711 if (isa<TruncInst>(Src) || isa<ZExtInst>(Src)) {
1712 CastInst *SrcCast = cast<CastInst>(Src);
1731 Builder->CreateExtractElement(Src,
1737 if (ShuffleVectorInst *SVI = dyn_cast<ShuffleVectorInst>(Src)) {