diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2022-01-07 20:40:35 +0100 |
---|---|---|
committer | Uros Bizjak <ubizjak@gmail.com> | 2022-01-07 20:41:30 +0100 |
commit | 42ae7ebfb2665f8565c8d6c04f6214785a6765ce (patch) | |
tree | e97714dd6fcc048ee22f7ac61f0a6668a5790664 /gcc/config/i386 | |
parent | a64478660ee95930773d356760e39e05fe0147fe (diff) | |
download | gcc-42ae7ebfb2665f8565c8d6c04f6214785a6765ce.zip gcc-42ae7ebfb2665f8565c8d6c04f6214785a6765ce.tar.gz gcc-42ae7ebfb2665f8565c8d6c04f6214785a6765ce.tar.bz2 |
i386: Robustify V2QI and V4QI move patterns
Add sse2 isa attribute where needed and remove where not needed.
2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
gcc/ChangeLog:
* config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
(*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
Diffstat (limited to 'gcc/config/i386')
-rw-r--r-- | gcc/config/i386/mmx.md | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index 8e0a649..4fc3e00 100644 --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -285,7 +285,12 @@ gcc_unreachable (); } } - [(set (attr "type") + [(set (attr "isa") + (cond [(eq_attr "alternative" "6,7") + (const_string "sse2") + ] + (const_string "*"))) + (set (attr "type") (cond [(eq_attr "alternative" "2") (const_string "sselog1") (eq_attr "alternative" "3,4,5,6,7") @@ -306,12 +311,15 @@ (const_string "V4SF") (match_test "TARGET_AVX") (const_string "TI") - (match_test "optimize_function_for_size_p (cfun)") + (ior (not (match_test "TARGET_SSE2")) + (match_test "optimize_function_for_size_p (cfun)")) (const_string "V4SF") ] (const_string "TI")) + (and (eq_attr "alternative" "4,5") - (match_test "<MODE>mode == V2HFmode")) + (ior (match_test "<MODE>mode == V2HFmode") + (not (match_test "TARGET_SSE2")))) (const_string "SF") ] (const_string "SI"))) @@ -401,7 +409,7 @@ } } [(set (attr "isa") - (cond [(eq_attr "alternative" "4,5,6,8,9") + (cond [(eq_attr "alternative" "6,8,9") (const_string "sse2") (eq_attr "alternative" "7") (const_string "sse4") |