andykaylor wrote:

> Yeah, the conditional operator doesn't do any floating-path math itself. If 
> the first operand is a floating-point expression, we should always be 
> modeling that with a float-to-boolean conversion, and the flags should go 
> there (if they're necessary — I didn't think comparisons were flag-sensitive).

Any instruction that returns a floating-point value can have fast-math flags 
attached to it, and because we need to check the fast-math flags on input 
operands, the select instruction generated by the conditional operator needs 
the flags set when fast-math is enabled. That's happening in the general case, 
but it isn't currently being modified correctly in the presence of pragmas.

https://godbolt.org/z/91zPx5ha4

https://github.com/llvm/llvm-project/pull/105912
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to