Lines Matching refs:Op1

2427                                           const Value * Op1) {  in swapMayExposeCSEOpportunities()  argument
2452 if (BinOp->getOperand(Op1Idx) != Op1) in swapMayExposeCSEOpportunities()
2577 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitICmpInst() local
2579 unsigned Op1Cplxity = getComplexity(Op1); in visitICmpInst()
2586 swapMayExposeCSEOpportunities(Op0, Op1))) { in visitICmpInst()
2588 std::swap(Op0, Op1); in visitICmpInst()
2592 if (Value *V = SimplifyICmpInst(I.getPredicate(), Op0, Op1, DL, TLI, DT, AC)) in visitICmpInst()
2597 if (I.getPredicate() == ICmpInst::ICMP_NE && match(Op1, m_Zero())) in visitICmpInst()
2604 return CmpInst::Create(Instruction::ICmp, I.getPredicate(), V, Op1); in visitICmpInst()
2608 return CmpInst::Create(Instruction::ICmp, I.getPredicate(), V, Op1); in visitICmpInst()
2620 Value *Xor = Builder->CreateXor(Op0, Op1, I.getName()+"tmp"); in visitICmpInst()
2624 return BinaryOperator::CreateXor(Op0, Op1); in visitICmpInst()
2627 std::swap(Op0, Op1); // Change icmp ugt -> icmp ult in visitICmpInst()
2631 return BinaryOperator::CreateAnd(Not, Op1); in visitICmpInst()
2634 std::swap(Op0, Op1); // Change icmp sgt -> icmp slt in visitICmpInst()
2637 Value *Not = Builder->CreateNot(Op1, I.getName()+"tmp"); in visitICmpInst()
2641 std::swap(Op0, Op1); // Change icmp uge -> icmp ule in visitICmpInst()
2645 return BinaryOperator::CreateOr(Not, Op1); in visitICmpInst()
2648 std::swap(Op0, Op1); // Change icmp sge -> icmp sle in visitICmpInst()
2651 Value *Not = Builder->CreateNot(Op1, I.getName()+"tmp"); in visitICmpInst()
2666 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2800 ConstantInt::get(Op0->getType(), Op0Min), Op1); in visitICmpInst()
2801 if (!isa<Constant>(Op1) && Op1Min == Op1Max) in visitICmpInst()
2803 ConstantInt::get(Op1->getType(), Op1Min)); in visitICmpInst()
2905 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2906 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2924 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2925 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2942 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2943 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2956 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2957 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2964 assert(!isa<ConstantInt>(Op1) && "ICMP_SGE with ConstantInt not folded!"); in visitICmpInst()
2971 assert(!isa<ConstantInt>(Op1) && "ICMP_SLE with ConstantInt not folded!"); in visitICmpInst()
2978 assert(!isa<ConstantInt>(Op1) && "ICMP_UGE with ConstantInt not folded!"); in visitICmpInst()
2985 assert(!isa<ConstantInt>(Op1) && "ICMP_ULE with ConstantInt not folded!"); in visitICmpInst()
2998 return new ICmpInst(I.getUnsignedPredicate(), Op0, Op1); in visitICmpInst()
3010 if ((SI->getOperand(1) == Op0 && SI->getOperand(2) == Op1) || in visitICmpInst()
3011 (SI->getOperand(2) == Op0 && SI->getOperand(1) == Op1)) in visitICmpInst()
3016 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
3026 if (Constant *RHSC = dyn_cast<Constant>(Op1)) { in visitICmpInst()
3048 Value *Op1 = nullptr, *Op2 = nullptr; in visitICmpInst() local
3051 Op1 = ConstantExpr::getICmp(I.getPredicate(), C, RHSC); in visitICmpInst()
3052 CI = dyn_cast<ConstantInt>(Op1); in visitICmpInst()
3067 if (Op1 && Op2) in visitICmpInst()
3069 else if (Op1 || Op2) { in visitICmpInst()
3079 Op1 ? 2 : 1); in visitICmpInst()
3082 if (!Op1) in visitICmpInst()
3083 Op1 = Builder->CreateICmp(I.getPredicate(), LHSI->getOperand(1), in visitICmpInst()
3088 return SelectInst::Create(LHSI->getOperand(0), Op1, Op2); in visitICmpInst()
3117 if (Instruction *NI = FoldGEPICmp(GEP, Op1, I.getPredicate(), I)) in visitICmpInst()
3119 if (GEPOperator *GEP = dyn_cast<GEPOperator>(Op1)) in visitICmpInst()
3129 (isa<Constant>(Op1) || isa<BitCastInst>(Op1))) { in visitICmpInst()
3136 if (BitCastInst *CI2 = dyn_cast<BitCastInst>(Op1)) in visitICmpInst()
3137 Op1 = CI2->getOperand(0); in visitICmpInst()
3140 if (Op0->getType() != Op1->getType()) { in visitICmpInst()
3141 if (Constant *Op1C = dyn_cast<Constant>(Op1)) { in visitICmpInst()
3142 Op1 = ConstantExpr::getBitCast(Op1C, Op0->getType()); in visitICmpInst()
3145 Op1 = Builder->CreateBitCast(Op1, Op0->getType()); in visitICmpInst()
3148 return new ICmpInst(I.getPredicate(), Op0, Op1); in visitICmpInst()
3159 if (isa<Constant>(Op1) || isa<CastInst>(Op1)) in visitICmpInst()
3166 BinaryOperator *BO1 = dyn_cast<BinaryOperator>(Op1); in visitICmpInst()
3188 if (NoOp0WrapProblem && ICmpInst::isSigned(Pred) && match(Op1, m_Zero())) in visitICmpInst()
3194 if ((A == Op1 || B == Op1) && NoOp0WrapProblem) in visitICmpInst()
3195 return new ICmpInst(Pred, A == Op1 ? B : A, in visitICmpInst()
3196 Constant::getNullValue(Op1->getType())); in visitICmpInst()
3234 return new ICmpInst(CmpInst::ICMP_SLE, A, Op1); in visitICmpInst()
3239 return new ICmpInst(CmpInst::ICMP_SGT, A, Op1); in visitICmpInst()
3244 return new ICmpInst(CmpInst::ICMP_SLT, A, Op1); in visitICmpInst()
3249 return new ICmpInst(CmpInst::ICMP_SGE, A, Op1); in visitICmpInst()
3289 if (A == Op1 && NoOp0WrapProblem) in visitICmpInst()
3290 return new ICmpInst(Pred, Constant::getNullValue(Op1->getType()), B); in visitICmpInst()
3312 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1)) in visitICmpInst()
3321 Op1 == BO0->getOperand(1)) in visitICmpInst()
3427 match(Op1, m_Zero()) && in visitICmpInst()
3431 Op1); in visitICmpInst()
3436 if (match(Op1, m_Not(m_Value(B)))) in visitICmpInst()
3438 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1)) in visitICmpInst()
3446 (Op1 == A || Op1 == B)) in visitICmpInst()
3453 match(Op1, m_Add(m_Value(A), m_Value(B))) && in visitICmpInst()
3455 if (Instruction *R = ProcessUAddIdiom(I, Op1, *this)) in visitICmpInst()
3460 if (Instruction *R = ProcessUMulZExtIdiom(I, Op0, Op1, *this)) in visitICmpInst()
3463 if (match(Op1, m_Mul(m_ZExt(m_Value(A)), m_ZExt(m_Value(B))))) { in visitICmpInst()
3464 if (Instruction *R = ProcessUMulZExtIdiom(I, Op1, Op0, *this)) in visitICmpInst()
3473 if (A == Op1 || B == Op1) { // (A^B) == A -> B == 0 in visitICmpInst()
3474 Value *OtherVal = A == Op1 ? B : A; in visitICmpInst()
3479 if (match(Op1, m_Xor(m_Value(C), m_Value(D)))) { in visitICmpInst()
3483 match(D, m_ConstantInt(C2)) && Op1->hasOneUse()) { in visitICmpInst()
3497 if (match(Op1, m_Xor(m_Value(A), m_Value(B))) && in visitICmpInst()
3507 match(Op1, m_OneUse(m_And(m_Value(C), m_Value(D))))) { in visitICmpInst()
3521 Op1 = Builder->CreateXor(X, Y); in visitICmpInst()
3522 Op1 = Builder->CreateAnd(Op1, Z); in visitICmpInst()
3523 I.setOperand(0, Op1); in visitICmpInst()
3524 I.setOperand(1, Constant::getNullValue(Op1->getType())); in visitICmpInst()
3534 match(Op1, m_And(m_Value(B), m_ConstantInt(Cst1)))) || in visitICmpInst()
3535 (Op1->hasOneUse() && in visitICmpInst()
3537 match(Op1, m_ZExt(m_Value(A))))) { in visitICmpInst()
3548 match(Op1, m_OneUse(m_LShr(m_Value(B), m_Specific(Cst1))))) || in visitICmpInst()
3550 match(Op1, m_OneUse(m_AShr(m_Value(B), m_Specific(Cst1)))))) { in visitICmpInst()
3569 match(Op1, m_ConstantInt(Cst1)) && in visitICmpInst()
3601 if (EVI->getIndices()[0] == 0 && ACXI->getCompareOperand() == Op1 && in visitICmpInst()
3608 if (match(Op0, m_Add(m_Value(X), m_ConstantInt(Cst))) && Op1 == X) in visitICmpInst()
3612 if (match(Op1, m_Add(m_Value(X), m_ConstantInt(Cst))) && Op0 == X) in visitICmpInst()
3860 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFCmpInst() local
3862 if (Value *V = SimplifyFCmpInst(I.getPredicate(), Op0, Op1, DL, TLI, DT, AC)) in visitFCmpInst()
3866 if (Op0 == Op1) { in visitFCmpInst()
3890 if (Constant *RHSC = dyn_cast<Constant>(Op1)) { in visitFCmpInst()
4009 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_FNeg(m_Value(Y)))) in visitFCmpInst()
4014 if (FPExtInst *RHSExt = dyn_cast<FPExtInst>(Op1)) in visitFCmpInst()