https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117148
--- Comment #2 from LIU Hao <lh_mouse at 126 dot com> --- Oh, the sample code contained a typo: *(intptr_t*) out = ival; should be *(intptr_t*) out = icmp; However it doesn't affect the bug. (https://godbolt.org/z/fdxbbadnj) It's because GCC fail to inline `atomic_load_iptr`. Forcing that function to be inlined with `always_inline` seems a workaround.