Lines Matching refs:Op1
2500 const Value * Op1) { in swapMayExposeCSEOpportunities() argument
2525 if (BinOp->getOperand(Op1Idx) != Op1) in swapMayExposeCSEOpportunities()
2650 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitICmpInst() local
2652 unsigned Op1Cplxity = getComplexity(Op1); in visitICmpInst()
2659 swapMayExposeCSEOpportunities(Op0, Op1))) { in visitICmpInst()
2661 std::swap(Op0, Op1); in visitICmpInst()
2665 if (Value *V = SimplifyICmpInst(I.getPredicate(), Op0, Op1, DL, TLI, DT, AC)) in visitICmpInst()
2670 if (I.getPredicate() == ICmpInst::ICMP_NE && match(Op1, m_Zero())) in visitICmpInst()
2677 return CmpInst::Create(Instruction::ICmp, I.getPredicate(), V, Op1); in visitICmpInst()
2681 return CmpInst::Create(Instruction::ICmp, I.getPredicate(), V, Op1); in visitICmpInst()
2693 Value *Xor = Builder->CreateXor(Op0, Op1, I.getName()+"tmp"); in visitICmpInst()
2697 return BinaryOperator::CreateXor(Op0, Op1); in visitICmpInst()
2700 std::swap(Op0, Op1); // Change icmp ugt -> icmp ult in visitICmpInst()
2704 return BinaryOperator::CreateAnd(Not, Op1); in visitICmpInst()
2707 std::swap(Op0, Op1); // Change icmp sgt -> icmp slt in visitICmpInst()
2710 Value *Not = Builder->CreateNot(Op1, I.getName()+"tmp"); in visitICmpInst()
2714 std::swap(Op0, Op1); // Change icmp uge -> icmp ule in visitICmpInst()
2718 return BinaryOperator::CreateOr(Not, Op1); in visitICmpInst()
2721 std::swap(Op0, Op1); // Change icmp sge -> icmp sle in visitICmpInst()
2724 Value *Not = Builder->CreateNot(Op1, I.getName()+"tmp"); in visitICmpInst()
2739 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2873 ConstantInt::get(Op0->getType(), Op0Min), Op1); in visitICmpInst()
2874 if (!isa<Constant>(Op1) && Op1Min == Op1Max) in visitICmpInst()
2876 ConstantInt::get(Op1->getType(), Op1Min)); in visitICmpInst()
2978 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2979 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
2997 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
2998 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
3015 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
3016 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
3029 return new ICmpInst(ICmpInst::ICMP_NE, Op0, Op1); in visitICmpInst()
3030 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
3037 assert(!isa<ConstantInt>(Op1) && "ICMP_SGE with ConstantInt not folded!"); in visitICmpInst()
3044 assert(!isa<ConstantInt>(Op1) && "ICMP_SLE with ConstantInt not folded!"); in visitICmpInst()
3051 assert(!isa<ConstantInt>(Op1) && "ICMP_UGE with ConstantInt not folded!"); in visitICmpInst()
3058 assert(!isa<ConstantInt>(Op1) && "ICMP_ULE with ConstantInt not folded!"); in visitICmpInst()
3071 return new ICmpInst(I.getUnsignedPredicate(), Op0, Op1); in visitICmpInst()
3083 if ((SI->getOperand(1) == Op0 && SI->getOperand(2) == Op1) || in visitICmpInst()
3084 (SI->getOperand(2) == Op0 && SI->getOperand(1) == Op1)) in visitICmpInst()
3089 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) { in visitICmpInst()
3099 if (Constant *RHSC = dyn_cast<Constant>(Op1)) { in visitICmpInst()
3121 Value *Op1 = nullptr, *Op2 = nullptr; in visitICmpInst() local
3124 Op1 = ConstantExpr::getICmp(I.getPredicate(), C, RHSC); in visitICmpInst()
3125 CI = dyn_cast<ConstantInt>(Op1); in visitICmpInst()
3140 if (Op1 && Op2) in visitICmpInst()
3142 else if (Op1 || Op2) { in visitICmpInst()
3152 Op1 ? 2 : 1); in visitICmpInst()
3155 if (!Op1) in visitICmpInst()
3156 Op1 = Builder->CreateICmp(I.getPredicate(), LHSI->getOperand(1), in visitICmpInst()
3161 return SelectInst::Create(LHSI->getOperand(0), Op1, Op2); in visitICmpInst()
3189 if (Instruction *NI = FoldGEPICmp(GEP, Op1, I.getPredicate(), I)) in visitICmpInst()
3191 if (GEPOperator *GEP = dyn_cast<GEPOperator>(Op1)) in visitICmpInst()
3201 (isa<Constant>(Op1) || isa<BitCastInst>(Op1))) { in visitICmpInst()
3208 if (BitCastInst *CI2 = dyn_cast<BitCastInst>(Op1)) in visitICmpInst()
3209 Op1 = CI2->getOperand(0); in visitICmpInst()
3212 if (Op0->getType() != Op1->getType()) { in visitICmpInst()
3213 if (Constant *Op1C = dyn_cast<Constant>(Op1)) { in visitICmpInst()
3214 Op1 = ConstantExpr::getBitCast(Op1C, Op0->getType()); in visitICmpInst()
3217 Op1 = Builder->CreateBitCast(Op1, Op0->getType()); in visitICmpInst()
3220 return new ICmpInst(I.getPredicate(), Op0, Op1); in visitICmpInst()
3231 if (isa<Constant>(Op1) || isa<CastInst>(Op1)) in visitICmpInst()
3238 BinaryOperator *BO1 = dyn_cast<BinaryOperator>(Op1); in visitICmpInst()
3260 if (NoOp0WrapProblem && ICmpInst::isSigned(Pred) && match(Op1, m_Zero())) in visitICmpInst()
3266 if ((A == Op1 || B == Op1) && NoOp0WrapProblem) in visitICmpInst()
3267 return new ICmpInst(Pred, A == Op1 ? B : A, in visitICmpInst()
3268 Constant::getNullValue(Op1->getType())); in visitICmpInst()
3306 return new ICmpInst(CmpInst::ICMP_SLE, A, Op1); in visitICmpInst()
3311 return new ICmpInst(CmpInst::ICMP_SGT, A, Op1); in visitICmpInst()
3316 return new ICmpInst(CmpInst::ICMP_SLT, A, Op1); in visitICmpInst()
3321 return new ICmpInst(CmpInst::ICMP_SGE, A, Op1); in visitICmpInst()
3361 if (A == Op1 && NoOp0WrapProblem) in visitICmpInst()
3362 return new ICmpInst(Pred, Constant::getNullValue(Op1->getType()), B); in visitICmpInst()
3384 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1)) in visitICmpInst()
3393 Op1 == BO0->getOperand(1)) in visitICmpInst()
3499 match(Op1, m_Zero()) && in visitICmpInst()
3503 Op1); in visitICmpInst()
3508 if (match(Op1, m_Not(m_Value(B)))) in visitICmpInst()
3510 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1)) in visitICmpInst()
3529 if (Instruction *R = ProcessUMulZExtIdiom(I, Op0, Op1, *this)) in visitICmpInst()
3532 if (match(Op1, m_Mul(m_ZExt(m_Value(A)), m_ZExt(m_Value(B))))) { in visitICmpInst()
3533 if (Instruction *R = ProcessUMulZExtIdiom(I, Op1, Op0, *this)) in visitICmpInst()
3542 if (A == Op1 || B == Op1) { // (A^B) == A -> B == 0 in visitICmpInst()
3543 Value *OtherVal = A == Op1 ? B : A; in visitICmpInst()
3548 if (match(Op1, m_Xor(m_Value(C), m_Value(D)))) { in visitICmpInst()
3552 match(D, m_ConstantInt(C2)) && Op1->hasOneUse()) { in visitICmpInst()
3566 if (match(Op1, m_Xor(m_Value(A), m_Value(B))) && in visitICmpInst()
3576 match(Op1, m_OneUse(m_And(m_Value(C), m_Value(D))))) { in visitICmpInst()
3590 Op1 = Builder->CreateXor(X, Y); in visitICmpInst()
3591 Op1 = Builder->CreateAnd(Op1, Z); in visitICmpInst()
3592 I.setOperand(0, Op1); in visitICmpInst()
3593 I.setOperand(1, Constant::getNullValue(Op1->getType())); in visitICmpInst()
3603 match(Op1, m_And(m_Value(B), m_ConstantInt(Cst1)))) || in visitICmpInst()
3604 (Op1->hasOneUse() && in visitICmpInst()
3606 match(Op1, m_ZExt(m_Value(A))))) { in visitICmpInst()
3617 match(Op1, m_OneUse(m_LShr(m_Value(B), m_Specific(Cst1))))) || in visitICmpInst()
3619 match(Op1, m_OneUse(m_AShr(m_Value(B), m_Specific(Cst1)))))) { in visitICmpInst()
3634 match(Op1, m_OneUse(m_Shl(m_Value(B), m_Specific(Cst1))))) { in visitICmpInst()
3653 match(Op1, m_ConstantInt(Cst1)) && in visitICmpInst()
3685 if (EVI->getIndices()[0] == 0 && ACXI->getCompareOperand() == Op1 && in visitICmpInst()
3692 if (match(Op0, m_Add(m_Value(X), m_ConstantInt(Cst))) && Op1 == X) in visitICmpInst()
3696 if (match(Op1, m_Add(m_Value(X), m_ConstantInt(Cst))) && Op0 == X) in visitICmpInst()
3944 Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1); in visitFCmpInst() local
3946 if (Value *V = SimplifyFCmpInst(I.getPredicate(), Op0, Op1, DL, TLI, DT, AC)) in visitFCmpInst()
3950 if (Op0 == Op1) { in visitFCmpInst()
3974 if (Constant *RHSC = dyn_cast<Constant>(Op1)) { in visitFCmpInst()
4093 if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_FNeg(m_Value(Y)))) in visitFCmpInst()
4098 if (FPExtInst *RHSExt = dyn_cast<FPExtInst>(Op1)) in visitFCmpInst()