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

Roger Sayle <roger at nextmovesoftware dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-12-29
     Ever confirmed|0                           |1
           Keywords|error-recovery,             |ice-on-valid-code
                   |ice-on-invalid-code         |
             Status|UNCONFIRMED                 |NEW
                 CC|                            |roger at nextmovesoftware dot 
com

--- Comment #1 from Roger Sayle <roger at nextmovesoftware dot com> ---
A slight variation on the original, reveals that this issue is slightly more
serious than it first appears.

void f4() {
  int a;
  register int __attribute__((vector_size(16))) b __asm("xmm1");
  b[a] = a;
  asm("" : "+v"(b));
}

ICEs without issuing any error/warning at -O2 (so not an error recovery issue),
but also compiles fine if "-mavx2" is specified (so is valid for some
architectures).  This is related to PR middle-end/80162, indeed the test case
testsuite/c-c++-common/pr80162-2.c ICEs if compiled without -mavx2.

Variable index addressing of a vector register can be implemented, without
hardware support, by spilling the register to memory, but the problematic
assert insist that this ARRAY_REF is indexed by a CONST_INT.

Reply via email to