https://gcc.gnu.org/g:9a1efd1ee2509abb93878bd911d8c07143b10e33

commit r12-10920-g9a1efd1ee2509abb93878bd911d8c07143b10e33
Author: Uros Bizjak <ubiz...@gmail.com>
Date:   Mon Jan 20 16:19:43 2025 +0100

    i386: Disable SImode/DImode moves from/to mask regs without avx512bw 
[PR118067]
    
    SImode and DImode moves from/to mask registers are valid only with AVX512BW,
    so mark relevant alternatives in *movsi_internal and *movdi_internal as 
such.
    
            PR target/118067
    
    gcc/ChangeLog:
    
            * config/i386/i386.md (*movdi_internal):
            Disable alternatives from/to mask registers without AVX512BW.
            (*movsi_internal): Ditto.

Diff:
---
 gcc/config/i386/i386.md | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 4142d7fec4d3..911edddaec90 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -2251,12 +2251,16 @@
   [(set (attr "isa")
      (cond [(eq_attr "alternative" "0,1,17,18")
              (const_string "nox64")
-           (eq_attr "alternative" "2,3,4,5,10,11,23,25")
+           (eq_attr "alternative" "2,3,4,5,10,11")
              (const_string "x64")
            (eq_attr "alternative" "19,20")
              (const_string "x64_sse2")
            (eq_attr "alternative" "21,22")
              (const_string "sse2")
+           (eq_attr "alternative" "23,25")
+             (const_string "x64_avx512bw")
+           (eq_attr "alternative" "24,26,27")
+             (const_string "avx512bw")
           ]
           (const_string "*")))
    (set (attr "type")
@@ -2467,6 +2471,8 @@
   [(set (attr "isa")
      (cond [(eq_attr "alternative" "12,13")
              (const_string "sse2")
+           (eq_attr "alternative" "14,15,16,17")
+             (const_string "avx512bw")
           ]
           (const_string "*")))
    (set (attr "type")

Reply via email to