https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103184
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> --- Small testcase reprodce it. #include <stdatomic.h> int tbit0 (_Atomic int* a) { #define BIT (0x01 << 3) return atomic_fetch_or(a, BIT) & BIT; #undef BIT } aarch64-linux-gnu-gcc test.c -O2 -S test.c: In function ‘tbit0’: test.c:4:1: error: type mismatch in binary expression 4 | tbit0 (_Atomic int* a) | ^~~~~ int unsigned int int _7 = _1 & 8; during GIMPLE pass: fab test.c:4:1: internal compiler error: verify_gimple failed 0xf99c2d verify_gimple_in_cfg(function*, bool) /export/users2/liuhongt/gcc/intel-innersource/master/gcc/tree-cfg.c:5577 0xe618df execute_function_todo /export/users2/liuhongt/gcc/intel-innersource/master/gcc/passes.c:2042 0xe622cc execute_todo /export/users2/liuhongt/gcc/intel-innersource/master/gcc/passes.c:2096 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.