On Tue, Oct 2, 2018 at 7:23 PM Kito Cheng <kito.ch...@gmail.com> wrote: > This patch is fixing the wrong behavior for unordered float compare > for Signaling NaN, current implementation will suppress the FP > exception flags unconditionally, however signaling NaN should signal > an exception according IEEE 754-2008 spec.
This looks related to https://github.com/riscv/riscv-gcc/pull/119 That change wasn't committed at the time because it reduces performance for everyone, even though only a few people depend on the exact semantics the patch provides. One possible solution to that is to add a -mieee option for people that want better IEEE conformance at the expense of performance, and then enable the extra features with -mieee. A few other ports already have various -mieee* options. IEEE 754 doesn't specify how C language operators work. My understanding is that the RISC-V hardware and gcc port is implementing all required features of IEEE fp as per the ISO C standard, but that the glibc testsuite requires that some optional features be implemented and we are missing these optional features. So there is a tradeoff here, as to how to implement the optional features that few people need without hurting performance for most people that don't need them. I can look at your patches tomorrow. Jim