[Bug target/105197] New: [12 Regression] SVE: wrong code with -O -ftree-vectorize

acoplan at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 7 16:59:27 GMT 2022


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

            Bug ID: 105197
           Summary: [12 Regression] SVE: wrong code with -O
                    -ftree-vectorize
           Product: gcc
           Version: 12.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 C code:

unsigned char arr_7[9][3];
unsigned char (*main_arr_7)[3] = arr_7;
int main() {
  char arr_2[9];
  int arr_6[9];
  int x;
  unsigned i;
  for (i = 0; i < 9; ++i) {
    arr_2[i] = 21;
    arr_6[i] = 6;
  }
  for (i = arr_2[8] - 21; i < 2; i++)
    x = arr_6[i] ? (main_arr_7[8][i] ? main_arr_7[8][i] : 8) : (char)arr_6[i];
  if (x != 8)
    __builtin_abort ();
}

appears to be miscompiled with -march=armv8.2-a+sve -O -ftree-vectorize. The
issue doesn't seem to occur with GCC 11.


More information about the Gcc-bugs mailing list