From 4a5341524410fd4fc45d5ac7daa99df37603796c Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 5 Feb 2008 12:27:41 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.md | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr35083.c | 8 ++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr35083.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 13b13df11330..3676928b9663 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-02-05 Uros Bizjak + + 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 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 04d38f6497be..4090ead27a0f 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 4c1b912ab935..8ac2a8760ce3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2008-02-05 Uros Bizjak + + PR target/35083 + * gcc.target/i386/pr35083.c: New test. + 2008-02-05 Paul Thomas 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 000000000000..c765d325432e --- /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; +}