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.
This commit is contained in:
Richard Sandiford 2020-01-16 19:20:18 +00:00
parent e97a3063fb
commit 7974a14692
2 changed files with 6 additions and 1 deletions

View File

@ -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> 2020-01-27 Martin Liska <mliska@suse.cz>
PR driver/91220 PR driver/91220

View File

@ -897,7 +897,7 @@ split_comparison (enum rtx_code code, machine_mode mode,
return false; return false;
case LTGT: case LTGT:
/* Do not turn a trapping comparison into a non-trapping one. */ /* Do not turn a trapping comparison into a non-trapping one. */
if (HONOR_SNANS (mode)) if (HONOR_NANS (mode))
{ {
*code1 = LT; *code1 = LT;
*code2 = GT; *code2 = GT;