aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2008-02-05 12:27:41 +0100
committerUros Bizjak <uros@gcc.gnu.org>2008-02-05 12:27:41 +0100
commit4a5341524410fd4fc45d5ac7daa99df37603796c (patch)
treea2cb7d9725918f85cf10fd667458bc1d8fae2842
parent3969f765e38d4c32b58f87b8256f0690ce48ba34 (diff)
downloadgcc-4a5341524410fd4fc45d5ac7daa99df37603796c.zip
gcc-4a5341524410fd4fc45d5ac7daa99df37603796c.tar.gz
gcc-4a5341524410fd4fc45d5ac7daa99df37603796c.tar.bz2
re PR target/35083 (ICE: in extract_insn, at recog.c:1990)
PR target/35083 * 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. From-SVN: r132114
-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;
+}