| /openbsd-src/gnu/llvm/llvm/lib/Analysis/ |
| H A D | OverflowInstAnalysis.cpp | 21 bool llvm::isCheckForZeroAndMulWithOverflow(Value *Op0, Value *Op1, bool IsAnd, in isCheckForZeroAndMulWithOverflow() argument 55 (IsAnd && Pred == ICmpInst::Predicate::ICMP_NE && in isCheckForZeroAndMulWithOverflow() 57 (!IsAnd && Pred == ICmpInst::Predicate::ICMP_EQ && in isCheckForZeroAndMulWithOverflow() 68 bool IsAnd) { in isCheckForZeroAndMulWithOverflow() argument 70 return isCheckForZeroAndMulWithOverflow(Op0, Op1, IsAnd, Y); in isCheckForZeroAndMulWithOverflow()
|
| H A D | InstructionSimplify.cpp | 1546 ICmpInst *UnsignedICmp, bool IsAnd, in simplifyUnsignedRangeCheck() argument 1566 EqPred == ICmpInst::ICMP_NE && !IsAnd) in simplifyUnsignedRangeCheck() 1571 EqPred == ICmpInst::ICMP_EQ && IsAnd) in simplifyUnsignedRangeCheck() 1578 return IsAnd ? UnsignedICmp : ZeroICmp; in simplifyUnsignedRangeCheck() 1584 return IsAnd ? ZeroICmp : UnsignedICmp; in simplifyUnsignedRangeCheck() 1592 if (UnsignedPred == ICmpInst::ICMP_UGE && IsAnd && in simplifyUnsignedRangeCheck() 1596 if (UnsignedPred == ICmpInst::ICMP_ULT && !IsAnd && in simplifyUnsignedRangeCheck() 1617 return IsAnd ? ZeroICmp : UnsignedICmp; in simplifyUnsignedRangeCheck() 1623 return IsAnd ? UnsignedICmp : ZeroICmp; in simplifyUnsignedRangeCheck() 1633 return IsAnd ? UnsignedICmp : ZeroICmp; in simplifyUnsignedRangeCheck() [all …]
|
| H A D | LazyValueInfo.cpp | 1201 bool IsAnd; in getValueFromConditionImpl() local 1203 IsAnd = true; in getValueFromConditionImpl() 1205 IsAnd = false; in getValueFromConditionImpl() 1216 if ((isTrueDest ^ IsAnd) && (LV != Visited.end())) { in getValueFromConditionImpl()
|
| H A D | ScalarEvolution.cpp | 9024 bool IsAnd = false; in computeExitLimitFromCondFromBinOp() local 9026 IsAnd = true; in computeExitLimitFromCondFromBinOp() 9028 IsAnd = false; in computeExitLimitFromCondFromBinOp() 9035 bool EitherMayExit = IsAnd ^ ExitIfTrue; in computeExitLimitFromCondFromBinOp() 9044 const Constant *NeutralElement = ConstantInt::get(ExitCond->getType(), IsAnd); in computeExitLimitFromCondFromBinOp()
|
| /openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/ |
| H A D | OverflowInstAnalysis.h | 38 bool isCheckForZeroAndMulWithOverflow(Value *Op0, Value *Op1, bool IsAnd, 40 bool isCheckForZeroAndMulWithOverflow(Value *Op0, Value *Op1, bool IsAnd);
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAndOrXor.cpp | 367 ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, Value *A, Value *B, Value *C, in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed() argument 385 ICmpInst::Predicate NewCC = IsAnd ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_NE; in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed() 459 return ConstantInt::get(LHS->getType(), !IsAnd); in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed() 481 return ConstantInt::get(LHS->getType(), !IsAnd); in foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed() 489 ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, Value *A, Value *B, Value *C, in foldLogOpOfMaskedICmpsAsymmetric() argument 499 if (!IsAnd) { in foldLogOpOfMaskedICmpsAsymmetric() 505 LHS, RHS, IsAnd, A, B, C, D, E, in foldLogOpOfMaskedICmpsAsymmetric() 511 RHS, LHS, IsAnd, A, D, E, B, C, in foldLogOpOfMaskedICmpsAsymmetric() 521 static Value *foldLogOpOfMaskedICmps(ICmpInst *LHS, ICmpInst *RHS, bool IsAnd, in foldLogOpOfMaskedICmps() argument 539 LHS, RHS, IsAnd, A, B, C, D, E, PredL, PredR, LHSMask, RHSMask, in foldLogOpOfMaskedICmps() [all …]
|
| H A D | InstCombineInternal.h | 351 bool IsAnd, bool IsLogical = false); 354 Value *foldEqOfParts(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd); 357 bool IsAnd); 362 Value *foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd, 372 Instruction *CxtI, bool IsAnd, 389 bool IsAnd);
|
| H A D | InstCombineSelect.cpp | 2556 bool IsAnd) { in foldAndOrOfSelectUsingImpliedCond() argument 2564 std::optional<bool> Res = isImpliedCondition(Op, CondVal, DL, IsAnd); in foldAndOrOfSelectUsingImpliedCond() 2572 if (IsAnd) in foldAndOrOfSelectUsingImpliedCond() 2583 if (IsAnd) in foldAndOrOfSelectUsingImpliedCond() 2989 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in foldSelectOfBools() local 2990 Value *Op1 = IsAnd ? TrueVal : FalseVal; in foldSelectOfBools() 2991 if (isCheckForZeroAndMulWithOverflow(CondVal, Op1, IsAnd, Y)) { in foldSelectOfBools() 3000 /* IsAnd */ IsAnd)) in foldSelectOfBools() 3005 if (auto *V = foldAndOrOfICmps(ICmp0, ICmp1, SI, IsAnd, in foldSelectOfBools()
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| H A D | ConstraintElimination.cpp | 702 bool IsAnd = match(Cond, m_LogicalAnd()); in addInfoFor() local 705 if (IsOr && IsAnd) in addInfoFor() 706 IsAnd = false; in addInfoFor() 730 if (IsAnd && match(Cur, m_LogicalAnd(m_Value(Op0), m_Value(Op1)))) { in addInfoFor()
|
| /openbsd-src/gnu/llvm/llvm/lib/Target/RISCV/ |
| H A D | RISCVISelLowering.cpp | 8520 bool IsAnd = N->getOpcode() == ISD::AND; in combineDeMorganOfBoolean() local 8535 if (!isOneConstant(N11) && !(IsAnd && isAllOnesConstant(N11))) in combineDeMorganOfBoolean() 8539 if (!(IsAnd && isAllOnesConstant(N01))) in combineDeMorganOfBoolean() 8556 unsigned Opc = IsAnd ? ISD::OR : ISD::AND; in combineDeMorganOfBoolean() 8759 static ISD::NodeType getSelectionCode(bool IsUnsigned, bool IsAnd, in getSelectionCode() argument 8765 const bool ChooseSelCode = IsAnd ^ IsGreaterOp; in getSelectionCode() 8794 const bool IsAnd = BitOpcode == ISD::AND; in combineCmpOp() local 8796 getSelectionCode(IsUnsigned, IsAnd, IsGreaterOp); in combineCmpOp() 9876 bool IsAnd = Cond.getOpcode() == ISD::AND; in tryDemorganOfBooleanCondition() local 9877 if (!IsAnd && Cond.getOpcode() != ISD::OR) in tryDemorganOfBooleanCondition() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | DAGCombiner.cpp | 565 SDValue foldLogicOfSetCCs(bool IsAnd, SDValue N0, SDValue N1, 5488 SDValue DAGCombiner::foldLogicOfSetCCs(bool IsAnd, SDValue N0, SDValue N1, in foldLogicOfSetCCs() argument 5520 bool AndEqZero = IsAnd && CC1 == ISD::SETEQ && IsZero; in foldLogicOfSetCCs() 5522 bool AndGtNeg1 = IsAnd && CC1 == ISD::SETGT && IsNeg1; in foldLogicOfSetCCs() 5524 bool OrNeZero = !IsAnd && CC1 == ISD::SETNE && IsZero; in foldLogicOfSetCCs() 5526 bool OrLtZero = !IsAnd && CC1 == ISD::SETLT && IsZero; in foldLogicOfSetCCs() 5539 bool AndEqNeg1 = IsAnd && CC1 == ISD::SETEQ && IsNeg1; in foldLogicOfSetCCs() 5541 bool AndLtZero = IsAnd && CC1 == ISD::SETLT && IsZero; in foldLogicOfSetCCs() 5543 bool OrNeNeg1 = !IsAnd && CC1 == ISD::SETNE && IsNeg1; in foldLogicOfSetCCs() 5545 bool OrGtNeg1 = !IsAnd && CC1 == ISD::SETGT && IsNeg1; in foldLogicOfSetCCs() [all …]
|
| /openbsd-src/gnu/llvm/llvm/lib/Target/AArch64/ |
| H A D | AArch64ISelLowering.cpp | 11996 bool IsAnd = And.getOpcode() == ISD::AND; in tryLowerToSLI() local 12005 if (IsAnd) { in tryLowerToSLI()
|