| /llvm-project-15.0.7/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 | 1503 EqPred == ICmpInst::ICMP_EQ && IsAnd) in simplifyUnsignedRangeCheck() 1549 return IsAnd ? ZeroICmp : UnsignedICmp; in simplifyUnsignedRangeCheck() 1555 return IsAnd ? UnsignedICmp : ZeroICmp; in simplifyUnsignedRangeCheck() 1565 return IsAnd ? UnsignedICmp : ZeroICmp; in simplifyUnsignedRangeCheck() 1570 return IsAnd ? ZeroICmp : UnsignedICmp; in simplifyUnsignedRangeCheck() 1574 IsAnd) in simplifyUnsignedRangeCheck() 1579 !IsAnd) in simplifyUnsignedRangeCheck() 1657 return IsAnd ? Cmp1 : Cmp0; in simplifyAndOrOfICmpsWithConstants() 1659 return IsAnd ? Cmp0 : Cmp1; in simplifyAndOrOfICmpsWithConstants() 1671 if ((IsAnd && P0 != ICmpInst::ICMP_NE) || (!IsAnd && P1 != ICmpInst::ICMP_EQ)) in simplifyAndOrOfICmpsWithZero() [all …]
|
| H A D | LazyValueInfo.cpp | 1180 bool IsAnd; in getValueFromConditionImpl() local 1182 IsAnd = true; in getValueFromConditionImpl() 1184 IsAnd = false; in getValueFromConditionImpl() 1195 if ((isTrueDest ^ IsAnd) && (LV != Visited.end())) { in getValueFromConditionImpl()
|
| H A D | ScalarEvolution.cpp | 8769 bool IsAnd = false; in computeExitLimitFromCondFromBinOp() local 8771 IsAnd = true; in computeExitLimitFromCondFromBinOp() 8773 IsAnd = false; in computeExitLimitFromCondFromBinOp() 8780 bool EitherMayExit = IsAnd ^ ExitIfTrue; in computeExitLimitFromCondFromBinOp() 8789 const Constant *NeutralElement = ConstantInt::get(ExitCond->getType(), IsAnd); in computeExitLimitFromCondFromBinOp()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/InstCombine/ |
| H A D | InstCombineAndOrXor.cpp | 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() 561 if (!IsAnd) { in foldLogOpOfMaskedICmps() 989 EqPred == ICmpInst::ICMP_NE && IsAnd) in foldUnsignedUnderflowCheck() 1001 IsAnd) in foldUnsignedUnderflowCheck() 1006 !IsAnd) in foldUnsignedUnderflowCheck() 1196 if (IsAnd) in foldAndOrOfICmpsUsingRanges() 1253 !IsAnd))) { in foldLogicOfFCmps() 2592 if (IsAnd && !IsLogical) in foldAndOrOfICmps() [all …]
|
| H A D | InstCombineInternal.h | 349 bool IsAnd, bool IsLogical = false); 352 Value *foldEqOfParts(ICmpInst *Cmp0, ICmpInst *Cmp1, bool IsAnd); 355 bool IsAnd); 360 Value *foldLogicOfFCmps(FCmpInst *LHS, FCmpInst *RHS, bool IsAnd, 364 Instruction *CxtI, bool IsAnd, 377 bool IsAnd);
|
| H A D | InstCombineSelect.cpp | 2467 bool IsAnd) { in foldAndOrOfSelectUsingImpliedCond() argument 2475 Optional<bool> Res = isImpliedCondition(Op, CondVal, DL, IsAnd); in foldAndOrOfSelectUsingImpliedCond() 2483 if (IsAnd) in foldAndOrOfSelectUsingImpliedCond() 2494 if (IsAnd) in foldAndOrOfSelectUsingImpliedCond() 2767 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in visitSelectInst() local 2768 Value *Op1 = IsAnd ? TrueVal : FalseVal; in visitSelectInst() 2769 if (isCheckForZeroAndMulWithOverflow(CondVal, Op1, IsAnd, Y)) { in visitSelectInst() 2778 /* IsAnd */ IsAnd)) in visitSelectInst() 2783 if (auto *V = foldAndOrOfICmps(ICmp0, ICmp1, SI, IsAnd, in visitSelectInst()
|
| /llvm-project-15.0.7/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);
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/SelectionDAG/ |
| H A D | DAGCombiner.cpp | 551 SDValue foldLogicOfSetCCs(bool IsAnd, SDValue N0, SDValue N1, 5438 bool AndEqZero = IsAnd && CC1 == ISD::SETEQ && IsZero; in foldLogicOfSetCCs() 5440 bool AndGtNeg1 = IsAnd && CC1 == ISD::SETGT && IsNeg1; in foldLogicOfSetCCs() 5442 bool OrNeZero = !IsAnd && CC1 == ISD::SETNE && IsZero; in foldLogicOfSetCCs() 5444 bool OrLtZero = !IsAnd && CC1 == ISD::SETLT && IsZero; in foldLogicOfSetCCs() 5457 bool AndEqNeg1 = IsAnd && CC1 == ISD::SETEQ && IsNeg1; in foldLogicOfSetCCs() 5459 bool AndLtZero = IsAnd && CC1 == ISD::SETLT && IsZero; in foldLogicOfSetCCs() 5461 bool OrNeNeg1 = !IsAnd && CC1 == ISD::SETNE && IsNeg1; in foldLogicOfSetCCs() 5463 bool OrGtNeg1 = !IsAnd && CC1 == ISD::SETGT && IsNeg1; in foldLogicOfSetCCs() 5495 if ((IsAnd && CC1 == ISD::SETEQ) || (!IsAnd && CC1 == ISD::SETNE)) { in foldLogicOfSetCCs() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/AArch64/ |
| H A D | AArch64ISelLowering.cpp | 10972 bool IsAnd = And.getOpcode() == ISD::AND; in tryLowerToSLI() local 10981 if (IsAnd) { in tryLowerToSLI()
|