https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108129
--- Comment #4 from Hongtao.liu <crazylht at gmail dot com> --- We may merge ATOMIC_XXX_N with SYNC_XXX_N if the "?" can be extent to optional operand. The only difference between them is ATOMIC_XXX_N has one more parameter, and it's not used by the pattern match. Currently "?" only support optional unary operation. *** The support for ? marking extends to all unary operations including predicates you declare yourself with match.***