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_is_null: 5# CHECK: ref.is_null # encoding: [0xd1] 6ref_is_null: 7 .functype ref_is_null () -> (i32, i32) 8 ref.null_extern 9 ref.is_null 10 ref.null_func 11 ref.is_null 12 end_function 13 14# CHECK-LABEL: ref_null_test: 15# CHECK: ref.null_func # encoding: [0xd0,0x70] 16# CHECK: ref.null_extern # encoding: [0xd0,0x6f] 17ref_null_test: 18 .functype ref_null_test () -> () 19 ref.null_func 20 drop 21 ref.null_extern 22 drop 23 end_function 24 25# CHECK-LABEL: ref_sig_test_funcref: 26# CHECK-NEXT: .functype ref_sig_test_funcref (funcref) -> (funcref) 27ref_sig_test_funcref: 28 .functype ref_sig_test_funcref (funcref) -> (funcref) 29 local.get 0 30 end_function 31 32# CHECK-LABEL: ref_sig_test_externref: 33# CHECK-NEXT: .functype ref_sig_test_externref (externref) -> (externref) 34ref_sig_test_externref: 35 .functype ref_sig_test_externref (externref) -> (externref) 36 local.get 0 37 end_function 38 39# CHECK-LABEL: ref_select_test: 40# CHECK: funcref.select # encoding: [0x1b] 41# CHECK: externref.select # encoding: [0x1b] 42ref_select_test: 43 .functype ref_select_test () -> () 44 ref.null_func 45 ref.null_func 46 i32.const 0 47 funcref.select 48 drop 49 ref.null_extern 50 ref.null_extern 51 i32.const 0 52 externref.select 53 drop 54 end_function 55 56# CHECK-LABEL: ref_block_test: 57# CHECK: block funcref 58# CHECK: block externref 59ref_block_test: 60 .functype ref_block_test () -> (externref, funcref) 61 block funcref 62 block externref 63 ref.null_extern 64 end_block 65 ref.null_func 66 end_block 67 end_function 68