1*1d445a6eSNick Fitzgerald# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o 2*1d445a6eSNick Fitzgerald# RUN: wasm-ld -o %t1.wasm %t.o 3*1d445a6eSNick Fitzgerald# RUN: obj2yaml %t1.wasm | FileCheck %s 4*1d445a6eSNick Fitzgerald 5*1d445a6eSNick Fitzgerald.globl f1 6*1d445a6eSNick Fitzgerald.import_module f1, env 7*1d445a6eSNick Fitzgerald.import_name f1, f 8*1d445a6eSNick Fitzgerald.functype f1 () -> (i32) 9*1d445a6eSNick Fitzgerald 10*1d445a6eSNick Fitzgerald# Same import module/name/type as `f1`, should be de-duped. 11*1d445a6eSNick Fitzgerald.globl f2 12*1d445a6eSNick Fitzgerald.import_module f2, env 13*1d445a6eSNick Fitzgerald.import_name f2, f 14*1d445a6eSNick Fitzgerald.functype f2 () -> (i32) 15*1d445a6eSNick Fitzgerald 16*1d445a6eSNick Fitzgerald# Same import module/name, but different type. Should not be de-duped. 17*1d445a6eSNick Fitzgerald.globl f3 18*1d445a6eSNick Fitzgerald.import_module f3, env 19*1d445a6eSNick Fitzgerald.import_name f3, f 20*1d445a6eSNick Fitzgerald.functype f3 () -> (f32) 21*1d445a6eSNick Fitzgerald 22*1d445a6eSNick Fitzgerald.globl _start 23*1d445a6eSNick Fitzgerald_start: 24*1d445a6eSNick Fitzgerald .functype _start () -> () 25*1d445a6eSNick Fitzgerald call f1 26*1d445a6eSNick Fitzgerald drop 27*1d445a6eSNick Fitzgerald call f2 28*1d445a6eSNick Fitzgerald drop 29*1d445a6eSNick Fitzgerald call f3 30*1d445a6eSNick Fitzgerald drop 31*1d445a6eSNick Fitzgerald end_function 32*1d445a6eSNick Fitzgerald 33*1d445a6eSNick Fitzgerald 34*1d445a6eSNick Fitzgerald# CHECK: - Type: TYPE 35*1d445a6eSNick Fitzgerald# CHECK-NEXT: Signatures: 36*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Index: 0 37*1d445a6eSNick Fitzgerald# CHECK-NEXT: ParamTypes: [] 38*1d445a6eSNick Fitzgerald# CHECK-NEXT: ReturnTypes: 39*1d445a6eSNick Fitzgerald# CHECK-NEXT: - I32 40*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Index: 1 41*1d445a6eSNick Fitzgerald# CHECK-NEXT: ParamTypes: [] 42*1d445a6eSNick Fitzgerald# CHECK-NEXT: ReturnTypes: 43*1d445a6eSNick Fitzgerald# CHECK-NEXT: - F32 44*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Index: 2 45*1d445a6eSNick Fitzgerald# CHECK-NEXT: ParamTypes: [] 46*1d445a6eSNick Fitzgerald# CHECK-NEXT: ReturnTypes: [] 47*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Type: IMPORT 48*1d445a6eSNick Fitzgerald# CHECK-NEXT: Imports: 49*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Module: env 50*1d445a6eSNick Fitzgerald# CHECK-NEXT: Field: f 51*1d445a6eSNick Fitzgerald# CHECK-NEXT: Kind: FUNCTION 52*1d445a6eSNick Fitzgerald# CHECK-NEXT: SigIndex: 0 53*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Module: env 54*1d445a6eSNick Fitzgerald# CHECK-NEXT: Field: f 55*1d445a6eSNick Fitzgerald# CHECK-NEXT: Kind: FUNCTION 56*1d445a6eSNick Fitzgerald# CHECK-NEXT: SigIndex: 1 57*1d445a6eSNick Fitzgerald# CHECK-NEXT: - Type: 58