These are supposed to produce the same as normal volatile pointer loads/stores. When -volatile:ms is specified, normal volatile pointers are forced to have atomic semantics (as is the default on x86 in MSVC mode). In that case, these builtins should still produce non-atomic volatile loads/stores without acquire/release semantics, which the new test verifies.
These are only available on ARM (and on AArch64, although clang doesn't support AArch64/Windows yet).
This implements what is missing for PR30394, making it possible to compile C++ for ARM in MSVC mode with MSVC headers.
I think you could sink this into EmitARMBuiltinExpr. You don't really need or want the fancy CGF machinery here. I'd just return the result of CreateAlignedStore/CreateAlignedLoad which should handle the EmitTargetBuiltinExpr issue.