https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103037
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-11-02 Summary|[11/12 Regression] Wrong |[11/12 Regression] Wrong |code with -O2 |code with -O2 since | |r11-6100-gd41b097350d3c5d0 CC| |jakub at gcc dot gnu.org, | |marxin at gcc dot gnu.org Target Milestone|--- |11.3 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed, started with r11-6100-gd41b097350d3c5d0. A bit reduced: short var_3 = 2; unsigned char var_9 = 23; unsigned short var_11; unsigned short arr_4 [23]; void test() __attribute__((noipa)); const unsigned short &min(unsigned short &d, const unsigned short &e) { return e < d ? e : d; } void test() { for (int a = 0; a < var_9; a += 3) var_11 = min(arr_4[a], 1) / (arr_4[a] ? arr_4[a] : var_3); } int main() { for (unsigned long i_0 = 0; i_0 < 23; ++i_0) arr_4 [i_0] = 2; test(); __builtin_printf("%hu\n", var_11); if (var_11 != 0) __builtin_abort(); return 0; }