]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Disable SImode/DImode moves from/to mask regs without avx512bw [PR118067]
authorUros Bizjak <ubizjak@gmail.com>
Mon, 20 Jan 2025 15:19:43 +0000 (16:19 +0100)
committerUros Bizjak <ubizjak@gmail.com>
Mon, 20 Jan 2025 15:19:43 +0000 (16:19 +0100)
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.

gcc/config/i386/i386.md

index 4142d7fec4d38d508c7b572840cbc92c26880423..911edddaec909f67b50d3a90d4ebe6ab5bf10a4a 100644 (file)
   [(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")
   [(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")