blob: 8748d1dced6c10fd23c1b94fff901999802ab291 [file] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-split -all -g --multi-split %s --no-placeholders --manifest %S/multi-split.wast.manifest --out-prefix=%t -o %t.wasm
;; RUN: wasm-dis %t.wasm | filecheck %s --check-prefix=PRIMARY
;; RUN: wasm-dis %t1.wasm | filecheck %s --check-prefix=MOD1
;; RUN: wasm-dis %t2.wasm | filecheck %s --check-prefix=MOD2
;; RUN: wasm-dis %t3.wasm | filecheck %s --check-prefix=MOD3
;; When placeholders are NOT used and all functions in an element segment belong
;; to a single secondary module, we can move the segment to that secondary
;; module.
(module
;; PRIMARY: (table $table 3 3 funcref)
(table $table 3 3 funcref)
;; PRIMARY: (elem $primary-elem1 (table $table) (i32.const 0) func $trampoline_A $trampoline_B $trampoline_C)
;; PRIMARY: (elem $primary-elem2 (table $table) (i32.const 0) func $trampoline_A $trampoline_B $trampoline_A)
;; PRIMARY: (export "table" (table $table))
(export "table" (table $table))
(elem $primary-elem1 (table $table) (i32.const 0) func $A $B $C)
(elem $primary-elem2 (table $table) (i32.const 0) func $A $B $A)
;; MOD1: (elem $A-elem (table $table) (i32.const 0) func $A $A $A)
(elem $A-elem (table $table) (i32.const 0) func $A $A $A)
;; MOD2: (elem $B-elem (table $table) (i32.const 0) func $B $B $B)
(elem $B-elem (table $table) (i32.const 0) func $B $B $B)
;; MOD3: (elem $C-elem (table $table) (i32.const 0) func $C $C $C)
(elem $C-elem (table $table) (i32.const 0) func $C $C $C)
;; MOD1: (func $A
;; MOD1-NEXT: (call_indirect (type $0)
;; MOD1-NEXT: (i32.const 0)
;; MOD1-NEXT: )
;; MOD1-NEXT: )
(func $A
(call_indirect $table
(i32.const 0)
)
)
;; MOD2: (func $B
;; MOD2-NEXT: )
(func $B
)
;; MOD3: (func $C
;; MOD3-NEXT: )
(func $C
)
)