b41de74d00bc8e7e4a6931ebe9fc7c55d2560133
[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.dot_i16x8_s") (param v128 v128) (result v128) (i32x4.dot_i16x8_s (local.get 0) (local.get 1)))
6 )
7
8
9 ;; i32x4.dot_i16x8_s
10 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
11                                            (v128.const i16x8 0 0 0 0 0 0 0 0))
12                                            (v128.const i32x4 0 0 0 0))
13 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
14                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
15                                            (v128.const i32x4 0 0 0 0))
16 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1)
17                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
18                                            (v128.const i32x4 2 2 2 2))
19 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
20                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
21                                            (v128.const i32x4 0 0 0 0))
22 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1)
23                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
24                                            (v128.const i32x4 -2 -2 -2 -2))
25 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
26                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
27                                            (v128.const i32x4 2 2 2 2))
28 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383)
29                                            (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
30                                            (v128.const i32x4 536838144 536838144 536838144 536838144))
31 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)
32                                            (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
33                                            (v128.const i32x4 536870912 536870912 536870912 536870912))
34 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383)
35                                            (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
36                                            (v128.const i32x4 536838144 536838144 536838144 536838144))
37 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)
38                                            (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
39                                            (v128.const i32x4 536870912 536870912 536870912 536870912))
40 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385)
41                                            (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
42                                            (v128.const i32x4 536903680 536903680 536903680 536903680))
43 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)
44                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
45                                            (v128.const i32x4 65530 65530 65530 65530))
46 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)
47                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
48                                            (v128.const i32x4 65532 65532 65532 65532))
49 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)
50                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
51                                            (v128.const i32x4 -65536 -65536 -65536 -65536))
52 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766)
53                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
54                                            (v128.const i32x4 65532 65532 65532 65532))
55 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)
56                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
57                                            (v128.const i32x4 65534 65534 65534 65534))
58 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
59                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
60                                            (v128.const i32x4 65536 65536 65536 65536))
61 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)
62                                            (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
63                                            (v128.const i32x4 2147352578 2147352578 2147352578 2147352578))
64 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
65                                            (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
66                                            (v128.const i32x4 2147483648 2147483648 2147483648 2147483648))
67 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
68                                            (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767))
69                                            (v128.const i32x4 2147418112 2147418112 2147418112 2147418112))
70 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
71                                            (v128.const i16x8 0 0 0 0 0 0 0 0))
72                                            (v128.const i32x4 0 0 0 0))
73 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
74                                            (v128.const i16x8 1 1 1 1 1 1 1 1))
75                                            (v128.const i32x4 -2 -2 -2 -2))
76 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
77                                            (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
78                                            (v128.const i32x4 2 2 2 2))
79 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
80                                            (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
81                                            (v128.const i32x4 -65534 -65534 -65534 -65534))
82 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
83                                            (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
84                                            (v128.const i32x4 65536 65536 65536 65536))
85 (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
86                                            (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
87                                            (v128.const i32x4 2 2 2 2))
88
89 ;; type check
90 (assert_invalid (module (func (result v128) (i32x4.dot_i16x8_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
91
92 ;; Test operation with empty argument
93
94 (assert_invalid
95   (module
96     (func $i32x4.dot_i16x8_s-1st-arg-empty (result v128)
97       (i32x4.dot_i16x8_s (v128.const i32x4 0 0 0 0))
98     )
99   )
100   "type mismatch"
101 )
102 (assert_invalid
103   (module
104     (func $i32x4.dot_i16x8_s-arg-empty (result v128)
105       (i32x4.dot_i16x8_s)
106     )
107   )
108   "type mismatch"
109 )
110