This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Optimize integer vector concatenate for SSE4


On Thu, May 15, 2008 at 3:20 PM, H.J. Lu <hjl.tools@gmail.com> wrote:

> We should set prefix_extra attribute to 1 only for insertps. I am
> checking in this as an obvious fix.

I have committed another trivial oversight from my previous patch. MMX
alternative can now load operand[2] from memory, since RA can now
choose either MMX or SSE alternative.

2008-05-15  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
	to alternative 4 of operand 2.

Uros.

Index: config/i386/sse.md
===================================================================
--- config/i386/sse.md  (revision 135361)
+++ config/i386/sse.md  (working copy)
@@ -2260,10 +2260,10 @@
 ;; Although insertps takes register source, we prefer
 ;; unpcklps with register source since it is shorter.
 (define_insn "*vec_concatv2sf_sse4_1"
-  [(set (match_operand:V2SF 0 "register_operand"     "=x,x,x,*y,*y")
+  [(set (match_operand:V2SF 0 "register_operand"     "=x,x,x,*y ,*y")
        (vec_concat:V2SF
-         (match_operand:SF 1 "nonimmediate_operand" " 0,0,m, 0, m")
-         (match_operand:SF 2 "vector_move_operand"  " x,m,C,*y, C")))]
+         (match_operand:SF 1 "nonimmediate_operand" " 0,0,m, 0 , m")
+         (match_operand:SF 2 "vector_move_operand"  " x,m,C,*ym, C")))]
   "TARGET_SSE4_1"
   "@
    unpcklps\t{%2, %0|%0, %2}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]