]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* config/i386/sse.md: The other part of my previous commit.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 May 2012 17:17:30 +0000 (17:17 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 13 May 2012 17:17:30 +0000 (17:17 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187440 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/i386/sse.md

index 151e651433e7c136fd2d0f855d241db93390f862..70cced4ca7ca84e933d9273fa68c2286d2c8bf0b 100644 (file)
        (const_string "*")))
    (set_attr "prefix" "orig,vex")
    (set (attr "mode")
-     (cond [(and (not (match_test "TARGET_AVX2"))
-                (match_test "GET_MODE_SIZE (<MODE>mode) > 16"))
-             (const_string "V8SF")
-           (not (match_test "TARGET_SSE2"))
-             (const_string "V4SF")
-          ]
-          (const_string "<sseinsnmode>")))])
+       (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
+                (const_string "<ssePSmode>")
+              (match_test "TARGET_AVX2")
+                (const_string "<sseinsnmode>")
+              (match_test "TARGET_AVX")
+                (if_then_else
+                  (match_test "GET_MODE_SIZE (<MODE>mode) > 16")
+                  (const_string "V8SF")
+                  (const_string "<sseinsnmode>"))
+              (ior (not (match_test "TARGET_SSE2"))
+                   (match_test "optimize_function_for_size_p (cfun)"))
+                (const_string "V4SF")
+             ]
+             (const_string "<sseinsnmode>")))])
 
 (define_expand "<code><mode>3"
   [(set (match_operand:VI 0 "register_operand")
        (const_string "*")))
    (set_attr "prefix" "orig,vex")
    (set (attr "mode")
-     (cond [(and (not (match_test "TARGET_AVX2"))
-                (match_test "GET_MODE_SIZE (<MODE>mode) > 16"))
-             (const_string "V8SF")
-           (not (match_test "TARGET_SSE2"))
-             (const_string "V4SF")
-          ]
-          (const_string "<sseinsnmode>")))])
+       (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
+                (const_string "<ssePSmode>")
+              (match_test "TARGET_AVX2")
+                (const_string "<sseinsnmode>")
+              (match_test "TARGET_AVX")
+                (if_then_else
+                  (match_test "GET_MODE_SIZE (<MODE>mode) > 16")
+                  (const_string "V8SF")
+                  (const_string "<sseinsnmode>"))
+              (ior (not (match_test "TARGET_SSE2"))
+                   (match_test "optimize_function_for_size_p (cfun)"))
+                (const_string "V4SF")
+             ]
+             (const_string "<sseinsnmode>")))])
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;