https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118067

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Created attachment 59935
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59935&action=edit
Target-dependant patch

SImode and DImode moves involving mask registers are valid only with AVX512BW,
so mark relevant alternatives in *movsi_internal and *movdi_internal as such.

Even with the patch, the testcase still fails, but now with:

pr118067.c: In function ‘foo’:
pr118067.c:13:1: internal compiler error: maximum number of generated reload
insns per insn achieved (90)
   13 | }
      | ^
0x2c3b581 internal_error(char const*, ...)
        ../../git/gcc/gcc/diagnostic-global-context.cc:517
0xb68938 lra_constraints(bool)
        ../../git/gcc/gcc/lra-constraints.cc:5411
0xb51a0d lra(_IO_FILE*, int)
        ../../git/gcc/gcc/lra.cc:2449
0xaf9f4d do_reload
        ../../git/gcc/gcc/ira.cc:5977
0xafa462 execute
        ../../git/gcc/gcc/ira.cc:6165

which is now suspiciously close (or even duplicate of) PR118017.

So, keep the PR as RA problem.

Reply via email to