https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127036

--- Comment #1 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
Another reproducer likely for the same issue:

Compiler Explorer: https://godbolt.org/z/oKozzKPf9

Note:
- fails: 12.1 to trunk
- works: 11.5 and earlier

[778] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/home/suz/suz-local/software/local/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/17.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
--enable-sanitizers --enable-languages=c,c++,lto --disable-werror
--disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 17.0.0 20260823 (experimental) [master r17-1628-gd1c12591336] (GCC) 
[779] % 
[779] % gcctk -O2 -fno-vect-cost-model small.c
[780] % ./a.out
Aborted
[781] % cat small.c
int d[256];
float e, aa = 3.75f, ad, ae, p, af;
int q = -2147483648, z, ag, ah, ai, ao, ap, at, av = -2102679826, ay, az, ba,
bf,
    bl, bx, bz, ca = -81, cb, ce, ck, cm, co, cp = -247570656, cs, ct, cx, cy,
    cz, da, df, di, dm, or, uu_y22_34, prt0_0, prv5, prr, py25_11, urt1_0,
urv4,
    urr, uy32_13, uy33_8, uy33_9, ur__ao34, ur__ao36, ur__ao35;
double r, s, bb, bd, bg, bh, cd, ot1_0_0, urv0;
short t, u = -95, v, ak = -31, al, am, au, bc, bk, bp, by, cf, cn = -27154, cu,
         db, ot0_2_0, ot1_1 = -2636, prt0_1, urv3, ur_pld_0;
long w, bm, bn, bq, br, bs, bt,
    bu = -4, cl = -20, cv, dc, ov0 = -5846427903590135296, uu_z0_1, uu_z0_0,
    ov2, ov3, oa0_1_1 = -1, oa0_0_1 = -35, prv2 = -61, urt0_1_2 = -202,
    urt0_1_1 = -733838346623117492, urt0_1_0 = -11, uy33_5;
int *x, *y, *ar, *dh, *prp1, *urp1;
char an, bo, cg, ch, ci, cj = -127, dd, de = 1, dj, dk, dl, x_r_pld_0,
                         x_r_pld_1, prv0, prv1, prv3, pr_pld_0, urt0_0 = -37,
                         urv2, ura0_2_2 = -17, ura0_2_1 = -122, ura0_1_2 = -68,
                         ura0_1_1 = -42, ura0_0_2 = -37, ura0_0_0 = -77;
