1; RUN: llc --mtriple=wasm32-unknown-unknown -asm-verbose=false -mattr=+reference-types < %s | FileCheck %s
2
3%extern = type opaque
4%externref = type %extern addrspace(10)* ;; addrspace 10 is nonintegral
5%funcref = type i8 addrspace(20)*      ;; addrspace 20 is nonintegral
6
7declare %externref @llvm.wasm.ref.null.extern() nounwind
8declare %funcref @llvm.wasm.ref.null.func() nounwind
9
10define %externref @get_null_extern() {
11; CHECK-LABEL: get_null_extern:
12; CHECK-NEXT:  .functype       get_null_extern () -> (externref)
13; CHECK-NEXT:  ref.null_extern
14; CHECK-NEXT:  end_function
15  %null = call %externref @llvm.wasm.ref.null.extern()
16  ret %externref %null
17}
18
19define %funcref @get_null_func() {
20; CHECK-LABEL: get_null_func:
21; CHECK-NEXT:  .functype       get_null_func () -> (funcref)
22; CHECK-NEXT:  ref.null_func
23; CHECK-NEXT:  end_function
24  %null = call %funcref @llvm.wasm.ref.null.func()
25  ret %funcref %null
26}
27