Lines Matching refs:IsAnd
370 ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, Value *A, Value *B, Value *C, in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed() argument
388 ICmpInst::Predicate NewCC = IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE; in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed()
462 return ConstantInt::get(LHS->getType(), !IsAnd); in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed()
484 return ConstantInt::get(LHS->getType(), !IsAnd); in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed()
492 ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, Value *A, Value *B, Value *C, in foldLogOpOfMaskedICmpsAsymmetric() argument
502 if (!IsAnd) { in foldLogOpOfMaskedICmpsAsymmetric()
508 LHS, RHS, IsAnd, A, B, C, D, E, in foldLogOpOfMaskedICmpsAsymmetric()
514 RHS, LHS, IsAnd, A, D, E, B, C, in foldLogOpOfMaskedICmpsAsymmetric()
524 static Value *foldLogOpOfMaskedICmps(ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, in foldLogOpOfMaskedICmps() argument
542 LHS, RHS, IsAnd, A, B, C, D, E, PredL, PredR, LHSMask, RHSMask, in foldLogOpOfMaskedICmps()
560 ICmpInst::Predicate NewCC = IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE; in foldLogOpOfMaskedICmps()
561 if (!IsAnd) { in foldLogOpOfMaskedICmps()
652 return ConstantInt::get(LHS->getType(), !IsAnd); in foldLogOpOfMaskedICmps()
723 bool IsAnd, in foldAndOrOfICmpsOfAndWithPow2() argument
725 CmpInst::Predicate Pred = IsAnd ? CmpInst::ICMP_NE : CmpInst::ICMP_EQ; in foldAndOrOfICmpsOfAndWithPow2()
750 auto NewPred = IsAnd ? CmpInst::ICMP_EQ : CmpInst::ICMP_NE; in foldAndOrOfICmpsOfAndWithPow2()
885 static Value *foldIsPowerOf2OrZero(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd, in foldIsPowerOf2OrZero() argument
895 if (IsAnd && Pred0 == ICmpInst::ICMP_NE && Pred1 == ICmpInst::ICMP_NE) in foldIsPowerOf2OrZero()
897 if (!IsAnd && Pred0 == ICmpInst::ICMP_EQ && Pred1 == ICmpInst::ICMP_EQ) in foldIsPowerOf2OrZero()
937 ICmpInst *UnsignedICmp, bool IsAnd, in foldUnsignedUnderflowCheck() argument
969 IsAnd && GetKnownNonZeroAndOther(B, A)) in foldUnsignedUnderflowCheck()
972 !IsAnd && GetKnownNonZeroAndOther(B, A)) in foldUnsignedUnderflowCheck()
989 EqPred == ICmpInst::ICMP_NE && IsAnd) in foldUnsignedUnderflowCheck()
996 EqPred == ICmpInst::ICMP_EQ && !IsAnd) in foldUnsignedUnderflowCheck()
1001 IsAnd) in foldUnsignedUnderflowCheck()
1006 !IsAnd) in foldUnsignedUnderflowCheck()
1051 bool IsAnd) { in foldEqOfParts() argument
1055 CmpInst::Predicate Pred = IsAnd ? CmpInst::ICMP_EQ : CmpInst::ICMP_NE; in foldEqOfParts()
1097 bool IsAnd, in foldAndOrOfICmpsWithConstEq() argument
1108 if ((IsAnd && Pred0 != ICmpInst::ICMP_EQ) || in foldAndOrOfICmpsWithConstEq()
1109 (!IsAnd && Pred0 != ICmpInst::ICMP_NE)) in foldAndOrOfICmpsWithConstEq()
1133 return Builder.CreateBinOp(IsAnd ? Instruction::And : Instruction::Or, Cmp0, in foldAndOrOfICmpsWithConstEq()
1143 bool IsAnd) { in foldAndOrOfICmpsUsingRanges() argument
1166 IsAnd ? ICmpInst::getInversePredicate(Pred1) : Pred1, *C1); in foldAndOrOfICmpsUsingRanges()
1171 IsAnd ? ICmpInst::getInversePredicate(Pred2) : Pred2, *C2); in foldAndOrOfICmpsUsingRanges()
1196 if (IsAnd) in foldAndOrOfICmpsUsingRanges()
1209 bool IsAnd, bool IsLogicalSelect) { in foldLogicOfFCmps() argument
1237 unsigned NewPred = IsAnd ? FCmpCodeL & FCmpCodeR : FCmpCodeL | FCmpCodeR; in foldLogicOfFCmps()
1251 ((PredL == FCmpInst::FCMP_ORD && PredR == FCmpInst::FCMP_ORD && IsAnd) || in foldLogicOfFCmps()
1253 !IsAnd))) { in foldLogicOfFCmps()
2487 Value *foldAndOrOfICmpEqZeroAndICmp(ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, in foldAndOrOfICmpEqZeroAndICmp() argument
2490 IsAnd ? LHS->getInversePredicate() : LHS->getPredicate(); in foldAndOrOfICmpEqZeroAndICmp()
2492 IsAnd ? RHS->getInversePredicate() : RHS->getPredicate(); in foldAndOrOfICmpEqZeroAndICmp()
2508 IsAnd ? ICmpInst::ICMP_ULT : ICmpInst::ICMP_UGE, in foldAndOrOfICmpEqZeroAndICmp()
2517 Instruction &I, bool IsAnd, in foldAndOrOfICmps() argument
2524 if (Value *V = foldAndOrOfICmpsOfAndWithPow2(LHS, RHS, &I, IsAnd, IsLogical)) in foldAndOrOfICmps()
2542 unsigned Code = IsAnd ? getICmpCode(PredL) & getICmpCode(PredR) in foldAndOrOfICmps()
2552 if (Value *V = foldLogOpOfMaskedICmps(LHS, RHS, IsAnd, IsLogical, Builder)) in foldAndOrOfICmps()
2558 if (Value *V = foldAndOrOfICmpEqZeroAndICmp(LHS, RHS, IsAnd, Builder)) in foldAndOrOfICmps()
2560 if (Value *V = foldAndOrOfICmpEqZeroAndICmp(RHS, LHS, IsAnd, Builder)) in foldAndOrOfICmps()
2566 if (Value *V = foldAndOrOfICmpsWithConstEq(LHS, RHS, IsAnd, Builder, Q)) in foldAndOrOfICmps()
2568 if (Value *V = foldAndOrOfICmpsWithConstEq(RHS, LHS, IsAnd, Builder, Q)) in foldAndOrOfICmps()
2572 if (Value *V = foldIsPowerOf2OrZero(LHS, RHS, IsAnd, Builder)) in foldAndOrOfICmps()
2574 if (Value *V = foldIsPowerOf2OrZero(RHS, LHS, IsAnd, Builder)) in foldAndOrOfICmps()
2582 if (Value *V = simplifyRangeCheck(LHS, RHS, /*Inverted=*/!IsAnd)) in foldAndOrOfICmps()
2587 if (Value *V = simplifyRangeCheck(RHS, LHS, /*Inverted=*/!IsAnd)) in foldAndOrOfICmps()
2592 if (IsAnd && !IsLogical) in foldAndOrOfICmps()
2596 if (Value *V = foldIsPowerOf2(LHS, RHS, IsAnd, Builder)) in foldAndOrOfICmps()
2601 if (Value *X = foldUnsignedUnderflowCheck(LHS, RHS, IsAnd, Q, Builder)) in foldAndOrOfICmps()
2603 if (Value *X = foldUnsignedUnderflowCheck(RHS, LHS, IsAnd, Q, Builder)) in foldAndOrOfICmps()
2607 if (Value *X = foldEqOfParts(LHS, RHS, IsAnd)) in foldAndOrOfICmps()
2613 if (!IsLogical && PredL == (IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE) && in foldAndOrOfICmps()
2629 if (PredL == (IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE) && in foldAndOrOfICmps()
2671 if (IsAnd) { in foldAndOrOfICmps()
2694 return foldAndOrOfICmpsUsingRanges(LHS, RHS, IsAnd); in foldAndOrOfICmps()