short *aq, *bv, *cr, *urp0;
short **as, **bw, **urpp1;
double *be;
float *cq;
char *dg, *dn, *x_rp1;
char *prp0;
int **prpp0;
char **prpp1;
int a(int p1, int p2) {
  for (int f = 0; f < 256; ++f) {
    unsigned c = f;
    for (int g = 0; g < 8; ++g)
      c = c & 1 ? c >> 1 ^ 3988292384 : c >> 1;
    d[f] = c;
  }
  unsigned h = p1;
  int i = p2;
  for (int b = 0; b < 4; ++b) {
    char ab = i;
    i >>= 8;
    h = h >> 8 ^ d[(h ^ ab) & 255];
  }
  return h;
}
void j(int p1, int p2) {
  if (p1 != p2)
    __builtin_abort();
}
int k(char, long, int, char, short);
int l(char, short);
int m(int, char, long, long, long, short);
int n(char, int, long, long);
int o(char, char, short, short, float);
int ac(int p1, short p2, float p3, float p4, short p5, float p6) {
aj:
  x = y = &q;
  s = -1 + (double)q;
  q = *x + 2147483647;
  if (p5 < (30 << p1) - q)
    goto aj;
  q = p1;
  *x = ~q;
  t = -p2 + 32768;
  w = -10 + (0 <= 0 ? -69576436035974 : 104542398066085) - -8;
  v = 32767 - 13 * p5;
  r = -1 - 8.0;
  e = -1 + p2;
  z = a(0, e);
  z = a(z, q);
  z = a(z, 0);
  z = a(z, r);
  z = a(z, s);
  z = a(z, 0);
  z = a(z, 0);
  z = a(z, p2);
  z = a(z, (long)((unsigned long)t << 48) >> 48);
  z = a(z, 191);
  z = a(z, v);
  z = a(z, (long)((unsigned long)u << 48) >> 48);
  z = a(z, w);
  z = a(z, p1);
  z = a(z, p2);
  z = a(z, p3);
  z = a(z, p4);
  z = a(z, p5);
  z = a(z, p6);
  z = a(z, *x);
  z = a(z, *y);
  return z;
}
int aw(long p1, char p2, long p3, int p4, char p5) {
  int ax = -95;
  do {
    ar = &ax;
    *ar = 5980065 - ax;
    ah = 776863745;
    as = &aq;
    am = 32768 + ax;
    ax = 3555328 - (*ar - 4325376);
  } while (ax < 3801093);
  ag = -ah;
  *as = &al;
  ah = -2 * ag;
  ax = 7870959 - 6799361 - ag;
  *aq = 32706 + am;
  ag = -ah - (2147483644 ^ ah) - -15728647;
  an = 127 + 115 * p5 - 112;
  ai = a(0, (long)((unsigned long)32768 << 48) >> 48);
  ai = a(ai, (long)((unsigned long)ak << 48) >> 48);
  ai = a(ai, 105);
  ai = a(ai, 206);
  ai = a(ai, al);
  ai = a(ai, (unsigned long)ax << 40 >> 40);
  ai = a(ai, (long)((unsigned long)am << 48) >> 48);
  ai = a(ai, (long)((unsigned long)an << 56) >> 56);
  ai = a(ai, ag);
  ai = a(ai, ah);
  ai = a(ai, p1);
  ai = a(ai, p2);
  ai = a(ai, p3);
  ai = a(ai, p4);
  ai = a(ai, p5);
  au = *aq;
  ai = a(ai, au);
  ao = *ar;
  ai = a(ai, (unsigned long)ao << 40 >> 40);
  return ai;
}
int bi(short p1, long p2, long p3, float p4, int p5) {
  at = -183;
  int bj = -19;
  be = &bb;
  while (1) {
    bb = 4 - 8.0 * bd;
    if ((-905832327 ^ bj) + 628121 > (-973465480 ^ bj)) {
      bd = -0.25 * bb - 3.75 * bb;
      *be = -3.0 + p5;
      bc = -108 + 1;
      break;
    }
    bd = 0.375 + bj;
    bj = -33582328;
    ap = 7 * bj;
  }
  ay = a(0, av);
  ay = a(ay, 0);
  ay = a(ay, 2147483647);
  ay = a(ay, at);
  ay = a(ay, 0);
  ay = a(ay, 143);
  ay = a(ay, 186);
  ay = a(ay, ap);
  ay = a(ay, 1);
  ay = a(ay, 1.0f);
  ay = a(ay, bb);
  ay = a(ay, 32767);
  ay = a(ay, 15141);
  ay = a(ay, (long)((unsigned long)bc << 52) >> 52);
  ay = a(ay, bd);
  ay = a(ay, bj);
  ay = a(ay, (long)((unsigned long)p1 << 48) >> 48);
  ay = a(ay, p2);
  ay = a(ay, 0);
  ay = a(ay, p3);
  ay = a(ay, p4);
  ay = a(ay, p5);
  bg = *be;
  ay = a(ay, bg);
  bh = *be;
  ay = a(ay, bh);
  return ay;
}
int cc(long p1, short p2) {
  bt = -188;
  bs = -144;
  br = -2383733065564603422;
  bq = -83;
  bw = &bv;
  az = -536870912;
  bk = p2 - -242;
  *bw = &bp;
  bn = 1985573282 + ((long)((unsigned long)bk << 48) >> 48);
  bm = -1610612736 - az;
  bo = -127;
  bk = 32767 + p2;
  bp = bk + 32767;
  ba = a(0, bk);
  ba = a(ba, 0);
  ba = a(ba, bn);
  ba = a(ba, bm);
  ba = a(ba, (long)((unsigned long)bo << 56) >> 56);
  ba = a(ba, bp);
  ba = a(ba, bu);
  ba = a(ba, bt);
  ba = a(ba, -1107569988);
  ba = a(ba, bs);
  ba = a(ba, br);
  ba = a(ba, bq);
  ba = a(ba, 226);
  ba = a(ba, 17);
  ba = a(ba, 0);
  ba = a(ba, p1);
  ba = a(ba, (long)((unsigned long)p2 << 48) >> 48) ^ 510675761;
  bf = ba & 510675761;
  bl = ~bf;
  bx = ba | 510675761;
  ba = bx & bl;
  ba = a(ba, 0);
  ba = a(ba, 0);
  by = *bv;
  ba = a(ba, by);
  ba = a(ba, bp);
  return ba;
}
int cw(double p1, char p2, short p3, long p4, char p5) {
  ci = -54;
  ch = -127;
  cq = &aa;
  cr = &cf;
  cf = 2047 + ca;
  ca = 524287 - cf;
  cb = -1074788417 + 1074790381 - cf;
  cg = p2 - p5;
  bz = cb - 1048578 * cb;
  cv = aa;
  cb = k(42 - 44, cv - 4, -125, -1, 32703) - 1821740843;
  cd = -74416864 + cb;
  *cq = 7 + 3.75f * aa;
  ad = cb - 2129921;
  ce = a(0, cd);
  ce = a(ce, bz);
  ce = a(ce, cf);
  ce = a(ce, (long)((unsigned long)cj << 56) >> 56);
  ce = a(ce, 127);
  ce = a(ce, cg);
  ce = a(ce, (long)((unsigned long)ci << 56) >> 56);
  ce = a(ce, 42);
  ce = a(ce, 46);
  ce = a(ce, 122);
  ce = a(ce, (long)((unsigned long)ch << 56) >> 56);
  ce = a(ce, ca);
  ce = a(ce, cl);
  ce = a(ce, aa);
  ce = a(ce, 164);
  ce = a(ce, ad);
  ce = a(ce, (long)((unsigned long)cn << 48) >> 48);
  ce = a(ce, cb);
  ce = a(ce, p1);
  ce = a(ce, (long)((unsigned long)p2 << 56) >> 56);
  ce = a(ce, 0);
  ce = a(ce, p3);
  ce = a(ce, p4);
  ce = a(ce, (long)((unsigned long)p5 << 56) >> 56);
  ce = a(ce, 0);
  ae = *cq;
  ce = a(ce, ae);
  cu = *cr;
  ce = a(ce, cu);
  return ce;
}
int k(char p1, long p2, int p3, char p4, short p5) {
  co = -1741569516;
  cm = -51;
  dg = &de;
  dh = &cs;
  ck = 13 - 1048577 + 2147483647 % 163;
  while (1) {
    de = 127 + de;
    db = -1 - 32767 + p5;
    dd = p1 - 126 + 127;
    dc = p2 - -63;
    if (0 < de)
      break;
    *dg = dd - 1;
  }
  cs = l(dd - 16, 88) - 26465060;
  ct = a(0, 54);
  ct = a(ct, cp);
  ct = a(ct, co);
  ct = a(ct, cm);
  ct = a(ct, ck);
  ct = a(ct, (long)((unsigned long)db << 48) >> 48);
  ct = a(ct, dc);
  ct = a(ct, dd);
  ct = a(ct, de);
  ct = a(ct, cs);
  ct = a(ct, (long)((unsigned long)p1 << 56) >> 56);
  ct = a(ct, p2);
  ct = a(ct, (long)((unsigned long)p3 << 44) >> 44);
  ct = a(ct, p4);
  ct = a(ct, p5);
  dj = *dg;
  ct = a(ct, dj);
  ct = a(ct, *dh);
  return ct;
}
int l(char p1, short p2) {
  dn = x_rp1 = &dk;
  dl = -111 - ~p1;
rb1:
  df = cc(4294967295, -32768) + 1251988188;
  cx = n(111, 851, -2403051615, 7243264503) + df;
  *dn = p1 - 12 * dk;
  if (0 >= dk)
    goto rb1;
  da = ai + 1157601396;
  cz = m(5455620, 40, -5846427904153485374, 4611704165368840282, 1, 18368) +
da;
  cy = cz;
  cy = a(cy, dk);
  cy = a(cy, 0);
  cy = a(cy, (long)((unsigned long)dl << 56) >> 56);
  cy = a(cy, cx);
  cy = a(cy, 0);
  cy = a(cy, 0);
  cy = a(cy, 0);
  cy = a(cy, (long)((unsigned long)p1 << 56) >> 56);
  cy = a(cy, p2);
  cy = a(cy, 0);
  x_r_pld_0 = *dn;
  cy = a(cy, x_r_pld_0);
  x_r_pld_1 = *x_rp1;
  cy = a(cy, x_r_pld_1);
  return cy;
}
int m(int p1, char p2, long p3, long p4, long p5, short p6) {
  ov3 = 490848161 - p5;
  di = -569641472 + ov0;
  uu_z0_0 = -108515076 - ov0;
  ot0_2_0 = p6 - 30196 - 11824;
  p = di - 3.0f;
  uu_z0_1 = p4 - ov3;
  af = 2.0f * p + (p3 ? p : 1.125f);
  ov3 = 1561645065 - p5;
  ot1_0_0 = p5 + 1023;
  p = p5 - 5898240;
  di = ac(12, -1, -1.75f, -536870912.0f, p6 - 16080, -1.75f) + 1375344105;
  uu_y22_34 = n(111, 851, -2403051615, 7243264503) + 2077153014;
  dm = uu_y22_34 + di;
  ov2 = -1744945241 + p4 - -78334;
  or = a(0, ov0);
  or = a(or, p);
  or = a(or, uu_z0_0);
  or = a(or, uu_z0_1);
  or = a(or, ov2);
  or = a(or, 8.0);
  or = a(or, p5);
  or = a(or, af);
  or = a(or, (long)((unsigned long)ot0_2_0 << 48) >> 48);
  or = a(or, ov3);
  or = a(or, 43);
  or = a(or, oa0_0_1);
  or = a(or, -1948669795);
  or = a(or, oa0_1_1);
  or = a(or, di);
  or = a(or, ot1_0_0);
  or = a(or, (long)((unsigned long)ot1_1 << 48) >> 48);
  or = a(or, dm);
  or = a(or, p1);
  or = a(or, 0);
  or = a(or, p2);
  or = a(or, p3);
  or = a(or, p4);
  or = a(or, p5);
  or = a(or, p6);
  or = a(or, oa0_0_1);
  or = a(or, ov0);
  return or ;
}
int n(char p1, int p2, long p3, long p4) {
  prpp0 = &prp1;
  prpp1 = &prp0;
  prv0 = -1;
  prt0_1 = 32767 + prv0;
rb8:
  prt0_0 = 304555965 % p2 - ((long)((unsigned long)prv0 << 56) >> 56);
  *prpp0 = &prt0_0;
  prv5 = 31430061 % p2 - (p3 ? 1073741904 : 40345096) + 532941307;
  prv1 = 127 - -10 * prv0;
  *prpp1 = &prv0;
  prv3 = prv1 - prv0;
  if (prv1 - (56 - 2 - 4 - *prp0)) {
    prv0 = -7;
    goto rb8;
  }
  py25_11 = o(-21, 91, 1324, prt0_1 - 30702, -536870912.0f) - 327811360;
  prr = a(0, (long)((unsigned long)prv0 << 56) >> 56);
  prr = a(prr, prv1);
  prr = a(prr, prv2);
  prr = a(prr, prv3);
  prr = a(prr, prt0_0);
  prr = a(prr, prt0_1);
  prr = a(prr, p4);
  prr = a(prr, prv5);
  prr = a(prr, p1);
  prr = a(prr, py25_11);
  prr = a(prr, p3);
  prr = a(prr, 0);
  prr = a(prr, p4);
  pr_pld_0 = *prp0;
  prr = a(prr, (long)((unsigned long)pr_pld_0 << 56) >> 56);
  prr = a(prr, *prp1);
  return prr;
}
int o(char p1, char p2, short p3, short p4, float p5) {
  short rv1 = -67;
  urp1 = &urv4;
  urpp1 = &urp0;
  urv3 = 3108 - 11 * rv1;
  urp0 = &urv3;
  urv4 = p2 ^ 1923658781;
  ur__ao34 = urv4 & 1923658781;
  ur__ao35 = ~ur__ao34;
  ur__ao36 = urv4 | 1923658781;
  urv4 = ur__ao36 & ur__ao35;
  rv1 = 32768 + *urp0;
  urv2 = 83 - 127 + p1;
  urt1_0 = -18052 + 510317 - ((long)((unsigned long)urv2 << 56) >> 56);
  uy33_5 = p5;
  uy33_8 = *urp1;
  uy33_9 = bi(-14356, 202225647, uy33_5 - 3364224992, -939523904.0f,
              uy33_8 + 1342701477) +
           1044648798;
  uy32_13 = aw(3959294717, -1, 1.0 + 4294967294, -1, ura0_0_0 + 76) + uy33_9;
  urv3 = rv1 + 32767 - 2 * p4;
  urv2 = 127 + ~p2;
  *urpp1 = &rv1;
  urv4 = uy32_13 + ((long)((unsigned long)rv1 << 48) >> 48);
  rv1 = urv3 - 105 * urv3;
  urv3 = (rv1 + p3) ^ 6717;
  urv0 = urv4;
  urv3 = urv3 ^ 6717;
  *urp1 = p3;
  urr = a(0, urv0);
  urr = a(urr, (long)((unsigned long)urt0_0 << 56) >> 56);
  urr = a(urr, urt0_1_0);
  urr = a(urr, urt0_1_1);
  urr = a(urr, urt0_1_2);
  urr = a(urr, urt1_0);
  urr = a(urr, rv1);
  urr = a(urr, urv2);
  urr = a(urr, (long)((unsigned long)ura0_0_0 << 56) >> 56);
  urr = a(urr, 15);
  urr = a(urr, (long)((unsigned long)ura0_0_2 << 56) >> 56);
  urr = a(urr, 76);
  urr = a(urr, (long)((unsigned long)ura0_1_1 << 56) >> 56);
  urr = a(urr, (long)((unsigned long)ura0_1_2 << 56) >> 56);
  urr = a(urr, 94);
  urr = a(urr, (long)((unsigned long)ura0_2_1 << 56) >> 56);
  urr = a(urr, (long)((unsigned long)ura0_2_2 << 56) >> 56);
  urr = a(urr, urv3);
  urr = a(urr, urv4);
  urr = a(urr, (long)((unsigned long)p1 << 56) >> 56);
  urr = a(urr, 0);
  urr = a(urr, p2);
  urr = a(urr, p3);
  urr = a(urr, p4);
  urr = a(urr, p5);
  ur_pld_0 = *urp0;
  urr = a(urr, ur_pld_0);
  urr = a(urr, *urp1);
  return urr;
}
int main() {
  int rr = cw(-4.25, -7, 31818, -1, -126);
  j(-1443168909, rr);
}

Reply via email to