erichkeane added a comment.

In D71467#1786188 <https://reviews.llvm.org/D71467#1786188>, @uweigand wrote:

> In D71467#1785943 <https://reviews.llvm.org/D71467#1785943>, @erichkeane 
> wrote:
>
> > I did the compare operators that didn't work right, and will do a separate 
> > patch for the fp-classification type ones: 
> > f02d6dd6c7afc08f871a623c0411f2d77ed6acf8 
> > <https://reviews.llvm.org/rGf02d6dd6c7afc08f871a623c0411f2d77ed6acf8>
>
>
> Thanks!  Now I'm getting the correct output for the float test cases as well, 
> and I've added them to the patch.
>
> As to fp-classification, I think there is an additional complication here:  
> according to IEEE and the proposed C2x standard, these builtins should 
> **never** raise any exception, not even when receiving a signaling NaN as 
> input.  Strictly speaking, this means that they cannot possibly be 
> implemented in terms of any comparison operation.
>
> Now, on SystemZ (and many other platforms, I think) there are in fact 
> specialized instructions that will implement the required semantics without 
> raising any exceptions, but there seems to be no way to represent those at 
> the LLVM IR level.  We'll probably need some extensions here (some new 
> IR-level builtins?) ...
>
> (But I'd say that problem is unrelated to this patch, so I'd prefer to 
> decouple that problem from the question of whether **this** patch is the 
> right solution for comparisons.)


__builtin_fpclassify/isfinite/isinf/isinf_sign/isnan/isnormal/signbit are all 
implemented the same as the OTHER ones, except there is a strange fixup step in 
SEMA that removes the float->double cast.  It is IMO the wrong way to do it.

I don't think it would modify the IR at all or the AST, but I'm also working on 
removing that hack (which is what I meant by the fp-classification type ones).

I hope the work I've done already is sufficient to unblock this patch.


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

https://reviews.llvm.org/D71467



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

Reply via email to