aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-05-06 21:35:15 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2014-05-06 21:35:15 +0100
commit659c0e684c883ab1ac7a5e8eb42c14bee47b3b4c (patch)
tree7d98a46bd049ba93af9b34f3b22248fa430ba280
parent15ee1a774550df16aa47def1aa054b1b631ab47c (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/config/i386/sse.md33
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>")