https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98737
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The sub fix won't be the same as would add, perhaps xor/or/and can be handled by the same peephole2, but even for that I'm not sure. Though e.g. trying __atomic_or_fetch (&a, b, ...) == 0 doesn't seem to be something people would use.