https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118280
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So Microblaze backend has only atomic_compare_and_swapsi but that in theory could be used to implement smaller size atomics. Plus microblaze ISA has LWX/SWX (which is like LL/SC on MIPS), so that can be used to implement a few other atomics. Why the backend never fully implemented all of the atomics is unknown to me. Looks like it was added right after __atomics were finalized but originally was only implemented using the __sync optabs. https://gcc.gnu.org/pipermail/gcc-patches/2013-March/359295.html https://gcc.gnu.org/pipermail/gcc-patches/2013-July/365984.html And nobody afterwards did anything for the last 11 years to improve the situtation.