Patchwork PATCH: PR target/49600: Bad SSE2 int->float split in i386.md

login
register
mail settings
Submitter H.J. Lu
Date June 30, 2011, 10:50 p.m.
Message ID <20110630225005.GA1839@intel.com>
Download mbox | patch
Permalink /patch/102843/
State New
Headers show

Comments

H.J. Lu - June 30, 2011, 10:50 p.m.
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.

Patch

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],