diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-03-05 22:41:10 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-03-05 22:41:10 +0100 |
commit | 661b4dd0befeb56dac4baa777e0d4b0c979faa7f (patch) | |
tree | c83163bf55ca123be5ed6f5b6b797f83c3b8c8bc /gcc | |
parent | f620e1d5c84586f6e60bf5350946ea4a75154ff4 (diff) | |
download | gcc-661b4dd0befeb56dac4baa777e0d4b0c979faa7f.zip gcc-661b4dd0befeb56dac4baa777e0d4b0c979faa7f.tar.gz gcc-661b4dd0befeb56dac4baa777e0d4b0c979faa7f.tar.bz2 |
sse.md (sse_storehps, [...]): Require in condition that at least one operand is not a MEM.
* config/i386/sse.md (sse_storehps, sse_storelps,
avx_<castmode><avxsizesuffix>_<castmode>,
avx512f_<castmode><avxsizesuffix>_<castmode>,
avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
in condition that at least one operand is not a MEM.
From-SVN: r245904
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad56f70..3432411 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2017-03-05 Jakub Jelinek <jakub@redhat.com> + + * config/i386/sse.md (sse_storehps, sse_storelps, + avx_<castmode><avxsizesuffix>_<castmode>, + avx512f_<castmode><avxsizesuffix>_<castmode>, + avx512f_<castmode><avxsizesuffix>_256<castmode>): Require + in condition that at least one operand is not a MEM. + 2017-03-03 Jakub Jelinek <jakub@redhat.com> PR middle-end/79805 diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index a6f1de7..52ddfd8 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -6639,7 +6639,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" "v,v,o") (parallel [(const_int 2) (const_int 3)])))] - "TARGET_SSE" + "TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ %vmovhps\t{%1, %0|%q0, %1} %vmovhlps\t{%1, %d0|%d0, %1} @@ -6692,7 +6692,7 @@ (vec_select:V2SF (match_operand:V4SF 1 "nonimmediate_operand" " v,v,m") (parallel [(const_int 0) (const_int 1)])))] - "TARGET_SSE" + "TARGET_SSE && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "@ %vmovlps\t{%1, %0|%q0, %1} %vmovaps\t{%1, %0|%0, %1} @@ -18592,7 +18592,7 @@ (unspec:AVX256MODE2P [(match_operand:<ssehalfvecmode> 1 "nonimmediate_operand" "xm,x")] UNSPEC_CAST))] - "TARGET_AVX" + "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(set (match_dup 0) (match_dup 1))] @@ -19506,7 +19506,7 @@ (unspec:AVX512MODE2P [(match_operand:<ssequartermode> 1 "nonimmediate_operand" "xm,x")] UNSPEC_CAST))] - "TARGET_AVX512F" + "TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(set (match_dup 0) (match_dup 1))] @@ -19523,7 +19523,7 @@ (unspec:AVX512MODE2P [(match_operand:<ssehalfvecmode> 1 "nonimmediate_operand" "xm,x")] UNSPEC_CAST))] - "TARGET_AVX512F" + "TARGET_AVX512F && !(MEM_P (operands[0]) && MEM_P (operands[1]))" "#" "&& reload_completed" [(set (match_dup 0) (match_dup 1))] |