Lines Matching refs:Op0
121 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitMul() local
126 if (Value *V = SimplifyMulInst(Op0, Op1, DL)) in visitMul()
133 return BinaryOperator::CreateNeg(Op0, I.getName()); in visitMul()
174 if (Op0->hasOneUse()) { in visitMul()
177 if (match(Op0, m_Sub(m_Value(Y), m_Value(X)))) in visitMul()
179 else if (match(Op0, m_Add(m_Value(Y), m_ConstantInt(C1)))) in visitMul()
193 if (SelectInst *SI = dyn_cast<SelectInst>(Op0)) in visitMul()
197 if (isa<PHINode>(Op0)) in visitMul()
205 if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) { in visitMul()
215 if (Value *Op0v = dyn_castNegVal(Op0)) // -X * -Y = X*Y in visitMul()
223 BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0); in visitMul()
227 Op1C = Op0; in visitMul()
260 return BinaryOperator::CreateAnd(Op0, Op1); in visitMul()
266 if (match(Op0, m_Shl(m_One(), m_Value(Y)))) in visitMul()
269 return BinaryOperator::CreateShl(Op0, Y); in visitMul()
280 if (MaskedValueIsZero(Op0, Negative2)) in visitMul()
281 BoolCast = Op0, OtherOp = Op1; in visitMul()
283 BoolCast = Op1, OtherOp = Op0; in visitMul()
435 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFMul() local
440 if (isa<Constant>(Op0)) in visitFMul()
441 std::swap(Op0, Op1); in visitFMul()
443 if (Value *V = SimplifyFMulInst(Op0, Op1, I.getFastMathFlags(), DL)) in visitFMul()
451 if (SelectInst *SI = dyn_cast<SelectInst>(Op0)) in visitFMul()
455 if (isa<PHINode>(Op0)) in visitFMul()
462 Instruction *RI = BinaryOperator::CreateFSub(NegZero, Op0); in visitFMul()
473 if (isFMulOrFDivWithConstant(Op0)) in visitFMul()
474 if (Value *V = foldFMulConst(cast<Instruction>(Op0), C, &I)) in visitFMul()
478 Instruction *FAddSub = dyn_cast<Instruction>(Op0); in visitFMul()
520 detectLog2OfHalf(Op0, OpY, Log2); in visitFMul()
526 OpX = Op0; in visitFMul()
542 Value *Opnd0 = Op0; in visitFMul()
601 Value *LHS = Op0, *RHS = Op1; in visitFMul()
616 Value *LHS = Op0, *RHS = Op1; in visitFMul()
714 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in commonIDivTransforms() local
729 if (Instruction *LHS = dyn_cast<Instruction>(Op0)) in commonIDivTransforms()
740 if (SelectInst *SI = dyn_cast<SelectInst>(Op0)) in commonIDivTransforms()
743 if (isa<PHINode>(Op0)) in commonIDivTransforms()
749 if (ConstantInt *One = dyn_cast<ConstantInt>(Op0)) { in commonIDivTransforms()
774 if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) { // (X - Z) / Y; Y = Op1 in commonIDivTransforms()
799 typedef Instruction *(*FoldUDivOperandCb)(Value *Op0, Value *Op1,
826 static Instruction *foldUDivPow2Cst(Value *Op0, Value *Op1, in foldUDivPow2Cst() argument
830 Op0, ConstantInt::get(Op0->getType(), C.logBase2())); in foldUDivPow2Cst()
836 static Instruction *foldUDivNegCst(Value *Op0, Value *Op1, in foldUDivNegCst() argument
838 Value *ICI = IC.Builder->CreateICmpULT(Op0, cast<ConstantInt>(Op1)); in foldUDivNegCst()
845 static Instruction *foldUDivShl(Value *Op0, Value *Op1, const BinaryOperator &I, in foldUDivShl() argument
858 BinaryOperator *LShr = BinaryOperator::CreateLShr(Op0, N); in foldUDivShl()
867 static size_t visitUDivOperand(Value *Op0, Value *Op1, const BinaryOperator &I, in visitUDivOperand() argument
896 if (size_t LHSIdx = visitUDivOperand(Op0, SI->getOperand(1), I, Actions)) in visitUDivOperand()
897 if (visitUDivOperand(Op0, SI->getOperand(2), I, Actions)) { in visitUDivOperand()
907 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitUDiv() local
912 if (Value *V = SimplifyUDivInst(Op0, Op1, DL)) in visitUDiv()
923 if (match(Op0, m_LShr(m_Value(X), m_Constant(C1)))) in visitUDiv()
928 if (ZExtInst *ZOp0 = dyn_cast<ZExtInst>(Op0)) in visitUDiv()
936 if (visitUDivOperand(Op0, Op1, I, UDivActions)) in visitUDiv()
942 Inst = Action(Op0, ActionOp1, I, *this); in visitUDiv()
969 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitSDiv() local
974 if (Value *V = SimplifySDivInst(Op0, Op1, DL)) in visitSDiv()
983 return BinaryOperator::CreateNeg(Op0); in visitSDiv()
991 return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName()); in visitSDiv()
998 return new ZExtInst(Builder->CreateICmpEQ(Op0, Op1), I.getType()); in visitSDiv()
1001 if (SubOperator *Sub = dyn_cast<SubOperator>(Op0)) in visitSDiv()
1011 if (MaskedValueIsZero(Op0, Mask)) { in visitSDiv()
1014 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1022 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1062 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFDiv() local
1067 if (Value *V = SimplifyFDivInst(Op0, Op1, DL)) in visitFDiv()
1070 if (isa<Constant>(Op0)) in visitFDiv()
1079 if (SelectInst *SI = dyn_cast<SelectInst>(Op0)) in visitFDiv()
1089 if (match(Op0, m_FMul(m_Value(X), m_Constant(C1)))) { in visitFDiv()
1095 } else if (match(Op0, m_FDiv(m_Value(X), m_Constant(C1)))) { in visitFDiv()
1113 if (Instruction *T = CvtFDivConstToReciprocal(Op0, Op1C, AllowReciprocal)) { in visitFDiv()
1121 if (AllowReassociate && isa<Constant>(Op0)) { in visitFDiv()
1122 Constant *C1 = cast<Constant>(Op0), *C2; in visitFDiv()
1153 if (Op0->hasOneUse() && match(Op0, m_FDiv(m_Value(X), m_Value(Y)))) { in visitFDiv()
1160 Flags &= cast<Instruction>(Op0)->getFastMathFlags(); in visitFDiv()
1168 if (!isa<Constant>(Y) || !isa<Constant>(Op0)) { in visitFDiv()
1169 NewInst = Builder->CreateFMul(Op0, Y); in visitFDiv()
1195 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in commonIRemTransforms() local
1208 if (Instruction *Op0I = dyn_cast<Instruction>(Op0)) { in commonIRemTransforms()
1227 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitURem() local
1232 if (Value *V = SimplifyURemInst(Op0, Op1, DL)) in visitURem()
1239 if (ZExtInst *ZOp0 = dyn_cast<ZExtInst>(Op0)) in visitURem()
1248 return BinaryOperator::CreateAnd(Op0, Add); in visitURem()
1252 if (match(Op0, m_One())) { in visitURem()
1253 Value *Cmp = Builder->CreateICmpNE(Op1, Op0); in visitURem()
1262 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitSRem() local
1267 if (Value *V = SimplifySRemInst(Op0, Op1, DL)) in visitSRem()
1288 if (MaskedValueIsZero(Op1, Mask) && MaskedValueIsZero(Op0, Mask)) { in visitSRem()
1290 return BinaryOperator::CreateURem(Op0, Op1, I.getName()); in visitSRem()
1336 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFRem() local
1341 if (Value *V = SimplifyFRemInst(Op0, Op1, DL)) in visitFRem()