OSDN Git Service

PR target/35083
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Feb 2008 11:27:41 +0000 (11:27 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Feb 2008 11:27:41 +0000 (11:27 +0000)
* config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.

testsuite/ChangeLog:

PR target/35083
* gcc.target/i386/pr35083.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132114 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr35083.c [new file with mode: 0644]

index 13b13df..3676928 100644 (file)
@@ -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
index 04d38f6..4090ead 100644 (file)
 (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);
index 4c1b912..8ac2a87 100644 (file)
@@ -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 (file)
index 0000000..c765d32
--- /dev/null
@@ -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;
+}