diff options
author | kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-10-24 10:34:55 +0000 |
---|---|---|
committer | kyukhin <kyukhin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-10-24 10:34:55 +0000 |
commit | 7c5c4b3763e5f723ce1501fcd1b11a56c67e87b8 (patch) | |
tree | eece9293b9dd8e2ab723d02a536fef36aef24f27 | |
parent | 31cbcee1c0bdfb2a1a4aa5b5312388b73847a27b (diff) | |
download | gcc-7c5c4b3763e5f723ce1501fcd1b11a56c67e87b8.tar.gz |
Avoid 512-bit mode MOV for prefer-avx256 option in Intel AVX512 configuration
gcc/
* config/i386/i386.md(*movsf_internal, *movdf_internal):
Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254038 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 12 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f42428c57f2..82d69edfb0b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com> + + * config/i386/i386.md(*movsf_internal, *movdf_internal): + Avoid 512-bit AVX modes for TARGET_PREFER_AVX256. + 2017-10-24 Eric Botcazou <ebotcazou@adacore.com> PR middle-end/82569 diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 57d258298aa..d5792eb22a4 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -3575,8 +3575,10 @@ /* movaps is one byte shorter for non-AVX targets. */ (eq_attr "alternative" "13,17") - (cond [(ior (match_operand 0 "ext_sse_reg_operand") - (match_operand 1 "ext_sse_reg_operand")) + (cond [(and (ior (not (match_test "TARGET_PREFER_AVX256")) + (not (match_test "TARGET_AVX512VL"))) + (ior (match_operand 0 "ext_sse_reg_operand") + (match_operand 1 "ext_sse_reg_operand"))) (const_string "V8DF") (ior (not (match_test "TARGET_SSE2")) (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) @@ -3750,8 +3752,10 @@ better to maintain the whole registers in single format to avoid problems on using packed logical operations. */ (eq_attr "alternative" "6") - (cond [(ior (match_operand 0 "ext_sse_reg_operand") - (match_operand 1 "ext_sse_reg_operand")) + (cond [(and (ior (not (match_test "TARGET_PREFER_AVX256")) + (not (match_test "TARGET_AVX512VL"))) + (ior (match_operand 0 "ext_sse_reg_operand") + (match_operand 1 "ext_sse_reg_operand"))) (const_string "V16SF") (ior (match_test "TARGET_SSE_PARTIAL_REG_DEPENDENCY") (match_test "TARGET_SSE_SPLIT_REGS")) |