https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70814
--- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Earnshaw from comment #8) > (In reply to Andrew Pinski from comment #7) > > Closing as invalid. Though for v8.4 or so it would be nice if there was > > 128bit atomic loads. > > That probably wouldn't help. It would require a new ABI before you could > use them, since all code has to swap to that mechanism. Iff you could > guarantee that an application had exactly one instance of > __atomic_{load,store}_16 (ie that it isn't a private function in each DSO > component), then you *might* be able to re-implement those routines using > the new instructions, but otherwise you're stuck with the requirement to > retain backwards compatibility. On x86, they use ifuncs for this purpose inside libatomic. Basically the requirement is only one libatomic can be used at a time.