* config/i386/sse.md (*mov<mode>_internal)
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 May 2014 20:35:15 +0000 (20:35 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 May 2014 20:35:15 +0000 (20:35 +0000)
(*<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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210124 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 00b1e5a..a0526f2 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 72a4d6d..c91626b 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>")