]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/i386/sse.md (*mov<mode>_internal)
authorJoseph Myers <joseph@codesourcery.com>
Tue, 6 May 2014 20:35:15 +0000 (21:35 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 6 May 2014 20:35:15 +0000 (21:35 +0100)
(*<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

gcc/ChangeLog
gcc/config/i386/sse.md

index 00b1e5ad16aaccb516b5c2a8cf5fe1c90fe13456..a0526f211b55d604dae570969435d36fa0348c69 100644 (file)
@@ -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:
index 72a4d6d0788124060d324aac3cdac6b7a82e46fe..c91626bac196a3493e04cd6cd06cd9b97e8fee50 100644 (file)
   [(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>")
    (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>")
      (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>")
    (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>")
    (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>")
    (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>")
    (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>")
        (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>")
        (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>")