https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126601
Bug ID: 126601
Summary: [17 Regression] ICE in match_arith_overflow with
widen-mul
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ktkachov at gcc dot gnu.org
Target Milestone: ---
typedef unsigned int u32;
volatile int c[8];
__attribute__((noipa)) int f (u32 x, u32 y)
{
u32 r = x * y;
int t = 0;
if (c[0]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
if (c[1]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
if (c[2]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
if (c[3]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
if (c[4]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
if (c[5]) { int u = 0; if (x != 0) u = (r / x != y); t += u; }
return t;
}
ICEs on aarch64 at -Os
during GIMPLE pass: widening_mul
<source>: In function 'f':
<source>:4:28: internal compiler error: in quick_push, at vec.h:1050
4 | __attribute__((noipa)) int f (u32 x, u32 y)
|