Start migrating to a form that will be compatible with the global isel
emitter. Also should fix some overly lax checks on the memory type,
which allowed mis-selecting some illegal atomics.
I'm not sure I can follow all the consequences of this change, but as for tablegen usage it looks good.
LGTM, but please add more comment about cmpswap before sumbitting.
You need to add a little bit more of a comment here.