[ARM] [NEON] Changes to the vld and vst intrinsics

Dear all,

This is a heads-up regarding a change in the definition of the ARM neon vld and vst intrinsics, mostly to solicit whether there are any objections to this change.

The following patches:


change the interface of the vld[1234], vld[234]lane, and vst[1234], vst[234]lane ARM neon intrinsics and associate an address space with the pointer that these intrinsics take. This changed, for example,

<2 x i32> @llvm.arm.neon.vld1.v2i32(i8*, i32)

is changed to

<2 x i32> @llvm.arm.neon.vld1.v2i32.p0i8(i8*, i32)

This resolves an issue in the ARM Target where address spaces were only partially taken into account during lowering of interleaved loads and stores (see D12985 for further discussion).

As asked above, would there be any objection to making this change? Note that the change does to alter the intrinsics exposed by clang, as before only the address space 0 versions of the intrinsics are exposed.