Lines Matching refs:Op0

119   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
121 if (Value *V = SimplifyMulInst(Op0, Op1, TD))
128 return BinaryOperator::CreateNeg(Op0, I.getName());
163 if (Op0->hasOneUse() &&
164 match(Op0, m_Add(m_Value(X), m_ConstantInt(C1)))) {
178 if (Op0->hasOneUse()) {
181 if (match(Op0, m_Sub(m_Value(Y), m_Value(X))))
183 else if (match(Op0, m_Add(m_Value(Y), m_ConstantInt(C1))))
197 if (SelectInst *SI = dyn_cast<SelectInst>(Op0))
201 if (isa<PHINode>(Op0))
206 if (Value *Op0v = dyn_castNegVal(Op0)) // -X * -Y = X*Y
214 BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0);
218 Op1C = Op0;
251 return BinaryOperator::CreateAnd(Op0, Op1);
257 if (match(Op0, m_Shl(m_One(), m_Value(Y))))
260 return BinaryOperator::CreateShl(Op0, Y);
271 if (MaskedValueIsZero(Op0, Negative2))
272 BoolCast = Op0, OtherOp = Op1;
274 BoolCast = Op1, OtherOp = Op0;
407 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
409 if (isa<Constant>(Op0))
410 std::swap(Op0, Op1);
412 if (Value *V = SimplifyFMulInst(Op0, Op1, I.getFastMathFlags(), TD))
420 if (SelectInst *SI = dyn_cast<SelectInst>(Op0))
424 if (isa<PHINode>(Op0))
434 if (isFMulOrFDivWithConstant(Op0)) {
435 Value *V = foldFMulConst(cast<Instruction>(Op0), C, &I);
441 Instruction *FAddSub = dyn_cast<Instruction>(Op0);
484 detectLog2OfHalf(Op0, OpY, Log2);
490 OpX = Op0;
506 Value *Opnd0 = Op0;
562 Value *LHS = Op0, *RHS = Op1;
576 Value *LHS = Op0, *RHS = Op1;
674 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
689 if (Instruction *LHS = dyn_cast<Instruction>(Op0))
700 if (SelectInst *SI = dyn_cast<SelectInst>(Op0))
703 if (isa<PHINode>(Op0))
715 if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) { // (X - Z) / Y; Y = Op1
740 typedef Instruction *(*FoldUDivOperandCb)(Value *Op0, Value *Op1,
767 static Instruction *foldUDivPow2Cst(Value *Op0, Value *Op1,
771 Op0, ConstantInt::get(Op0->getType(), C.logBase2()));
777 static Instruction *foldUDivNegCst(Value *Op0, Value *Op1,
779 Value *ICI = IC.Builder->CreateICmpULT(Op0, cast<ConstantInt>(Op1));
786 static Instruction *foldUDivShl(Value *Op0, Value *Op1, const BinaryOperator &I,
799 BinaryOperator *LShr = BinaryOperator::CreateLShr(Op0, N);
808 static size_t visitUDivOperand(Value *Op0, Value *Op1, const BinaryOperator &I,
837 if (size_t LHSIdx = visitUDivOperand(Op0, SI->getOperand(1), I, Actions))
838 if (visitUDivOperand(Op0, SI->getOperand(2), I, Actions)) {
847 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
849 if (Value *V = SimplifyUDivInst(Op0, Op1, TD))
860 if (match(Op0, m_LShr(m_Value(X), m_ConstantInt(C1)))) {
867 if (ZExtInst *ZOp0 = dyn_cast<ZExtInst>(Op0))
875 if (visitUDivOperand(Op0, Op1, I, UDivActions))
881 Inst = Action(Op0, ActionOp1, I, *this);
908 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
910 if (Value *V = SimplifySDivInst(Op0, Op1, TD))
920 return BinaryOperator::CreateNeg(Op0);
927 return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName());
931 if (SubOperator *Sub = dyn_cast<SubOperator>(Op0))
941 if (MaskedValueIsZero(Op0, Mask)) {
944 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
952 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
989 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
991 if (Value *V = SimplifyFDivInst(Op0, Op1, TD))
994 if (isa<Constant>(Op0))
1003 if (SelectInst *SI = dyn_cast<SelectInst>(Op0))
1013 if (match(Op0, m_FMul(m_Value(X), m_ConstantFP(C1)))) {
1020 } else if (match(Op0, m_FDiv(m_Value(X), m_ConstantFP(C1)))) {
1040 if (Instruction *T = CvtFDivConstToReciprocal(Op0, Op1C, AllowReciprocal))
1046 if (AllowReassociate && isa<ConstantFP>(Op0)) {
1047 ConstantFP *C1 = cast<ConstantFP>(Op0), *C2;
1082 if (Op0->hasOneUse() && match(Op0, m_FDiv(m_Value(X), m_Value(Y)))) {
1092 if (!isa<ConstantFP>(Y) || !isa<ConstantFP>(Op0)) {
1093 NewInst = Builder->CreateFMul(Op0, Y);
1114 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1127 if (Instruction *Op0I = dyn_cast<Instruction>(Op0)) {
1146 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1148 if (Value *V = SimplifyURemInst(Op0, Op1, TD))
1155 if (ZExtInst *ZOp0 = dyn_cast<ZExtInst>(Op0))
1164 return BinaryOperator::CreateAnd(Op0, Add);
1168 if (match(Op0, m_One())) {
1169 Value *Cmp = Builder->CreateICmpNE(Op1, Op0);
1178 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1180 if (Value *V = SimplifySRemInst(Op0, Op1, TD))
1201 if (MaskedValueIsZero(Op1, Mask) && MaskedValueIsZero(Op0, Mask)) {
1203 return BinaryOperator::CreateURem(Op0, Op1, I.getName());
1249 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1251 if (Value *V = SimplifyFRemInst(Op0, Op1, TD))