Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:Op1

101   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
103 if (Value *V = SimplifyMulInst(Op0, Op1, TD))
109 if (match(Op1, m_AllOnes())) // X * -1 == 0 - X
112 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
164 if (isa<Constant>(Op1)) {
176 if (Value *Op1v = dyn_castNegVal(Op1))
182 Value *Op1C = Op1;
188 BO = dyn_cast<BinaryOperator>(Op1);
220 return BinaryOperator::CreateAnd(Op0, Op1);
227 return BinaryOperator::CreateShl(Op1, Y);
228 if (match(Op1, m_Shl(m_One(), m_Value(Y))))
241 BoolCast = Op0, OtherOp = Op1;
242 else if (MaskedValueIsZero(Op1, Negative2))
243 BoolCast = Op1, OtherOp = Op0;
257 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
260 if (Constant *Op1C = dyn_cast<Constant>(Op1)) {
284 if (Value *Op1v = dyn_castFNegVal(Op1))
367 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
377 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))
380 if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) {
408 if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) { // (X - Z) / Y; Y = Op1
410 if ((isSigned && match(Z, m_SRem(m_Specific(X), m_Specific(Op1)))) ||
411 (!isSigned && match(Z, m_URem(m_Specific(X), m_Specific(Op1)))))
412 return BinaryOperator::Create(I.getOpcode(), X, Op1);
432 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
434 if (Value *V = SimplifyUDivInst(Op0, Op1, TD))
446 if (match(Op1, m_Power2(C))) {
456 if (ConstantInt *C = dyn_cast<ConstantInt>(Op1)) {
466 if (ConstantInt *C2 = dyn_cast<ConstantInt>(Op1)) {
477 if (match(Op1, m_Shl(m_Power2(CI), m_Value(N))) ||
478 match(Op1, m_ZExt(m_Shl(m_Power2(CI), m_Value(N))))) {
481 if (ZExtInst *Z = dyn_cast<ZExtInst>(Op1))
492 if (match(Op1, m_Select(m_Value(Cond), m_Power2(C1), m_Power2(C2)))) {
494 Value *TSI = Builder->CreateLShr(Op0, C1->logBase2(), Op1->getName()+".t",
498 Value *FSI = Builder->CreateLShr(Op0, C2->logBase2(), Op1->getName()+".f",
508 if (Value *ZOp1 = dyn_castZExtVal(Op1, ZOp0->getSrcTy()))
517 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
519 if (Value *V = SimplifySDivInst(Op0, Op1, TD))
526 if (ConstantInt *RHS = dyn_cast<ConstantInt>(Op1)) {
551 if (MaskedValueIsZero(Op1, Mask)) {
553 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
556 if (match(Op1, m_Shl(m_Power2(), m_Value()))) {
561 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
570 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
572 if (Value *V = SimplifyFDivInst(Op0, Op1, TD))
575 if (ConstantFP *Op1C = dyn_cast<ConstantFP>(Op1)) {
595 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
604 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))
607 if (isa<ConstantInt>(Op1)) {
627 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
629 if (Value *V = SimplifyURemInst(Op0, Op1, TD))
637 if (match(Op1, m_Power2(C)))
643 if (match(Op1, m_Shl(m_Power2(), m_Value()))) {
645 Value *Add = Builder->CreateAdd(Op1, N1);
653 if (match(Op1, m_Select(m_Value(Cond), m_Power2(C1), m_Power2(C2)))) {
654 Value *TrueAnd = Builder->CreateAnd(Op0, *C1-1, Op1->getName()+".t");
655 Value *FalseAnd = Builder->CreateAnd(Op0, *C2-1, Op1->getName()+".f");
662 if (Value *ZOp1 = dyn_castZExtVal(Op1, ZOp0->getSrcTy()))
670 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
672 if (Value *V = SimplifySRemInst(Op0, Op1, TD))
679 if (Value *RHSNeg = dyn_castNegVal(Op1))
693 if (MaskedValueIsZero(Op1, Mask) && MaskedValueIsZero(Op0, Mask)) {
695 return BinaryOperator::CreateURem(Op0, Op1, I.getName());
700 if (isa<ConstantVector>(Op1) || isa<ConstantDataVector>(Op1)) {
701 Constant *C = cast<Constant>(Op1);
741 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
743 if (Value *V = SimplifyFRemInst(Op0, Op1, TD))
747 if (isa<SelectInst>(Op1) && SimplifyDivRemOfSelect(I))