diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/i386/sse.md | 10 | 
2 files changed, 10 insertions, 5 deletions
| diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 270d48b..9c36a8a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-03-29  Uros Bizjak  <ubizjak@gmail.com> + +	* config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results +	crossing 128bit lane boundary. +  2012-03-29  Vladimir Makarov  <vmakarov@redhat.com>  	* ira-color.c (setup_left_conflict_sizes_p): Process all diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 96e43a2..b63d774 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -1175,14 +1175,14 @@  		(parallel [(const_int 0)]))  	      (vec_select:DF (match_dup 1) (parallel [(const_int 1)])))  	    (plusminus:DF -	      (vec_select:DF (match_dup 1) (parallel [(const_int 2)])) -	      (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))) -	  (vec_concat:V2DF -	    (plusminus:DF  	      (vec_select:DF  		(match_operand:V4DF 2 "nonimmediate_operand" "xm")  		(parallel [(const_int 0)])) -	      (vec_select:DF (match_dup 2) (parallel [(const_int 1)]))) +	      (vec_select:DF (match_dup 2) (parallel [(const_int 1)])))) +	  (vec_concat:V2DF +	    (plusminus:DF +	      (vec_select:DF (match_dup 1) (parallel [(const_int 2)])) +	      (vec_select:DF (match_dup 1) (parallel [(const_int 3)])))  	    (plusminus:DF  	      (vec_select:DF (match_dup 2) (parallel [(const_int 2)]))  	      (vec_select:DF (match_dup 2) (parallel [(const_int 3)]))))))] | 
