; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s --mtriple=wasm32-unknown-unknown -fast-isel=0 -mattr=+reference-types | FileCheck %s
; RUN: llc < %s --mtriple=wasm32-unknown-unknown --filetype=obj

; Use -fast-isel-abort=3 (never fall back to SelectionDAG) to make sure that the
; funcref call is selected by FastISel
; RUN: llc < %s --mtriple=wasm32-unknown-unknown -fast-isel=1 -fast-isel-abort=3 -mattr=+reference-types | FileCheck %s

%funcref = type target("wasm.funcref")

declare ptr @llvm.wasm.funcref.to_ptr(%funcref) nounwind

; CHECK: .tabletype __funcref_call_table, funcref, 1

define void @call_funcref(%funcref %ref) {
; CHECK-LABEL: call_funcref:
; CHECK:         .functype call_funcref (funcref) -> ()
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    local.get 0
; CHECK-NEXT:    table.set __funcref_call_table
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    call_indirect __funcref_call_table, () -> ()
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    ref.null_func
; CHECK-NEXT:    table.set __funcref_call_table
; CHECK-NEXT:    # fallthrough-return
  %refptr = call ptr @llvm.wasm.funcref.to_ptr(%funcref %ref)
  call void %refptr()
  ret void
}

define float @call_funcref_with_args(%funcref %ref) {
; CHECK-LABEL: call_funcref_with_args:
; CHECK:         .functype call_funcref_with_args (funcref) -> (f32)
; CHECK-NEXT:    .local f32
; CHECK-NEXT:  # %bb.0:
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    local.get 0
; CHECK-NEXT:    table.set __funcref_call_table
; CHECK-NEXT:    f64.const 0x1p0
; CHECK-NEXT:    i32.const 2
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    call_indirect __funcref_call_table, (f64, i32) -> (f32)
; CHECK-NEXT:    local.set 1
; CHECK-NEXT:    i32.const 0
; CHECK-NEXT:    ref.null_func
; CHECK-NEXT:    table.set __funcref_call_table
; CHECK-NEXT:    local.get 1
; CHECK-NEXT:    # fallthrough-return
  %refptr = call ptr @llvm.wasm.funcref.to_ptr(%funcref %ref)
  %ret = call float %refptr(double 1.0, i32 2)
  ret float %ret
}
