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;
}