blob: c7b3cecd30edf0e4fea847d848c22aa78d86f6ac [file]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s -all -S -o - | filecheck %s
;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s --check-prefix=RTRIP
(module
;; CHECK: (type $struct (struct (field i32)))
;; RTRIP: (type $struct (struct (field i32)))
(type $struct (struct (field i32)))
;; CHECK: (type $shared-struct (shared (struct (field (mut i32)))))
;; RTRIP: (type $shared-struct (shared (struct (field (mut i32)))))
(type $shared-struct (shared (struct (field (mut i32)))))
;; CHECK: (type $array (array (mut i8)))
;; RTRIP: (type $array (array (mut i8)))
(type $array (array (mut i8)))
;; CHECK: (type $shared-array (shared (array (mut i8))))
;; RTRIP: (type $shared-array (shared (array (mut i8))))
(type $shared-array (shared (array (mut i8))))
;; CHECK: (func $publish-struct (type $4) (param $x (ref $struct)) (result (ref $struct))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-struct (type $4) (param $x (ref $struct)) (result (ref $struct))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-struct (param $x (ref $struct)) (result (ref $struct))
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-shared-struct (type $5) (param $x (ref null $shared-struct)) (result (ref null $shared-struct))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-shared-struct (type $5) (param $x (ref null $shared-struct)) (result (ref null $shared-struct))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-shared-struct (param $x (ref null $shared-struct)) (result (ref null $shared-struct))
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-array (type $6) (param $x (ref $array)) (result (ref $array))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-array (type $6) (param $x (ref $array)) (result (ref $array))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-array (param $x (ref $array)) (result (ref $array))
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-shared-array (type $7) (param $x (ref null $shared-array)) (result (ref null $shared-array))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-shared-array (type $7) (param $x (ref null $shared-array)) (result (ref null $shared-array))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-shared-array (param $x (ref null $shared-array)) (result (ref null $shared-array))
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-any (type $8) (param $x anyref) (result anyref)
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-any (type $8) (param $x anyref) (result anyref)
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-any (param $x anyref) (result anyref)
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-eq (type $9) (param $x eqref) (result eqref)
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-eq (type $9) (param $x eqref) (result eqref)
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-eq (param $x eqref) (result eqref)
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-i31 (type $10) (param $x (ref i31)) (result (ref i31))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-i31 (type $10) (param $x (ref i31)) (result (ref i31))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-i31 (param $x (ref i31)) (result (ref i31))
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-extern (type $11) (param $x externref) (result externref)
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-extern (type $11) (param $x externref) (result externref)
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-extern (param $x externref) (result externref)
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-func (type $12) (param $x funcref) (result funcref)
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-func (type $12) (param $x funcref) (result funcref)
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-func (param $x funcref) (result funcref)
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-null (type $13) (param $x nullref) (result nullref)
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-null (type $13) (param $x nullref) (result nullref)
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-null (param $x nullref) (result nullref)
(publish
(local.get $x)
)
)
;; CHECK: (func $publish-flat (type $14) (param $x (ref any)) (result (ref any))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (local.get $x)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-flat (type $14) (param $x (ref any)) (result (ref any))
;; RTRIP-NEXT: (publish
;; RTRIP-NEXT: (local.get $x)
;; RTRIP-NEXT: )
;; RTRIP-NEXT: )
(func $publish-flat (param $x (ref any)) (result (ref any))
(local.get $x)
(publish)
)
;; CHECK: (func $publish-unreachable (type $15) (result (ref any))
;; CHECK-NEXT: (publish
;; CHECK-NEXT: (unreachable)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; RTRIP: (func $publish-unreachable (type $15) (result (ref any))
;; RTRIP-NEXT: (unreachable)
;; RTRIP-NEXT: )
(func $publish-unreachable (result (ref any))
(unreachable)
(publish)
)
)