diff options
author | Tamar Christina <tamar.christina@arm.com> | 2017-10-26 06:42:41 +0000 |
---|---|---|
committer | Tamar Christina <tnfchris@gcc.gnu.org> | 2017-10-26 06:42:41 +0000 |
commit | 1013465feaf83fd7503711c03a0c1013a7a37ca4 (patch) | |
tree | 08ccf143fd3c242e17024f9e6a3412efba87a5fe | |
parent | c3ef5fda143585ca19dff5a977b6aa87b7a17566 (diff) | |
download | gcc-1013465feaf83fd7503711c03a0c1013a7a37ca4.zip gcc-1013465feaf83fd7503711c03a0c1013a7a37ca4.tar.gz gcc-1013465feaf83fd7503711c03a0c1013a7a37ca4.tar.bz2 |
re PR target/81800 (On aarch64 ilp32 lrint should not be inlined as two instructions)
2017-10-26 Tamar Christina <tamar.christina@arm.com>
PR target/81800
* config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math
and flag_fp_int_builtin_inexact.
gcc/testsuite/
2017-10-26 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math.
From-SVN: r254098
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.md | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c | 2 |
4 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e297fb..ad54a57 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-10-26 Tamar Christina <tamar.christina@arm.com> + + PR target/81800 + * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math + and flag_fp_int_builtin_inexact. + 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com> * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 389f2f9..eee836b 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -5155,7 +5155,9 @@ (define_expand "lrint<GPF:mode><GPI:mode>2" [(match_operand:GPI 0 "register_operand") (match_operand:GPF 1 "register_operand")] - "TARGET_FLOAT" + "TARGET_FLOAT + && ((GET_MODE_SIZE (<GPF:MODE>mode) <= GET_MODE_SIZE (<GPI:MODE>mode)) + || !flag_trapping_math || flag_fp_int_builtin_inexact)" { rtx cvt = gen_reg_rtx (<GPF:MODE>mode); emit_insn (gen_rint<GPF:mode>2 (cvt, operands[1])); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cf7095e..8dcf461 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2017-10-26 Tamar Christina <tamar.christina@arm.com> + * gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math. + +2017-10-26 Tamar Christina <tamar.christina@arm.com> + * gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New. * gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New. * gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New. diff --git a/gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c b/gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c index 6080e18..bd0c73c 100644 --- a/gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c +++ b/gcc/testsuite/gcc.target/aarch64/inline-lrint_2.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-options "-O3 -fno-math-errno" } */ +/* { dg-options "-O3 -fno-math-errno -fno-trapping-math" } */ #include "lrint-matherr.h" |