Cannot select AtomicSwap
Noticed while porting the CHERI-Generic tests to Morello:
LLVM ERROR: Cannot select: t5: iFATPTR128,ch = AtomicSwap<(load store monotonic 16 on %ir.ptr, addrspace 200)> t0, t2, t4
t2: iFATPTR128,ch = CopyFromReg t0, Register:iFATPTR128 %0
t1: iFATPTR128 = Register %0
t4: iFATPTR128,ch = CopyFromReg t0, Register:iFATPTR128 %1
t3: iFATPTR128 = Register %1
In function: atomic_cap_ptr_xchg_relaxed
define i32 addrspace(200)* @atomic_cap_ptr_xchg_relaxed(i32 addrspace(200)* addrspace(200)* %ptr, i32 addrspace(200)* %val) nounwind {
bb:
%tmp = atomicrmw xchg i32 addrspace(200)* addrspace(200)* %ptr, i32 addrspace(200)* %val monotonic
ret i32 addrspace(200)* %tmp
}
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information