Lines Matching refs:Overflow
199 // Add/Sub overflow ops with MVT::Glues are lowered to NZCV dependences.
238 // Custom lower Add/Sub/Mul with overflow.
1343 // Protect against exponential runtime and stack overflow.
1389 /// depth to avoid stack overflow.
1619 SDValue Value, Overflow;
1626 llvm_unreachable("Unknown overflow instruction!");
1650 // For a 32 bit multiply with overflow check we want the instruction
1665 // The signed overflow check requires more than just a simple check for
1667 // just the sign bits of a negative number. To perform the overflow
1678 Overflow = DAG.getNode(AArch64ISD::SUBS, DL, VTs, UpperBits, LowerBits)
1681 // The overflow check for unsigned multiply is easy. We only need to
1689 Overflow =
1706 Overflow = DAG.getNode(AArch64ISD::SUBS, DL, VTs, UpperBits, LowerBits)
1711 Overflow =
1723 // Emit the AArch64 operation with overflow check.
1725 Overflow = Value.getValue(1);
1727 return std::make_pair(Value, Overflow);
1838 // The actual operation that sets the overflow or carry flag.
1839 SDValue Value, Overflow;
1840 std::tie(Value, Overflow) = getAArch64XALUOOp(CC, Op, DAG);
1850 Overflow = DAG.getNode(AArch64ISD::CSEL, dl, MVT::i32, FVal, TVal,
1851 CCVal, Overflow);
1854 return DAG.getNode(ISD::MERGE_VALUES, dl, VTs, Value, Overflow);
3634 // Optimize {s|u}{add|sub|mul}.with.overflow feeding into a branch
3646 // The actual operation with overflow check.
3648 SDValue Value, Overflow;
3649 std::tie(Value, Overflow) = getAArch64XALUOOp(OFCC, LHS.getValue(0), DAG);
3656 Overflow);
3999 // an overflow (which would not be the case if we do the check with
4084 // Optimize {s|u}{add|sub|mul}.with.overflow feeding into a select
4094 SDValue Value, Overflow;
4095 std::tie(Value, Overflow) = getAArch64XALUOOp(OFCC, CCVal.getValue(0), DAG);
4099 CCVal, Overflow);
5160 // Benefit form APInt to handle overflow when calculating expected element.