* config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
define_splits, floatunssi<mode>2): Require x87 conversions from
DImode to be permitted.
testsuite:
* gcc.target/i386/pr39592-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145342
138bc75d-0d04-0410-961f-
82ee72b054a4
2009-03-31 Joseph Myers <joseph@codesourcery.com>
2009-03-31 Joseph Myers <joseph@codesourcery.com>
+ PR target/39592
+ * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
+ define_splits, floatunssi<mode>2): Require x87 conversions from
+ DImode to be permitted.
+
+2009-03-31 Joseph Myers <joseph@codesourcery.com>
+
PR preprocessor/15638
* c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
PR preprocessor/15638
* c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
(clobber (match_operand:DI 2 "memory_operand" "=m,m"))
(clobber (match_scratch:SI 3 "=X,x"))]
"!TARGET_64BIT
(clobber (match_operand:DI 2 "memory_operand" "=m,m"))
(clobber (match_scratch:SI 3 "=X,x"))]
"!TARGET_64BIT
- && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, SImode)
+ && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, DImode)
&& TARGET_SSE"
"#"
[(set_attr "type" "multi")
&& TARGET_SSE"
"#"
[(set_attr "type" "multi")
(clobber (match_operand:DI 2 "memory_operand" ""))
(clobber (match_scratch:SI 3 ""))]
"!TARGET_64BIT
(clobber (match_operand:DI 2 "memory_operand" ""))
(clobber (match_scratch:SI 3 ""))]
"!TARGET_64BIT
- && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, SImode)
+ && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, DImode)
&& TARGET_SSE
&& reload_completed"
[(set (match_dup 2) (match_dup 1))
&& TARGET_SSE
&& reload_completed"
[(set (match_dup 2) (match_dup 1))
(clobber (match_operand:DI 2 "memory_operand" ""))
(clobber (match_scratch:SI 3 ""))]
"!TARGET_64BIT
(clobber (match_operand:DI 2 "memory_operand" ""))
(clobber (match_scratch:SI 3 ""))]
"!TARGET_64BIT
- && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, SImode)
+ && TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, DImode)
&& TARGET_SSE
&& reload_completed"
[(set (match_dup 2) (match_dup 3))
&& TARGET_SSE
&& reload_completed"
[(set (match_dup 2) (match_dup 3))
(clobber (match_dup 2))
(clobber (match_scratch:SI 3 ""))])]
"!TARGET_64BIT
(clobber (match_dup 2))
(clobber (match_scratch:SI 3 ""))])]
"!TARGET_64BIT
- && ((TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, SImode)
+ && ((TARGET_80387 && X87_ENABLE_FLOAT (<X87MODEF:MODE>mode, DImode)
&& TARGET_SSE)
|| (SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH))"
{
&& TARGET_SSE)
|| (SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH))"
{
2009-03-31 Joseph Myers <joseph@codesourcery.com>
2009-03-31 Joseph Myers <joseph@codesourcery.com>
+ PR target/39592
+ * gcc.target/i386/pr39592-1.c: New test.
+
+2009-03-31 Joseph Myers <joseph@codesourcery.com>
+
PR preprocessor/15638
* gcc.dg/cpp/missing-header-1.c: New test.
* gcc.dg/cpp/include2.c: Only test #include <>. Expect
PR preprocessor/15638
* gcc.dg/cpp/missing-header-1.c: New test.
* gcc.dg/cpp/include2.c: Only test #include <>. Expect
--- /dev/null
+/* Test for ICE with C99-conforming excess precision and -msse. PR
+ 39592. */
+/* { dg-do compile } */
+/* { dg-options "-ansi -msse" } */
+
+double
+foo (unsigned long var)
+{
+ return var;
+}