PR91323 was fixed for x86 and sparc in target code, but aarch64
instead relies on the target-independent comparison splitters.
Since LTGT is an unordered-signalling operation, we should split
it into unordered-signalling operations for any input that could
be NaN, not just inputs that could be signalling NaNs.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?

Richard


2020-01-17  Richard Sandiford  <richard.sandif...@arm.com>

gcc/
        * dojump.c (split_comparison): Use HONOR_NANS rather than
        HONOR_SNANS when splitting LTGT.
---
 gcc/dojump.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/dojump.c b/gcc/dojump.c
index 7bf578a7178..28b47b7ab6d 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -897,7 +897,7 @@ split_comparison (enum rtx_code code, machine_mode mode,
       return false;
     case LTGT:
       /* Do not turn a trapping comparison into a non-trapping one.  */
-      if (HONOR_SNANS (mode))
+      if (HONOR_NANS (mode))
        {
           *code1 = LT;
           *code2 = GT;

Reply via email to