https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112374
--- Comment #30 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is another reduced testcase: ``` struct t { long coef[1]; t(const unsigned long &a) : coef{a} {}; t(const t &a); }; extern void gen_int_mode(t, int); struct expand_vec_perm_d { unsigned char perm[64]; int vmode; unsigned char nelt; }; void expand_vec_perm_blend(struct expand_vec_perm_d *d) { unsigned long mask = 0; for (unsigned i = 0; i < 4; ++i) mask |= (d->perm[i] >= 4 ? 3 : 0) << (i * 2); gen_int_mode(mask, 0); } ``` The first difference between -g0 vs -g2 starts in curoll where ssa names are different.