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]

Fix some SSE patterns


Hi,
this patch fixes few problems in RTL patterns so they pass new sanity checking in simplify-rtx.

OK for mainline/3.3 branch?

Honza

Sat Feb  8 01:57:16 CET 2003  Jan Hubicka <jh@suse.cz>
	* i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
Index: config/i386/i386.md
===================================================================
RCS file: /cvsroot/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.401.2.11
diff -c -3 -p -r1.401.2.11 i386.md
*** config/i386/i386.md	7 Feb 2003 17:51:30 -0000	1.401.2.11
--- config/i386/i386.md	8 Feb 2003 00:55:35 -0000
***************
*** 19880,19886 ****
  	 (match_operator:V4SI 3 "sse_comparison_operator"
  		[(match_operand:V4SF 1 "register_operand" "0")
  		 (match_operand:V4SF 2 "register_operand" "x")])
! 	 (match_dup 1)
  	 (const_int 1)))]
    "TARGET_SSE"
    "cmp%D3ss\t{%2, %0|%0, %2}"
--- 19880,19886 ----
  	 (match_operator:V4SI 3 "sse_comparison_operator"
  		[(match_operand:V4SF 1 "register_operand" "0")
  		 (match_operand:V4SF 2 "register_operand" "x")])
! 	 (subreg:V4SI (match_dup 1) 0)
  	 (const_int 1)))]
    "TARGET_SSE"
    "cmp%D3ss\t{%2, %0|%0, %2}"
***************
*** 21459,21465 ****
  	 (match_operator:V2DI 3 "sse_comparison_operator"
  			      [(match_operand:V2DF 1 "register_operand" "0")
  			       (match_operand:V2DF 2 "nonimmediate_operand" "x")])
! 	 (match_dup 1)
  	 (const_int 1)))]
    "TARGET_SSE2"
    "cmp%D3sd\t{%2, %0|%0, %2}"
--- 21459,21465 ----
  	 (match_operator:V2DI 3 "sse_comparison_operator"
  			      [(match_operand:V2DF 1 "register_operand" "0")
  			       (match_operand:V2DF 2 "nonimmediate_operand" "x")])
! 	 (subreg:V2DI (match_dup 1) 0)
  	 (const_int 1)))]
    "TARGET_SSE2"
    "cmp%D3sd\t{%2, %0|%0, %2}"
***************
*** 22070,22076 ****
    [(set (match_operand:V8HI 0 "register_operand" "=x")
          (vec_merge:V8HI (match_operand:V8HI 1 "register_operand" "0")
  			(vec_duplicate:V8HI
! 			 (match_operand:SI 2 "nonimmediate_operand" "rm"))
  			(match_operand:SI 3 "immediate_operand" "i")))]
    "TARGET_SSE2"
    "pinsrw\t{%3, %2, %0|%0, %2, %3}"
--- 22070,22077 ----
    [(set (match_operand:V8HI 0 "register_operand" "=x")
          (vec_merge:V8HI (match_operand:V8HI 1 "register_operand" "0")
  			(vec_duplicate:V8HI
! 			 (truncate:HI
! 			   (match_operand:SI 2 "nonimmediate_operand" "rm")))
  			(match_operand:SI 3 "immediate_operand" "i")))]
    "TARGET_SSE2"
    "pinsrw\t{%3, %2, %0|%0, %2, %3}"
***************
*** 22670,22676 ****
  (define_insn "sse2_loadd"
    [(set (match_operand:V4SI 0 "register_operand" "=x")
  	(vec_merge:V4SI
! 	 (vec_duplicate:V4HI (match_operand:SI 1 "nonimmediate_operand" "mr"))
  	 (const_vector:V4SI [(const_int 0)
  			     (const_int 0)
  			     (const_int 0)
--- 22671,22677 ----
  (define_insn "sse2_loadd"
    [(set (match_operand:V4SI 0 "register_operand" "=x")
  	(vec_merge:V4SI
! 	 (vec_duplicate:V4SI (match_operand:SI 1 "nonimmediate_operand" "mr"))
  	 (const_vector:V4SI [(const_int 0)
  			     (const_int 0)
  			     (const_int 0)


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