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")

Reply via email to