https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107212
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Summary|-O2 and -O3 optimizer bug |[11/12/13 Regression] Wrong
| |vectorizer code since
| |r11-718-gc735929a2503a7d0
CC| |marxin at gcc dot gnu.org,
| |rguenth at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Component|c |tree-optimization
Target Milestone|--- |11.5
Keywords| |wrong-code
Last reconfirmed| |2022-10-11
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
A bit reduced test-case:
$ cat pr107212.c
int main() {
unsigned int tab[6][2] = { {69, 73}, {36, 40}, {24, 16}, {16, 11}, {4, 5},
{3, 1} };
int flag = 1;
int sum_0 = 0;
int sum_1 = 0;
for(int t=0; t<6; t++) {
sum_0 += tab[t][0];
sum_1 += tab[t][1];
}
int x1 = (sum_0 < 100);
int x2 = (sum_0 > 200);
int x3 = (x1 || x2);
if(sum_1 > 200) {
flag=0;
}
__builtin_printf("sum_1: %d\n", sum_1);
if (x1 || x2)
__builtin_abort ();
return 0;
}
With -O3 it started with r11-718-gc735929a2503a7d0.