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)
      |

Reply via email to