AArch64: support i128 cmpxchg in GlobalISel.
There are three essentially different cases to handle: * -O1, no LSE. The IR is expanded to ldxp/stxp and we need patterns to select them. * -O0, no LSE. We get G_ATOMIC_CMPXCHG, and need to produce CMP_SWAP_N pseudos. The registers are all 64-bit so this is easy. * LSE. We get G_ATOMIC_CMPXCHG and need to produce a CASP instruction with XSeqPair registers. The last case is by far the hardest, and and adds 128-bit GPR support as a byproduct.
Loading
Please sign in to comment