[gcc/devel/ranger] dojump: Fix gcc.dg/torture/pr91323.c for aarch64 targets

Aldy Hernandez aldyh@gcc.gnu.org
Wed Jun 17 18:19:58 GMT 2020


https://gcc.gnu.org/g:7974a14692cec3ecafed24bc275df803373f3230

commit 7974a14692cec3ecafed24bc275df803373f3230
Author: Richard Sandiford <richard.sandiford@arm.com>
Date:   Thu Jan 16 19:20:18 2020 +0000

    dojump: Fix gcc.dg/torture/pr91323.c for aarch64 targets
    
    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.
    
    2020-01-27  Richard Sandiford  <richard.sandiford@arm.com>
    
    gcc/
            * dojump.c (split_comparison): Use HONOR_NANS rather than
            HONOR_SNANS when splitting LTGT.

Diff:
---
 gcc/ChangeLog | 5 +++++
 gcc/dojump.c  | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3541c6638f9..36932a17a6d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2020-01-27  Richard Sandiford  <richard.sandiford@arm.com>
+
+	* dojump.c (split_comparison): Use HONOR_NANS rather than
+	HONOR_SNANS when splitting LTGT.
+
 2020-01-27  Martin Liska  <mliska@suse.cz>
 
 	PR driver/91220
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;


More information about the Gcc-cvs mailing list