[llvm-dev] [FPEnv] FNEG instruction

Cameron McInally via llvm-dev llvm-dev at lists.llvm.org
Thu Aug 30 06:52:36 PDT 2018


On Thu, Aug 30, 2018 at 9:28 AM, James Y Knight <jyknight at google.com> wrote:

>
>
> On Thu, Aug 30, 2018, 8:03 AM Cameron McInally via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> On Wed, Aug 29, 2018 at 3:13 PM, Cameron McInally <
>> cameron.mcinally at nyu.edu> wrote:
>>
>>> On Wed, Aug 29, 2018 at 1:51 PM, Stephen Canon <scanon at apple.com> wrote:
>>>
>>>> On Aug 29, 2018, at 1:22 PM, Cameron McInally via llvm-dev <
>>>> llvm-dev at lists.llvm.org> wrote:
>>>>
>>>>
>>>> FSUB(-0.0,  NaN) = NaN
>>>> FSUB(-0.0, -NaN) = NaN
>>>>
>>>>
>>>> Some specific architecture may define this, or APFloat might, but IEEE
>>>> 754 does not interpret the sign of NaN except in four operations (copy,
>>>> abs, negate, copysign), so it doesn’t say anything about these.
>>>>
>>>
>>> Good point. I suppose one could argue that the behavior is undefined.
>>>
>>
>> Apologies, I was wrong about this one. Just tested the FSUB hardware
>> instruction on all the targets I care about and they all respect the sign
>> on NaNs. I'm not sure how this got into my head...
>>
>
> No, you weren't wrong.
>
> The sign of the NaN result is only defined, per the standard, for those 4
> operations, no others. Certain hardware or certain ISAs may make more
> guarantees, of course.
>

Yeah, of course, but I'm a pragmatist. ;)

Kidding aside, I've heard a handful of yeas for adding an explicit FNEG
instruction. Are there any nays (or maybes) out there? I'd like to hear
those concerns...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180830/c003b3eb/attachment.html>


More information about the llvm-dev mailing list