diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2016-12-12 17:02:28 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2016-12-12 17:02:28 +0100 |
commit | b8cab8a5492e9639fc9f0ff23f5c392ac395e8a2 (patch) | |
tree | 3d2a17ed1255c5ae85974678d3bf8b0e1d005a3d /gcc/config/i386/i386.h | |
parent | 39c429372b27f6bedfb2459c7695531c1a37c0ea (diff) | |
download | gcc-b8cab8a5492e9639fc9f0ff23f5c392ac395e8a2.zip gcc-b8cab8a5492e9639fc9f0ff23f5c392ac395e8a2.tar.gz gcc-b8cab8a5492e9639fc9f0ff23f5c392ac395e8a2.tar.bz2 |
re PR target/78738 (ICE in extract_insn, at recog.c:2311)
PR target/78738
* config/i386/i386.h (X87_ENABLE_ARITH): Also enable for
flag_unsafe_math_optimizations.
(X87_ENABLE_FLOAT): Ditto.
testsuite/ChangeLog:
PR target/78738
* gcc.target/i386/pr78738.c: New test.
From-SVN: r243559
Diffstat (limited to 'gcc/config/i386/i386.h')
-rw-r--r-- | gcc/config/i386/i386.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 8bc31f9..4d96a45 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -693,13 +693,16 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); /* Whether to allow x87 floating-point arithmetic on MODE (one of SFmode, DFmode and XFmode) in the current excess precision configuration. */ -#define X87_ENABLE_ARITH(MODE) \ - (flag_excess_precision == EXCESS_PRECISION_FAST || (MODE) == XFmode) +#define X87_ENABLE_ARITH(MODE) \ + (flag_unsafe_math_optimizations \ + || flag_excess_precision == EXCESS_PRECISION_FAST \ + || (MODE) == XFmode) /* Likewise, whether to allow direct conversions from integer mode IMODE (HImode, SImode or DImode) to MODE. */ #define X87_ENABLE_FLOAT(MODE, IMODE) \ - (flag_excess_precision == EXCESS_PRECISION_FAST \ + (flag_unsafe_math_optimizations \ + || flag_excess_precision == EXCESS_PRECISION_FAST \ || (MODE) == XFmode \ || ((MODE) == DFmode && (IMODE) == SImode) \ || (IMODE) == HImode) |