Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Op1

100   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
102 if (Value *V = SimplifyMulInst(Op0, Op1, TD))
108 if (match(Op1, m_AllOnes())) // X * -1 == 0 - X
111 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
163 if (isa<Constant>(Op1)) {
175 if (Value *Op1v = dyn_castNegVal(Op1))
181 Value *Op1C = Op1;
187 BO = dyn_cast<BinaryOperator>(Op1);
219 return BinaryOperator::CreateAnd(Op0, Op1);
226 return BinaryOperator::CreateShl(Op1, Y);
227 if (match(Op1, m_Shl(m_One(), m_Value(Y))))
240 BoolCast = Op0, OtherOp = Op1;
241 else if (MaskedValueIsZero(Op1, Negative2))
242 BoolCast = Op1, OtherOp = Op0;
372 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
375 std::swap(Op0, Op1);
377 if (Value *V = SimplifyFMulInst(Op0, Op1, I.getFastMathFlags(), TD))
383 if (isa<Constant>(Op1)) {
393 ConstantFP *C = dyn_cast<ConstantFP>(Op1);
452 OpX = Op1;
454 detectLog2OfHalf(Op1, OpY, Log2);
473 Value *Opnd1 = Op1;
527 if (!isa<Constant>(Op1))
613 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
623 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))
626 if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) {
654 if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) { // (X - Z) / Y; Y = Op1
656 if ((isSigned && match(Z, m_SRem(m_Specific(X), m_Specific(Op1)))) ||
657 (!isSigned && match(Z, m_URem(m_Specific(X), m_Specific(Op1)))))
658 return BinaryOperator::Create(I.getOpcode(), X, Op1);
678 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
680 if (Value *V = SimplifyUDivInst(Op0, Op1, TD))
692 if (match(Op1, m_Power2(C))) {
702 if (ConstantInt *C = dyn_cast<ConstantInt>(Op1)) {
712 if (ConstantInt *C2 = dyn_cast<ConstantInt>(Op1)) {
723 if (match(Op1, m_Shl(m_Power2(CI), m_Value(N))) ||
724 match(Op1, m_ZExt(m_Shl(m_Power2(CI), m_Value(N))))) {
728 if (ZExtInst *Z = dyn_cast<ZExtInst>(Op1))
739 if (match(Op1, m_Select(m_Value(Cond), m_Power2(C1), m_Power2(C2)))) {
741 Value *TSI = Builder->CreateLShr(Op0, C1->logBase2(), Op1->getName()+".t",
745 Value *FSI = Builder->CreateLShr(Op0, C2->logBase2(), Op1->getName()+".f",
755 if (Value *ZOp1 = dyn_castZExtVal(Op1, ZOp0->getSrcTy()))
764 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
766 if (Value *V = SimplifySDivInst(Op0, Op1, TD))
773 if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) {
798 if (MaskedValueIsZero(Op1, Mask)) {
800 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
803 if (match(Op1, m_Shl(m_Power2(), m_Value()))) {
808 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
845 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
847 if (Value *V = SimplifyFDivInst(Op0, Op1, TD))
853 if (ConstantFP *Op1C = dyn_cast<ConstantFP>(Op1)) {
900 if (match(Op1, m_FMul(m_Value(X), m_ConstantFP(C2))))
902 else if (match(Op1, m_FDiv(m_Value(X), m_ConstantFP(C2)))) {
905 } else if (match(Op1, m_FDiv(m_ConstantFP(C2), m_Value(X)))) {
932 if (!isa<ConstantFP>(Y) || !isa<ConstantFP>(Op1)) {
933 NewInst = Builder->CreateFMul(Y, Op1);
936 } else if (Op1->hasOneUse() && match(Op1, m_FDiv(m_Value(X), m_Value(Y)))) {
961 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
970 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))
973 if (isa<ConstantInt>(Op1)) {
993 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
995 if (Value *V = SimplifyURemInst(Op0, Op1, TD))
1003 if (match(Op1, m_Power2(C)))
1009 if (match(Op1, m_Shl(m_Power2(), m_Value()))) {
1011 Value *Add = Builder->CreateAdd(Op1, N1);
1019 if (match(Op1, m_Select(m_Value(Cond), m_Power2(C1), m_Power2(C2)))) {
1020 Value *TrueAnd = Builder->CreateAnd(Op0, *C1-1, Op1->getName()+".t");
1021 Value *FalseAnd = Builder->CreateAnd(Op0, *C2-1, Op1->getName()+".f");
1028 if (Value *ZOp1 = dyn_castZExtVal(Op1, ZOp0->getSrcTy()))
1036 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1038 if (Value *V = SimplifySRemInst(Op0, Op1, TD))
1045 if (Value *RHSNeg = dyn_castNegVal(Op1))
1059 if (MaskedValueIsZero(Op1, Mask) && MaskedValueIsZero(Op0, Mask)) {
1061 return BinaryOperator::CreateURem(Op0, Op1, I.getName());
1066 if (isa<ConstantVector>(Op1) || isa<ConstantDataVector>(Op1)) {
1067 Constant *C = cast<Constant>(Op1);
1107 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
1109 if (Value *V = SimplifyFRemInst(Op0, Op1, TD))
1113 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))