kpn added a comment.

In D104854#2957490 <https://reviews.llvm.org/D104854#2957490>, @lebedev.ri 
wrote:

> In D104854#2957471 <https://reviews.llvm.org/D104854#2957471>, @sepavloff 
> wrote:
>
>> In D104854#2957423 <https://reviews.llvm.org/D104854#2957423>, @spatel wrote:
>>
>>> Is it intentional that we are not canonicalizing the intrinsic call back to 
>>> `fcmp uno` in the default FP environment?
>>
>> It is lowered to unordered comparison by default. Changing `llvm.isnan` to  
>> `fcmp uno` somewhere in IR would make it possible to optimize out the latter 
>> if fast-math mode is on. Preserving semantics of `isnan` when fast-math is 
>> in effect was one of the goals of this change.
>
> Eeek. Was there an RFC about this?
> This does not sound good to me at all,
> much like "let's not apply fast-math flags to x86 vector intrinsics".

We can switch into and out of the default FP environment inside a single 
function. If we want different behavior based on the FP environment then this 
should be a constrained intrinsic. Then the intrinsic would know the FP 
environment, or at least enough about it to know if traps and FP status bits 
are relevant.

I think the distinction is constrained vs non-constrained because FMF can 
optionally be used in both cases.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104854/new/

https://reviews.llvm.org/D104854

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to