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 6@externref_table = local_unnamed_addr addrspace(1) global [0 x %externref] undef 7 8declare i32 @llvm.wasm.table.grow.externref(i8 addrspace(1)*, %externref, i32) nounwind readonly 9declare %externref @llvm.wasm.ref.null.extern() nounwind readonly 10 11define i32 @table_grow(i32 %sz) { 12; CHECK-LABEL: table_grow: 13; CHECK-NEXT: .functype table_grow (i32) -> (i32) 14; CHECK-NEXT: ref.null_extern 15; CHECK-NEXT: local.get 0 16; CHECK-NEXT: table.grow externref_table 17; CHECK-NEXT: end_function 18 %null = call %externref @llvm.wasm.ref.null.extern() 19 %tableptr = getelementptr [0 x %externref], [0 x %externref] addrspace(1)* @externref_table, i32 0, i32 0 20 %tb = bitcast %externref addrspace(1)* %tableptr to i8 addrspace(1)* 21 %newsz = call i32 @llvm.wasm.table.grow.externref(i8 addrspace(1)* %tb, %externref %null, i32 %sz) 22 ret i32 %newsz 23} 24