https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109109
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I think I have finally a self-contained reproducer, -m32 -O2: struct S { char pad[44]; unsigned int id; }; __attribute__((noipa, regparm (2))) unsigned long long foo (struct S *p, unsigned int q) { return (((unsigned long long) p->id) << 32) | q; } int main () { struct S s = { {}, 0xcafebabeU }; if (foo (&s, 0xdeadbeefU) != 0xcafebabedeadbeefULL) __builtin_abort (); }