Hi!

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.

Bootstrapped/regtested on x86_64-linux and i686-linux, committed to
trunk as obvious.

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.

--- gcc/config/i386/sse.md.jj   2026-06-25 10:03:50.784436810 +0200
+++ gcc/config/i386/sse.md      2026-06-29 18:23:47.017042067 +0200
@@ -16204,11 +16204,7 @@ (define_insn "avx512vl_<code><mode>v4hi2
          (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")

        Jakub

Reply via email to