Patchwork [i386] : Small adjustment of *movdi_internal pattern

login
register
mail settings
Submitter Uros Bizjak
Date March 21, 2013, 8:20 p.m.
Message ID <CAFULd4aaaYxVATs_gVU9GBCUMPo1yRaJsxL0O_fh_zQi1zwCEA@mail.gmail.com>
Download mbox | patch
Permalink /patch/229830/
State New
Headers show

Comments

Uros Bizjak - March 21, 2013, 8:20 p.m.
Hello!

2013-03-21  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdi_internal): Disparage slightly
	all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
	conversion alternatives.

Tested on x86_64-pc-linux-gnu, committed to mainline.

Uros.

Patch

Index: i386.md
===================================================================
--- i386.md	(revision 196883)
+++ i386.md	(working copy)
@@ -1864,9 +1864,9 @@ 
 
 (define_insn "*movdi_internal"
   [(set (match_operand:DI 0 "nonimmediate_operand"
-    "=r  ,o  ,r,r  ,r,m ,*y,m*y,*y,?*y,?r ,?*Ym,*x,*x,*x,m ,?r ,?*Yi,?*x,?*Ym")
+    "=r  ,o  ,r,r  ,r,m ,*y,*y,?*y,?m,?r ,?*Ym,*x,*x,*x,m ,?r ,?*Yi,?*Ym,?*Yi")
 	(match_operand:DI 1 "general_operand"
-    "riFo,riF,Z,rem,i,re,C ,*y ,m ,m  ,*Ym,r   ,C ,*x,m ,*x,*Yi,r   ,*Ym,*x"))]
+    "riFo,riF,Z,rem,i,re,C ,*y,m  ,*y,*Ym,r   ,C ,*x,m ,*x,*Yi,r   ,*Yi ,*Ym"))]
   "!(MEM_P (operands[0]) && MEM_P (operands[1]))"
 {
   switch (get_attr_type (insn))
@@ -1936,12 +1936,10 @@ 
     }
 }
   [(set (attr "isa")
-     (cond [(eq_attr "alternative" "0,1,8")
+     (cond [(eq_attr "alternative" "0,1")
 	      (const_string "nox64")
-	    (eq_attr "alternative" "2,3,4,5,9,10,11,16,17")
+	    (eq_attr "alternative" "2,3,4,5,10,11,16,17")
 	      (const_string "x64")
-	    (eq_attr "alternative" "18,19")
-	      (const_string "sse2")
 	   ]
 	   (const_string "*")))
    (set (attr "type")