https://gcc.gnu.org/g:7ebc766bdbc8584699acb3f8fd30b2c393923c06
commit r17-1998-g7ebc766bdbc8584699acb3f8fd30b2c393923c06 Author: Jakub Jelinek <[email protected]> Date: Tue Jun 30 09:27:43 2026 +0200 i386: Remove identical branches in avx512vl_<code><mode>v4hi2_mask_store_1 [PR126030] Before r13-1355 PR106095 fix, this pattern used to be { if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 4) return "vpmov<trunsuffix><pmov_suff_4>\t{%1, %0%{%2%}|%0%{%2%}, %t1}"; return "vpmov<trunsuffix><pmov_suff_4>\t{%1, %0%{%2%}|%0%{%2%}, %g1}"; } so depending on the iterator it used t vs. g override in -masm=intel. That was incorrect and since then both branches are the same, so there is no point to test anything, we can just use the same pattern unconditionally. 2026-06-30 Jakub Jelinek <[email protected]> PR target/126030 * config/i386/sse.md (avx512vl_<code><mode>v4hi2_mask_store_1): Use a single output pattern instead of conditionally returning the same string based on a condition. Diff: --- gcc/config/i386/sse.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 65eff9a64082..7f652a13c87d 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -16221,11 +16221,7 @@ (match_dup 0) (match_operand:QI 2 "register_operand" "Yk")))] "TARGET_AVX512VL" -{ - if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 4) - return "vpmov<trunsuffix><pmov_suff_4>\t{%1, %0%{%2%}|%0%{%2%}, %1}"; - return "vpmov<trunsuffix><pmov_suff_4>\t{%1, %0%{%2%}|%0%{%2%}, %1}"; -} + "vpmov<trunsuffix><pmov_suff_4>\t{%1, %0%{%2%}|%0%{%2%}, %1}" [(set_attr "type" "ssemov") (set_attr "memory" "store") (set_attr "prefix" "evex")
