This is an automated email from the git hooks/post-receive script.
unknown user pushed a commit to branch hjl/iamcu/improve in repository gcc.
commit 7e7d3004580a3c1cd11618a3c7622279a9e56f85 Author: H.J. Lu hjl.tools@gmail.com Date: Thu Jul 9 12:06:40 2015 -0700
FIx *mov?f_internal patterns
Without hard floating point registers, general purpose registers are used.
gcc/
PR target/66824 * config/i386/i386.h (TARGET_HARD_FP_REGS): New. * config/i386/i386.md (*movsf_internal): Enable only if TARGET_HARD_FP_REGS is true. (*movsf_internal_soft_fp): New pattern. Enable only if TARGET_HARD_FP_REGS is false.
gcc/testsuite/
PR target/66824 * gcc.target/i386/pr66824.c: New test. --- gcc/testsuite/gcc.target/i386/pr66824.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
diff --git a/gcc/testsuite/gcc.target/i386/pr66824.c b/gcc/testsuite/gcc.target/i38 [...] new file mode 100644 index 0000000..3511e4c --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr66824.c @@ -0,0 +1,29 @@ +/* { dg-do compile { target ia32 } } */ +/* { dg-options "-O2 -mno-sse -mno-mmx -mno-80387" } */ +/* { dg-final { scan-assembler-not ".LC[0-9]" } } */ + +double foo (float); + +double +f1 (void) +{ + return foo (1.0); +} + +double +f2 (void) +{ + return foo (0.0); +} + +void +f3 (float *x, float t) +{ + *x = 0.0 + t; +} + +float +f4 (void) +{ + return 1.0; +}