[AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer…

Authored by LemonBoy on May 28 2021, 11:50 PM.


[AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones

Follow the same strategy used for atomic loads/stores by converting the operands to equally-sized integer types.
This change prevents the atomic expansion pass from generating illegal LL/SC pairs when targeting AArch64: expand-atomicrmw-xchg-fp.ll would previously instantiate intrinsics such as llvm.aarch64.ldaxr.p0f32 that cannot be lowered.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D103232