[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-patches
Subject:    PATCH: PR target/49600: Bad SSE2 int->float split in i386.md
From:       "H.J. Lu" <hongjiu.lu () intel ! com>
Date:       2011-06-30 22:50:05
Message-ID: 20110630225005.GA1839 () intel ! com
[Download RAW message or body]

In one SSE2 int->float split, when TARGET_USE_VECTOR_CONVERTS is true,
TARGET_INTER_UNIT_MOVES is false and GENERAL_REG_P (op1) is true. we
will get gcc_unreachable.  This patch removes TARGET_INTER_UNIT_MOVES
check.  OK for trunk?

Thanks.


H.J.
---
2011-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49600
	* config/i386/i386.md (SSE2 int->float split): Don't check
	TARGET_INTER_UNIT_MOVES.

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index e4b96bc..96bdfbb 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -5022,7 +5022,7 @@
   if (GET_CODE (op1) == SUBREG)
     op1 = SUBREG_REG (op1);
 
-  if (GENERAL_REG_P (op1) && TARGET_INTER_UNIT_MOVES)
+  if (GENERAL_REG_P (op1))
     {
       operands[4] = simplify_gen_subreg (V4SImode, operands[0], <MODE>mode, 0);
       emit_insn (gen_sse2_loadld (operands[4],
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic