[llvm-dev] [FPEnv] FNEG instruction

Kevin Neal via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 26 11:47:50 PDT 2018


Well, yes, they are different operations. And, yes, this needs to be corrected. This wasn’t my point. It’s a given.

I was getting at the _declared_ absence of side effects and what promises we make to anyone using the new fneg instruction. Is this a promise we want to make?

From: Cameron McInally <cameron.mcinally at nyu.edu>
Sent: Wednesday, September 26, 2018 2:30 PM
To: Kevin Neal <Kevin.Neal at sas.com>
Cc: LLVM Developers Mailing List <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] [FPEnv] FNEG instruction


EXTERNAL
On Wed, Sep 26, 2018 at 2:14 PM Kevin Neal via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Do we really want to have fneg be the only instruction with guaranteed no side effects? That just sounds like a gotcha waiting to happen. Or it could result in horrible code depending on the architecture.

That's not quite right. FNEG(X) and FSUB(-0.0, X) are not the same operation. They are *very* similar, but still different at an edge case(s). The current transformations that occur in LLVM are unsafe.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180926/0e96dd1f/attachment.html>


More information about the llvm-dev mailing list