From dd80b90606a2efb80383202304806971bdaa3476 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 28 Nov 2000 10:04:27 +0100 Subject: [PATCH] i386.md (truncxfsf2_2): Fix predicate. * config/i386/i386.md (truncxfsf2_2): Fix predicate. * gcc.dg/20001127-1.c: New test. From-SVN: r37812 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/i386.md | 2 +- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/20001127-1.c | 16 ++++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/20001127-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4e1a387..90bb235 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-11-28 Jakub Jelinek + + * config/i386/i386.md (truncxfsf2_2): Fix predicate. + 2000-11-27 Jim Wilson * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 2b5d3b8..ace3ce9 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -3279,7 +3279,7 @@ (set_attr "mode" "SF")]) (define_insn "*truncxfsf2_2" - [(set (match_operand:SF 0 "nonimmediate_operand" "=m") + [(set (match_operand:SF 0 "memory_operand" "=m") (float_truncate:SF (match_operand:XF 1 "register_operand" "f")))] "TARGET_80387" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0fce517..1a46dff 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-11-28 Jakub Jelinek + + * gcc.dg/20001127-1.c: New test. + 2000-11-27 Nathan Sidwell * g++.old-deja/g++.other/friend46.C: New test. diff --git a/gcc/testsuite/gcc.dg/20001127-1.c b/gcc/testsuite/gcc.dg/20001127-1.c new file mode 100644 index 0000000..6ac76e2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20001127-1.c @@ -0,0 +1,16 @@ +/* { dg-do compile { target i?86-*-* } } */ +/* { dg-options "-O2" } */ + +extern inline float bar (float x) +{ + register long double value; + asm volatile ("frndint" : "=t" (value) : "0" (x)); + return value; +} + +float a; + +float foo (float b) +{ + return a + bar (b); +} -- 2.7.4