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