1;;! simd = true
2
3;; test that swapping the parameters results in swapped return values
4(module (func (export "f") (param v128) (param v128) (result v128) (result v128) (local.get 1) (local.get 0)))
5(assert_return (invoke "f" (v128.const i64x2 2 1) (v128.const i64x2 1 2)) (v128.const i64x2 1 2) (v128.const i64x2 2 1))
6
7;; test 0 consts
8(module (func (export "consts") (result v128) (result v128) (v128.const i64x2 0 0) (v128.const i64x2 0 0)))
9(assert_return (invoke "consts") (v128.const i64x2 0 0) (v128.const i64x2 0 0))
10
11;; test case where vector is neither the first return value nor the last return value
12(module
13  (func (export "not-first-nor-last") (param v128) (result i64 v128 i64)
14    i64.const 0
15    local.get 0
16    i64.const 0
17  )
18)
19(assert_return (invoke "not-first-nor-last" (v128.const i32x4 1 2 3 4)) (i64.const 0) (v128.const i32x4 1 2 3 4) (i64.const 0))
20