[llvm-dev] Why does FPBinOp(X, undef) -> NaN? (original) (raw)
Cameron McInally via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 7 11:12:06 PST 2020
- Previous message: [llvm-dev] Why does FPBinOp(X, undef) -> NaN?
- Next message: [llvm-dev] [RFC] Propeller: A frame work for Post Link Optimizations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, Feb 7, 2020 at 1:48 PM Roman Lebedev <lebedev.ri at gmail.com> wrote:
> case ISD::ADD: > case ISD::SUB:
> case ISD::UDIV: > case ISD::SDIV: > case ISD::UREM: > case ISD::SREM: > return getUNDEF(VT); // fold op(arg1, undef) -> undef For these 4 - because divisor 'undef' can be defined to any value, including 0, but divisor can't be 0..
That makes sense. It's undefined behavior, so the "some value" as output is fine.
The ADD and SUB I don't understand. Perhaps it's because there's no single value for undef that will always give one defined result? Is that a requirement?
- Previous message: [llvm-dev] Why does FPBinOp(X, undef) -> NaN?
- Next message: [llvm-dev] [RFC] Propeller: A frame work for Post Link Optimizations
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]