...
1;; Tests for i16x8 arithmetic operations on major boundary values and all special values.
2
3
4(module
5 (func (export "i16x8.extmul_low_i8x16_s") (param v128 v128) (result v128) (i16x8.extmul_low_i8x16_s (local.get 0) (local.get 1)))
6 (func (export "i16x8.extmul_high_i8x16_s") (param v128 v128) (result v128) (i16x8.extmul_high_i8x16_s (local.get 0) (local.get 1)))
7 (func (export "i16x8.extmul_low_i8x16_u") (param v128 v128) (result v128) (i16x8.extmul_low_i8x16_u (local.get 0) (local.get 1)))
8 (func (export "i16x8.extmul_high_i8x16_u") (param v128 v128) (result v128) (i16x8.extmul_high_i8x16_u (local.get 0) (local.get 1)))
9)
10
11
12;; i16x8.extmul_low_i8x16_s
13(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
14 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
15 (v128.const i16x8 0 0 0 0 0 0 0 0))
16(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
17 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
18 (v128.const i16x8 0 0 0 0 0 0 0 0))
19(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
20 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
21 (v128.const i16x8 1 1 1 1 1 1 1 1))
22(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
23 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
24 (v128.const i16x8 0 0 0 0 0 0 0 0))
25(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
26 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
27 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
28(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
29 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
30 (v128.const i16x8 1 1 1 1 1 1 1 1))
31(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63)
32 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
33 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
34(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)
35 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
36 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
37(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63)
38 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
39 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
40(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)
41 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
42 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
43(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65)
44 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
45 (v128.const i16x8 4160 4160 4160 4160 4160 4160 4160 4160))
46(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)
47 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
48 (v128.const i16x8 125 125 125 125 125 125 125 125))
49(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)
50 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
51 (v128.const i16x8 126 126 126 126 126 126 126 126))
52(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)
53 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
54 (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
55(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)
56 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
57 (v128.const i16x8 126 126 126 126 126 126 126 126))
58(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)
59 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
60 (v128.const i16x8 127 127 127 127 127 127 127 127))
61(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
62 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
63 (v128.const i16x8 128 128 128 128 128 128 128 128))
64(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)
65 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
66 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129))
67(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
68 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
69 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
70(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
71 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
72 (v128.const i16x8 16256 16256 16256 16256 16256 16256 16256 16256))
73(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
74 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
75 (v128.const i16x8 0 0 0 0 0 0 0 0))
76(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
77 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
78 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
79(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
80 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
81 (v128.const i16x8 1 1 1 1 1 1 1 1))
82(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
83 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
84 (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127))
85(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
86 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
87 (v128.const i16x8 128 128 128 128 128 128 128 128))
88(assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
89 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
90 (v128.const i16x8 1 1 1 1 1 1 1 1))
91
92;; i16x8.extmul_high_i8x16_s
93(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
94 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
95 (v128.const i16x8 0 0 0 0 0 0 0 0))
96(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
97 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
98 (v128.const i16x8 0 0 0 0 0 0 0 0))
99(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
100 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
101 (v128.const i16x8 1 1 1 1 1 1 1 1))
102(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
103 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
104 (v128.const i16x8 0 0 0 0 0 0 0 0))
105(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
106 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
107 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
108(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
109 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
110 (v128.const i16x8 1 1 1 1 1 1 1 1))
111(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63)
112 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
113 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
114(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)
115 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
116 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
117(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63)
118 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
119 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
120(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)
121 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
122 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
123(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65)
124 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
125 (v128.const i16x8 4160 4160 4160 4160 4160 4160 4160 4160))
126(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)
127 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
128 (v128.const i16x8 125 125 125 125 125 125 125 125))
129(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)
130 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
131 (v128.const i16x8 126 126 126 126 126 126 126 126))
132(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)
133 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
134 (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
135(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)
136 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
137 (v128.const i16x8 126 126 126 126 126 126 126 126))
138(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)
139 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
140 (v128.const i16x8 127 127 127 127 127 127 127 127))
141(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
142 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
143 (v128.const i16x8 128 128 128 128 128 128 128 128))
144(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)
145 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
146 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129))
147(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
148 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
149 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
150(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
151 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
152 (v128.const i16x8 16256 16256 16256 16256 16256 16256 16256 16256))
153(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
154 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
155 (v128.const i16x8 0 0 0 0 0 0 0 0))
156(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
157 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
158 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
159(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
160 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
161 (v128.const i16x8 1 1 1 1 1 1 1 1))
162(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
163 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
164 (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127))
165(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
166 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
167 (v128.const i16x8 128 128 128 128 128 128 128 128))
168(assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
169 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
170 (v128.const i16x8 1 1 1 1 1 1 1 1))
171
172;; i16x8.extmul_low_i8x16_u
173(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
174 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
175 (v128.const i16x8 0 0 0 0 0 0 0 0))
176(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
177 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
178 (v128.const i16x8 0 0 0 0 0 0 0 0))
179(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
180 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
181 (v128.const i16x8 1 1 1 1 1 1 1 1))
182(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
183 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
184 (v128.const i16x8 0 0 0 0 0 0 0 0))
185(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
186 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
187 (v128.const i16x8 255 255 255 255 255 255 255 255))
188(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
189 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
190 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
191(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63)
192 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
193 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
194(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)
195 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
196 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
197(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63)
198 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
199 (v128.const i16x8 -28480 -28480 -28480 -28480 -28480 -28480 -28480 -28480))
200(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)
201 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
202 (v128.const i16x8 -28672 -28672 -28672 -28672 -28672 -28672 -28672 -28672))
203(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65)
204 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
205 (v128.const i16x8 -28864 -28864 -28864 -28864 -28864 -28864 -28864 -28864))
206(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)
207 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
208 (v128.const i16x8 125 125 125 125 125 125 125 125))
209(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)
210 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
211 (v128.const i16x8 126 126 126 126 126 126 126 126))
212(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)
213 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
214 (v128.const i16x8 128 128 128 128 128 128 128 128))
215(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)
216 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
217 (v128.const i16x8 -32386 -32386 -32386 -32386 -32386 -32386 -32386 -32386))
218(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)
219 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
220 (v128.const i16x8 -32641 -32641 -32641 -32641 -32641 -32641 -32641 -32641))
221(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
222 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
223 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640))
224(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)
225 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
226 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129))
227(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
228 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
229 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
230(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
231 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
232 (v128.const i16x8 16512 16512 16512 16512 16512 16512 16512 16512))
233(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
234 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
235 (v128.const i16x8 0 0 0 0 0 0 0 0))
236(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
237 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
238 (v128.const i16x8 255 255 255 255 255 255 255 255))
239(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
240 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
241 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
242(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
243 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
244 (v128.const i16x8 32385 32385 32385 32385 32385 32385 32385 32385))
245(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
246 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
247 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640))
248(assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
249 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
250 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
251
252;; i16x8.extmul_high_i8x16_u
253(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
254 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
255 (v128.const i16x8 0 0 0 0 0 0 0 0))
256(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
257 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
258 (v128.const i16x8 0 0 0 0 0 0 0 0))
259(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
260 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
261 (v128.const i16x8 1 1 1 1 1 1 1 1))
262(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
263 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
264 (v128.const i16x8 0 0 0 0 0 0 0 0))
265(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
266 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
267 (v128.const i16x8 255 255 255 255 255 255 255 255))
268(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)
269 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
270 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
271(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63)
272 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
273 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032))
274(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)
275 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64))
276 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096))
277(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63)
278 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
279 (v128.const i16x8 -28480 -28480 -28480 -28480 -28480 -28480 -28480 -28480))
280(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)
281 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
282 (v128.const i16x8 -28672 -28672 -28672 -28672 -28672 -28672 -28672 -28672))
283(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65)
284 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64))
285 (v128.const i16x8 -28864 -28864 -28864 -28864 -28864 -28864 -28864 -28864))
286(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)
287 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
288 (v128.const i16x8 125 125 125 125 125 125 125 125))
289(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)
290 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
291 (v128.const i16x8 126 126 126 126 126 126 126 126))
292(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)
293 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
294 (v128.const i16x8 128 128 128 128 128 128 128 128))
295(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)
296 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
297 (v128.const i16x8 -32386 -32386 -32386 -32386 -32386 -32386 -32386 -32386))
298(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)
299 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
300 (v128.const i16x8 -32641 -32641 -32641 -32641 -32641 -32641 -32641 -32641))
301(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
302 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
303 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640))
304(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)
305 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
306 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129))
307(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
308 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
309 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
310(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)
311 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
312 (v128.const i16x8 16512 16512 16512 16512 16512 16512 16512 16512))
313(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
314 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
315 (v128.const i16x8 0 0 0 0 0 0 0 0))
316(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
317 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
318 (v128.const i16x8 255 255 255 255 255 255 255 255))
319(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
320 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
321 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
322(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
323 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
324 (v128.const i16x8 32385 32385 32385 32385 32385 32385 32385 32385))
325(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
326 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
327 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640))
328(assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)
329 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
330 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511))
331
332;; type check
333(assert_invalid (module (func (result v128) (i16x8.extmul_low_i8x16_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
334(assert_invalid (module (func (result v128) (i16x8.extmul_high_i8x16_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
335(assert_invalid (module (func (result v128) (i16x8.extmul_low_i8x16_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
336(assert_invalid (module (func (result v128) (i16x8.extmul_high_i8x16_u (i32.const 0) (f32.const 0.0)))) "type mismatch")
337
338;; Test operation with empty argument
339
340(assert_invalid
341 (module
342 (func $i16x8.extmul_low_i8x16_s-1st-arg-empty (result v128)
343 (i16x8.extmul_low_i8x16_s (v128.const i16x8 0 0 0 0 0 0 0 0))
344 )
345 )
346 "type mismatch"
347)
348(assert_invalid
349 (module
350 (func $i16x8.extmul_low_i8x16_s-arg-empty (result v128)
351 (i16x8.extmul_low_i8x16_s)
352 )
353 )
354 "type mismatch"
355)
356(assert_invalid
357 (module
358 (func $i16x8.extmul_high_i8x16_s-1st-arg-empty (result v128)
359 (i16x8.extmul_high_i8x16_s (v128.const i16x8 0 0 0 0 0 0 0 0))
360 )
361 )
362 "type mismatch"
363)
364(assert_invalid
365 (module
366 (func $i16x8.extmul_high_i8x16_s-arg-empty (result v128)
367 (i16x8.extmul_high_i8x16_s)
368 )
369 )
370 "type mismatch"
371)
372(assert_invalid
373 (module
374 (func $i16x8.extmul_low_i8x16_u-1st-arg-empty (result v128)
375 (i16x8.extmul_low_i8x16_u (v128.const i16x8 0 0 0 0 0 0 0 0))
376 )
377 )
378 "type mismatch"
379)
380(assert_invalid
381 (module
382 (func $i16x8.extmul_low_i8x16_u-arg-empty (result v128)
383 (i16x8.extmul_low_i8x16_u)
384 )
385 )
386 "type mismatch"
387)
388(assert_invalid
389 (module
390 (func $i16x8.extmul_high_i8x16_u-1st-arg-empty (result v128)
391 (i16x8.extmul_high_i8x16_u (v128.const i16x8 0 0 0 0 0 0 0 0))
392 )
393 )
394 "type mismatch"
395)
396(assert_invalid
397 (module
398 (func $i16x8.extmul_high_i8x16_u-arg-empty (result v128)
399 (i16x8.extmul_high_i8x16_u)
400 )
401 )
402 "type mismatch"
403)
404
View as plain text