The arm64_32 ABI specifies that pointers (despite being 32-bits) should be zero-extended to 64-bits when passed in registers for efficiency reasons. This means that the SelectionDAG needs to be able to tell the backend that an argument was originally a pointer, which is implmented here.
Additionally, some memory intrinsics need to be declared as taking an i8* instead of an iPTR.
There should be no CodeGen change yet (so again no tests I'm afraid), but it will be triggered when AArch64 backend support for ILP32 is added.
This should probably include the address space. Currently the AMDGPU calling convention lowering hacks through this by looking at the original IR argument index