OSDN Git Service

2007-04-23 H.J. Lu <hongjiu.lu@intel.com>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Apr 2007 16:15:14 +0000 (16:15 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 23 Apr 2007 16:15:14 +0000 (16:15 +0000)
* config/i386/sse.md (sse2_stored): Don't split to inter-unit
move if inter-unit move isn't allowed.
Don't split moving the first element of V2DI to DI to inter-unit
move if inter-unit move isn't allowed.

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

gcc/ChangeLog
gcc/config/i386/sse.md

index 6f7e715..1420676 100644 (file)
@@ -1,3 +1,10 @@
+2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (sse2_stored): Don't split to inter-unit
+       move if inter-unit move isn't allowed.
+       Don't split moving the first element of V2DI to DI to inter-unit
+       move if inter-unit move isn't allowed.
+
 2007-04-23  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
index 16219e0..279e18e 100644 (file)
          (parallel [(const_int 0)])))]
   "TARGET_SSE"
   "#"
-  "&& reload_completed"
+  "&& reload_completed
+   && (TARGET_INTER_UNIT_MOVES 
+       || MEM_P (operands [0])
+       || !GENERAL_REGNO_P (true_regnum (operands [0])))"
   [(set (match_dup 0) (match_dup 1))]
 {
   operands[1] = gen_rtx_REG (SImode, REGNO (operands[1]));
        (vec_select:DI
          (match_operand:V2DI 1 "register_operand" "")
          (parallel [(const_int 0)])))]
-  "TARGET_SSE && reload_completed"
+  "TARGET_SSE
+   && reload_completed
+   && (TARGET_INTER_UNIT_MOVES 
+       || MEM_P (operands [0])
+       || !GENERAL_REGNO_P (true_regnum (operands [0])))"
   [(set (match_dup 0) (match_dup 1))]
 {
   operands[1] = gen_rtx_REG (DImode, REGNO (operands[1]));