2d1682d40e7dc9fc269b39b2b6fe8d2235e99dc5
[platform/framework/web/lwnode.git] /
1 ;; Tests for i32x4 arithmetic operations on major boundary values and all special values.
2
3
4 (module
5   (func (export "i32x4.extadd_pairwise_i16x8_s") (param v128) (result v128) (i32x4.extadd_pairwise_i16x8_s (local.get 0)))
6   (func (export "i32x4.extadd_pairwise_i16x8_u") (param v128) (result v128) (i32x4.extadd_pairwise_i16x8_u (local.get 0)))
7 )
8
9
10 ;; i32x4.extadd_pairwise_i16x8_s
11 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0))
12                                                        (v128.const i32x4 0 0 0 0))
13 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1))
14                                                        (v128.const i32x4 2 2 2 2))
15 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
16                                                        (v128.const i32x4 -2 -2 -2 -2))
17 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766))
18                                                        (v128.const i32x4 65532 65532 65532 65532))
19 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767))
20                                                        (v128.const i32x4 -65534 -65534 -65534 -65534))
21 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
22                                                        (v128.const i32x4 -65536 -65536 -65536 -65536))
23 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
24                                                        (v128.const i32x4 65534 65534 65534 65534))
25 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
26                                                        (v128.const i32x4 -2 -2 -2 -2))
27
28 ;; i32x4.extadd_pairwise_i16x8_u
29 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0))
30                                                        (v128.const i32x4 0 0 0 0))
31 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 1 1 1 1 1 1 1 1))
32                                                        (v128.const i32x4 2 2 2 2))
33 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
34                                                        (v128.const i32x4 131070 131070 131070 131070))
35 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766))
36                                                        (v128.const i32x4 65532 65532 65532 65532))
37 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767))
38                                                        (v128.const i32x4 65538 65538 65538 65538))
39 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
40                                                        (v128.const i32x4 65536 65536 65536 65536))
41 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
42                                                        (v128.const i32x4 65534 65534 65534 65534))
43 (assert_return (invoke "i32x4.extadd_pairwise_i16x8_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
44                                                        (v128.const i32x4 131070 131070 131070 131070))
45
46 ;; type check
47 (assert_invalid (module (func (result v128) (i32x4.extadd_pairwise_i16x8_s (i32.const 0)))) "type mismatch")
48 (assert_invalid (module (func (result v128) (i32x4.extadd_pairwise_i16x8_u (i32.const 0)))) "type mismatch")
49
50 ;; Test operation with empty argument
51
52 (assert_invalid
53   (module
54     (func $i32x4.extadd_pairwise_i16x8_s-arg-empty (result v128)
55       (i32x4.extadd_pairwise_i16x8_s)
56     )
57   )
58   "type mismatch"
59 )
60 (assert_invalid
61   (module
62     (func $i32x4.extadd_pairwise_i16x8_u-arg-empty (result v128)
63       (i32x4.extadd_pairwise_i16x8_u)
64     )
65   )
66   "type mismatch"
67 )
68