Rationale behind llvm.wasm.ref.null.extern and related intrinsics

The WebAssembly target currently uses llvm.wasm.ref.null.* and llvm.wasm.ref.is_null.* intrinsics to represent ref.null and ref.is_null instructions.

But why are these intrinsics even necessary? Since reference types are represented in IR as non-integral pointer types, it should be possible to directly use ptr addrspace(...) null and icmp eq ptr addrspace(...) %arg, null for them.