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