Lines Matching refs:Op0
374 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in commonShiftTransforms() local
375 assert(Op0->getType() == Op1->getType()); in commonShiftTransforms()
382 return BinaryOperator::Create(I.getOpcode(), Op0, NewExt); in commonShiftTransforms()
390 if (isa<Constant>(Op0)) in commonShiftTransforms()
396 if (Instruction *Res = FoldShiftByConstant(Op0, CUI, I)) in commonShiftTransforms()
407 if (match(Op0, m_Constant(C)) && in commonShiftTransforms()
421 if (match(Op0, m_APInt(AC)) && match(Op1, m_Add(m_Value(A), m_APInt(AddC))) && in commonShiftTransforms()
723 Instruction *InstCombinerImpl::FoldShiftByConstant(Value *Op0, Constant *C1, in FoldShiftByConstant() argument
729 if (match(Op0, m_BinOp(I.getOpcode(), m_Constant(C2), m_Value(X)))) in FoldShiftByConstant()
741 canEvaluateShifted(Op0, Op1C->getZExtValue(), IsLeftShift, *this, &I)) { in FoldShiftByConstant()
745 << *Op0 << "\n SH: " << I << "\n"); in FoldShiftByConstant()
748 I, getShiftedValue(Op0, Op1C->getZExtValue(), IsLeftShift, *this, DL)); in FoldShiftByConstant()
762 if (!Op0->hasOneUse()) in FoldShiftByConstant()
765 if (auto *Op0BO = dyn_cast<BinaryOperator>(Op0)) { in FoldShiftByConstant()
794 if (match(Op0, m_Select(m_Value(Cond), m_OneUse(m_BinOp(TBO)), in FoldShiftByConstant()
811 if (match(Op0, m_Select(m_Value(Cond), m_Value(TrueVal), in FoldShiftByConstant()
845 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitShl() local
856 if (match(Op0, m_OneUse(m_ZExt(m_Value(X))))) { in visitShl()
864 if (match(Op0, m_Shr(m_Value(X), m_Specific(Op1)))) { in visitShl()
870 if (match(Op0, m_Exact(m_Shr(m_Value(X), m_APInt(C1)))) && in visitShl()
885 cast<BinaryOperator>(Op0)->getOpcode(), X, ShiftDiff); in visitShl()
891 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_APInt(C1)))) && in visitShl()
907 auto *OldShr = cast<BinaryOperator>(Op0); in visitShl()
919 if (match(Op0, m_OneUse(m_Trunc(m_OneUse(m_BinOp(Shr))))) && in visitShl()
937 if (match(Op0, m_Shl(m_Value(X), m_APInt(C1))) && C1->ult(BitWidth)) { in visitShl()
962 if (match(Op0, m_OneUse(m_BinOp(Op0BO))) && in visitShl()
1004 if (match(Op0, m_OneUse(m_Sub(m_APInt(C1), m_Value(X))))) { in visitShl()
1012 MaskedValueIsZero(Op0, APInt::getHighBitsSet(BitWidth, ShAmtC), 0, in visitShl()
1019 if (!I.hasNoSignedWrap() && ComputeNumSignBits(Op0, 0, &I) > ShAmtC) { in visitShl()
1028 if (match(Op0, m_OneUse(m_Shr(m_Value(X), m_Specific(Op1))))) { in visitShl()
1039 if (match(Op0, m_Mul(m_Value(X), m_Constant(C2)))) in visitShl()
1043 if (match(Op0, m_ZExt(m_Value(X))) && X->getType()->isIntOrIntVectorTy(1)) { in visitShl()
1050 if (match(Op0, m_One()) && in visitShl()
1069 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitLShr() local
1075 auto *II = dyn_cast<IntrinsicInst>(Op0); in visitLShr()
1091 if (match(Op0, m_Shl(m_Value(X), m_APInt(C1))) && C1->ult(BitWidth)) { in visitLShr()
1095 if (cast<BinaryOperator>(Op0)->hasNoUnsignedWrap()) { in visitLShr()
1101 if (Op0->hasOneUse()) { in visitLShr()
1110 if (cast<BinaryOperator>(Op0)->hasNoUnsignedWrap()) { in visitLShr()
1116 if (Op0->hasOneUse()) { in visitLShr()
1134 if (match(Op0, in visitLShr()
1145 if (match(Op0, m_OneUse(m_ZExt(m_Value(X)))) && in visitLShr()
1154 if (match(Op0, m_SExt(m_Value(X)))) { in visitLShr()
1164 Op0->hasOneUse()) { in visitLShr()
1184 if (match(Op0, m_OneUse(m_c_Or(m_Neg(m_Value(X)), m_Deferred(X))))) in visitLShr()
1188 if (match(Op0, m_OneUse(m_NSWSub(m_Value(X), m_Value(Y))))) in visitLShr()
1193 if (match(Op0, m_OneUse(m_SRem(m_Value(X), m_SpecificInt(2))))) { in visitLShr()
1200 if (match(Op0, m_LShr(m_Value(X), m_APInt(C1)))) { in visitLShr()
1208 if (match(Op0, m_OneUse(m_Trunc(m_Instruction(TruncSrc)))) && in visitLShr()
1231 if (match(Op0, m_NUWMul(m_Value(X), m_APInt(MulC)))) { in visitLShr()
1243 if (Op0->hasOneUse()) { in visitLShr()
1250 BinaryOperator *OrigMul = cast<BinaryOperator>(Op0); in visitLShr()
1260 if (match(Op0, m_OneUse(m_Intrinsic<Intrinsic::bswap>( in visitLShr()
1281 MaskedValueIsZero(Op0, APInt::getLowBitsSet(BitWidth, ShAmtC), 0, &I)) { in visitLShr()
1289 if (match(Op0, m_OneUse(m_Shl(m_Value(X), m_Specific(Op1))))) { in visitLShr()
1378 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitAShr() local
1389 if (match(Op0, m_Shl(m_ZExt(m_Value(X)), m_Specific(Op1))) && in visitAShr()
1396 if (match(Op0, m_NSWShl(m_Value(X), m_APInt(ShOp1))) && in visitAShr()
1415 if (match(Op0, m_AShr(m_Value(X), m_APInt(ShOp1))) && in visitAShr()
1424 if (match(Op0, m_OneUse(m_SExt(m_Value(X)))) && in visitAShr()
1435 if (match(Op0, m_OneUse(m_c_Or(m_Neg(m_Value(X)), m_Deferred(X))))) in visitAShr()
1440 if (match(Op0, m_OneUse(m_NSWSub(m_Value(X), m_Value(Y))))) in visitAShr()
1446 MaskedValueIsZero(Op0, APInt::getLowBitsSet(BitWidth, ShAmt), 0, &I)) { in visitAShr()
1457 match(Op0, m_OneUse(m_Shl(m_Value(X), in visitAShr()
1463 cast<Constant>(cast<Instruction>(Op0)->getOperand(1))); in visitAShr()
1472 if (MaskedValueIsZero(Op0, APInt::getSignMask(BitWidth), 0, &I)) in visitAShr()
1473 return BinaryOperator::CreateLShr(Op0, Op1); in visitAShr()
1476 if (match(Op0, m_OneUse(m_Not(m_Value(X))))) { in visitAShr()
1479 auto *NewAShr = Builder.CreateAShr(X, Op1, Op0->getName() + ".not"); in visitAShr()