diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-05-06 21:35:15 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2014-05-06 21:35:15 +0100 |
commit | 659c0e684c883ab1ac7a5e8eb42c14bee47b3b4c (patch) | |
tree | 7d98a46bd049ba93af9b34f3b22248fa430ba280 | |
parent | 15ee1a774550df16aa47def1aa054b1b631ab47c (diff) | |
download | gcc-659c0e684c883ab1ac7a5e8eb42c14bee47b3b4c.zip gcc-659c0e684c883ab1ac7a5e8eb42c14bee47b3b4c.tar.gz gcc-659c0e684c883ab1ac7a5e8eb42c14bee47b3b4c.tar.bz2 |
* config/i386/sse.md (*mov<mode>_internal)
(*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
(*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
(<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
(*<code><mode>3, *andnot<mode>3<mask_name>)
(<mask_codefor><code><mode>3<mask_name>): Only consider
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
From-SVN: r210124
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 33 |
2 files changed, 30 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 00b1e5a..a0526f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-05-06 Joseph Myers <joseph@codesourcery.com> + + * config/i386/sse.md (*mov<mode>_internal) + (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>) + (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>) + (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3) + (*<code><mode>3, *andnot<mode>3<mask_name>) + (<mask_codefor><code><mode>3<mask_name>): Only consider + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16. + 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com> Revert: diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 72a4d6d..c91626b 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -758,11 +758,10 @@ [(set_attr "type" "sselog1,ssemov,ssemov") (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") - (const_string "<ssePSmode>") - (and (match_test "<MODE_SIZE> == 16") - (and (eq_attr "alternative" "2") - (match_test "TARGET_SSE_TYPELESS_STORES"))) + (cond [(and (match_test "<MODE_SIZE> == 16") + (ior (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (and (eq_attr "alternative" "2") + (match_test "TARGET_SSE_TYPELESS_STORES")))) (const_string "<ssePSmode>") (match_test "TARGET_AVX") (const_string "<sseinsnmode>") @@ -967,7 +966,8 @@ (set_attr "ssememalign" "8") (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX") (const_string "<MODE>") @@ -1089,7 +1089,8 @@ (const_string "1"))) (set_attr "prefix" "maybe_vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX") (const_string "<sseinsnmode>") @@ -2377,7 +2378,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,maybe_evex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX") (const_string "<MODE>") @@ -2449,7 +2451,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,maybe_evex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX") (const_string "<MODE>") @@ -2513,7 +2516,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "V4SF") (match_test "TARGET_AVX") (const_string "<ssevecmode>") @@ -2600,7 +2604,8 @@ (set_attr "type" "sselog") (set_attr "prefix" "orig,vex") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "V4SF") (match_test "TARGET_AVX") (const_string "<ssevecmode>") @@ -9047,7 +9052,8 @@ (const_string "*"))) (set_attr "prefix" "<mask_prefix3>") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX2") (const_string "<sseinsnmode>") @@ -9140,7 +9146,8 @@ (const_string "*"))) (set_attr "prefix" "<mask_prefix3>") (set (attr "mode") - (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL") + (cond [(and (match_test "<MODE_SIZE> == 16") + (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")) (const_string "<ssePSmode>") (match_test "TARGET_AVX2") (const_string "<sseinsnmode>") |