SSE FIX 26 - remaining problems

Jan Hubicka jh@suse.cz
Tue Oct 22 16:07:00 GMT 2002


Hi,
checking bugreports I noticed another two problems.

Wed Oct 23 00:44:10 CEST 2002  Jan Hubicka  <jh@suse.cz>
	* i386.md (pushv2di): New pattern.
	* xmmintrin.h (_MM_TRANSPOSE4_PS): New.
Index: i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.397
diff -c -3 -p -r1.397 i386.md
*** i386.md	22 Oct 2002 22:38:06 -0000	1.397
--- i386.md	22 Oct 2002 22:43:05 -0000
***************
*** 18055,18060 ****
--- 18055,18071 ----
    ""
    [(set_attr "type" "multi")])
  
+ (define_insn_and_split "*pushv2di"
+   [(set (match_operand:V2DI 0 "push_operand" "=<")
+ 	(match_operand:V2DI 1 "nonmemory_operand" "x"))]
+   "TARGET_SSE2"
+   "#"
+   ""
+   [(set (reg:SI 7) (plus:SI (reg:SI 7) (const_int -16)))
+    (set (mem:V2DI (reg:SI 7)) (match_dup 1))]
+   ""
+   [(set_attr "type" "multi")])
+ 
  (define_insn_and_split "*pushv8hi"
    [(set (match_operand:V8HI 0 "push_operand" "=<")
  	(match_operand:V8HI 1 "nonmemory_operand" "x"))]
Index: xmmintrin.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/xmmintrin.h,v
retrieving revision 1.17
diff -c -3 -p -r1.17 xmmintrin.h
*** xmmintrin.h	22 Oct 2002 22:38:07 -0000	1.17
--- xmmintrin.h	22 Oct 2002 22:43:06 -0000
*************** _mm_pause (void)
*** 1069,1076 ****
  do {									\
    __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3);	\
    __v4sf __t0 = __builtin_ia32_shufps (__r0, __r1, 0x44);		\
!   __v4sf __t1 = __builtin_ia32_shufps (__r0, __r1, 0xEE);		\
!   __v4sf __t2 = __builtin_ia32_shufps (__r2, __r3, 0x44);		\
    __v4sf __t3 = __builtin_ia32_shufps (__r2, __r3, 0xEE);		\
    (row0) = __builtin_ia32_shufps (__t0, __t1, 0x88);			\
    (row1) = __builtin_ia32_shufps (__t0, __t1, 0xDD);			\
--- 1069,1076 ----
  do {									\
    __v4sf __r0 = (row0), __r1 = (row1), __r2 = (row2), __r3 = (row3);	\
    __v4sf __t0 = __builtin_ia32_shufps (__r0, __r1, 0x44);		\
!   __v4sf __t2 = __builtin_ia32_shufps (__r0, __r1, 0xEE);		\
!   __v4sf __t1 = __builtin_ia32_shufps (__r2, __r3, 0x44);		\
    __v4sf __t3 = __builtin_ia32_shufps (__r2, __r3, 0xEE);		\
    (row0) = __builtin_ia32_shufps (__t0, __t1, 0x88);			\
    (row1) = __builtin_ia32_shufps (__t0, __t1, 0xDD);			\



More information about the Gcc-patches mailing list