https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111338
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Slightly cleaned up, still -O1: _BitInt(575) e; int main () { __atomic_fetch_and (&e, 1, __ATOMIC_RELAXED); } (otherwise you'd want the wb suffix on the large constant to avoid warning). Or even _BitInt(575) e; _BitInt(575) foo (void) { return e & 1; } The problem is that push_partial_def uses a fixed size 512-bit buffer, for larger stuff it fails and my PR93582 patch assumed it doesn't fail.