aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.md4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr35083.c8
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 13b13df..3676928 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35083
+ * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
+ Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
+
2008-02-04 Diego Novillo <dnovillo@google.com>
http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 04d38f6..4090ead 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -5306,9 +5306,9 @@
(define_expand "floatunssisf2"
[(use (match_operand:SF 0 "register_operand" ""))
(use (match_operand:SI 1 "nonimmediate_operand" ""))]
- "!TARGET_64BIT"
+ "!TARGET_64BIT && TARGET_SSE_MATH"
{
- if (TARGET_SSE_MATH && TARGET_SSE2)
+ if (TARGET_SSE2)
ix86_expand_convert_uns_sisf_sse (operands[0], operands[1]);
else
x86_emit_floatuns (operands);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4c1b912..8ac2a87 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-05 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/35083
+ * gcc.target/i386/pr35083.c: New test.
+
2008-02-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/32315
diff --git a/gcc/testsuite/gcc.target/i386/pr35083.c b/gcc/testsuite/gcc.target/i386/pr35083.c
new file mode 100644
index 0000000..c765d32
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr35083.c
@@ -0,0 +1,8 @@
+/* { dg-options "-O2 -mno-80387" } */
+/* { dg-do compile } */
+/* { dg-require-effective-target ilp32 } */
+
+float test (unsigned int x)
+{
+ return (float) x;
+}