From: Uros Bizjak Date: Fri, 7 Jan 2022 19:40:35 +0000 (+0100) Subject: i386: Robustify V2QI and V4QI move patterns X-Git-Tag: basepoints/gcc-13~1940 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42ae7ebfb2665f8565c8d6c04f6214785a6765ce;p=thirdparty%2Fgcc.git i386: Robustify V2QI and V4QI move patterns Add sse2 isa attribute where needed and remove where not needed. 2022-01-07 Uroš Bizjak gcc/ChangeLog: * config/i386/mmx.md (*move_internal): Add isa attribute. (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5. --- diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index 8e0a6490b7ba..4fc3e00f100d 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 == V2HFmode")) + (ior (match_test "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")