1# RUN: llvm-mc -show-encoding -triple=wasm32-unknown-unknown -mattr=+reference-types < %s | FileCheck %s 2# RUN: llvm-mc -show-encoding -triple=wasm64-unknown-unknown -mattr=+reference-types < %s | FileCheck %s 3 4# CHECK-LABEL: ref_null_test: 5# CHECK: ref.null func # encoding: [0xd0,0x70] 6# CHECK: ref.null extern # encoding: [0xd0,0x6f] 7ref_null_test: 8 .functype ref_null_test () -> () 9 ref.null func 10 drop 11 ref.null extern 12 drop 13 end_function 14 15# CHECK-LABEL: ref_sig_test_funcref: 16# CHECK-NEXT: .functype ref_sig_test_funcref (funcref) -> (funcref) 17ref_sig_test_funcref: 18 .functype ref_sig_test_funcref (funcref) -> (funcref) 19 local.get 0 20 end_function 21 22# CHECK-LABEL: ref_sig_test_externref: 23# CHECK-NEXT: .functype ref_sig_test_externref (externref) -> (externref) 24ref_sig_test_externref: 25 .functype ref_sig_test_externref (externref) -> (externref) 26 local.get 0 27 end_function 28 29# CHECK-LABEL: ref_select_test: 30# CHECK: funcref.select # encoding: [0x1b] 31# CHECK: externref.select # encoding: [0x1b] 32ref_select_test: 33 .functype ref_select_test () -> () 34 ref.null func 35 ref.null func 36 i32.const 0 37 funcref.select 38 drop 39 ref.null extern 40 ref.null extern 41 i32.const 0 42 externref.select 43 drop 44 end_function 45 46# CHECK-LABEL: ref_block_test: 47# CHECK: block funcref 48# CHECK: block externref 49ref_block_test: 50 .functype ref_block_test () -> (externref, funcref) 51 block funcref 52 block externref 53 ref.null extern 54 end_block 55 ref.null func 56 end_block 57 end_function 58