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

            Bug ID: 99792
           Summary: MVE: Assemble failure with "branch out of range" at
                    -O3
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: acoplan at gcc dot gnu.org
  Target Milestone: ---

The following fails:

$ cat test.c
short a[2][19][6][844];
char b[2][19][40];
long long c[2][722];
void d() {
  for (int e; e < 2; ++e)
    for (int f = 0; f < 19; ++f)
      for (int g = 0; g < 6; ++g)
        for (int h = 0; h < 11; ++h)
          for (int i = 0; i < 3; ++i)
            a[e][f][g][h + i] = 0;
  for (int e = 0; e < 2; ++e)
    for (int f = 0; f < 19; ++f)
      for (int g = 0; g < 6; ++g)
        for (int h = 0; h < 3; ++h)
          b[e][f][g * 6 + h] = 3;
  for (int e = 0; e < 2; ++e)
    for (int f = 0; f < 9; ++f)
      for (int g = 0; g < 26; ++g)
        for (int h = 0; h < 13; ++h)
          c[e][f * 9 + g + h] = 90719611319;
}
$ arm-eabi-gcc -c test.c -march=armv8.1-m.main+mve -mfloat-abi=hard -O3
-mtune=cortex-a72
/tmp/ccaAJzi3.s: Assembler messages:
/tmp/ccaAJzi3.s:104: Error: branch out of range

Obviously the choice of scheduling is questionable given the choice of -march,
but we shouldn't generate out-of-range branches in any case.

Reply via email to