diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2012-05-13 19:17:30 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2012-05-13 19:17:30 +0200 |
commit | daa5129526e2bc12add2253ed76d8bc06e15712c (patch) | |
tree | dd67504011bf44d5fe5958fb0b501fd939187c06 | |
parent | b8dd089424921cc5b96d3a96b5dc359266bdfc65 (diff) | |
download | gcc-daa5129526e2bc12add2253ed76d8bc06e15712c.zip gcc-daa5129526e2bc12add2253ed76d8bc06e15712c.tar.gz gcc-daa5129526e2bc12add2253ed76d8bc06e15712c.tar.bz2 |
* config/i386/sse.md: The other part of my previous commit.
From-SVN: r187440
-rw-r--r-- | gcc/config/i386/sse.md | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 151e651..70cced4 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -6729,13 +6729,20 @@ (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") @@ -6804,13 +6811,20 @@ (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>")))]) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; |