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;