diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2010-10-28 22:49:46 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2010-10-28 22:49:46 +0200 |
commit | 2fe4dc01ede9e03a406dfccc4d7c7dd8ac1d0c1a (patch) | |
tree | 3aafaab8bc9c9ea42f4053d54656d40e9096aed3 | |
parent | 05fda8480960186392f5f0501793dae9a96c9a66 (diff) | |
download | gcc-2fe4dc01ede9e03a406dfccc4d7c7dd8ac1d0c1a.zip gcc-2fe4dc01ede9e03a406dfccc4d7c7dd8ac1d0c1a.tar.gz gcc-2fe4dc01ede9e03a406dfccc4d7c7dd8ac1d0c1a.tar.bz2 |
Partially revert:
2010-10-28 Uros Bizjak <ubizjak@gmail.com>
PR target/46153
* config/i386/sse.md (*avx_movhlps): Use ix86_binary_operator_ok
in insn predicate.
(sse_movhlps): Ditto.
(*avx_movlhps): Ditto.
(sse_movlhps): Ditto.
(*avx_loadhps): Ditto.
(sse_loadhps): Ditto.
(*avx_loadhpd): Ditto.
(sse_loadhpd): Ditto.
(*avx_storelps): Prevent both operands in memory.
(sse_storelps): Ditto.
From-SVN: r166047
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 20 |
2 files changed, 10 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 01c7b6a..9753886 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -155,16 +155,6 @@ (sse_loadlps_exp): Ditto. (sse2_loadhpd_exp): Ditto. (sse2_loadlpd_exp): Ditto. - (*avx_movhlps): Use ix86_binary_operator_ok in insn predicate. - (sse_movhlps): Ditto. - (*avx_movlhps): Ditto. - (sse_movlhps): Ditto. - (*avx_loadhps): Ditto. - (sse_loadhps): Ditto. - (*avx_loadhpd): Ditto. - (sse_loadhpd): Ditto. - (*avx_storelps): Prevent both operands in memory. - (sse_storelps): Ditto. 2010-10-28 Andrew Stubbs <ams@codesourcery.com> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index eefa745..c359aed 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -3266,7 +3266,7 @@ (const_int 7) (const_int 2) (const_int 3)])))] - "TARGET_AVX && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_AVX && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vmovhlps\t{%2, %1, %0|%0, %1, %2} vmovlps\t{%H2, %1, %0|%0, %1, %H2} @@ -3285,7 +3285,7 @@ (const_int 7) (const_int 2) (const_int 3)])))] - "TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_SSE && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ movhlps\t{%2, %0|%0, %2} movlps\t{%H2, %0|%0, %H2} @@ -3740,7 +3740,7 @@ (match_operand:V4SF 1 "nonimmediate_operand" "x,x,0") (parallel [(const_int 0) (const_int 1)])) (match_operand:V2SF 2 "nonimmediate_operand" "m,x,x")))] - "TARGET_AVX && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_AVX" "@ vmovhps\t{%2, %1, %0|%0, %1, %2} vmovlhps\t{%2, %1, %0|%0, %1, %2} @@ -3756,7 +3756,7 @@ (match_operand:V4SF 1 "nonimmediate_operand" "0,0,0") (parallel [(const_int 0) (const_int 1)])) (match_operand:V2SF 2 "nonimmediate_operand" "m,x,x")))] - "TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_SSE" "@ movhps\t{%2, %0|%0, %2} movlhps\t{%2, %0|%0, %2} @@ -3769,7 +3769,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" "x,x,m") (parallel [(const_int 0) (const_int 1)])))] - "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" + "TARGET_AVX" "@ vmovlps\t{%1, %0|%0, %1} vmovaps\t{%1, %0|%0, %1} @@ -3783,7 +3783,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" "x,x,m") (parallel [(const_int 0) (const_int 1)])))] - "TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))" + "TARGET_SSE" "@ movlps\t{%1, %0|%0, %1} movaps\t{%1, %0|%0, %1} @@ -3818,7 +3818,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" "x,x,0") (parallel [(const_int 2) (const_int 3)]))))] - "TARGET_AVX && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_AVX" "@ shufps\t{$0xe4, %1, %2, %0|%0, %2, %1, 0xe4} vmovlps\t{%2, %1, %0|%0, %1, %2} @@ -3835,7 +3835,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" "x,0,0") (parallel [(const_int 2) (const_int 3)]))))] - "TARGET_SSE && ix86_binary_operator_ok (UNKNOWN, V4SFmode, operands)" + "TARGET_SSE" "@ shufps\t{$0xe4, %1, %0|%0, %1, 0xe4} movlps\t{%2, %0|%0, %2} @@ -4959,7 +4959,7 @@ (match_operand:V2DF 1 "nonimmediate_operand" " x,x,0,0,0") (parallel [(const_int 0)])) (match_operand:DF 2 "nonimmediate_operand" " m,x,x,*f,r")))] - "TARGET_AVX && ix86_binary_operator_ok (UNKNOWN, V2DFmode, operands)" + "TARGET_AVX && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ vmovhpd\t{%2, %1, %0|%0, %1, %2} vunpcklpd\t{%2, %1, %0|%0, %1, %2} @@ -4977,7 +4977,7 @@ (match_operand:V2DF 1 "nonimmediate_operand" " 0,0,x,0,0,0") (parallel [(const_int 0)])) (match_operand:DF 2 "nonimmediate_operand" " m,x,0,x,*f,r")))] - "TARGET_SSE2 && ix86_binary_operator_ok (UNKNOWN, V2DFmode, operands)" + "TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))" "@ movhpd\t{%2, %0|%0, %2} unpcklpd\t{%2, %0|%0, %2} |