d9642f8bd67c91a8766517fbcdac17e8426594c7
[platform/framework/web/lwnode.git] /
1 ;; Tests for the load_splat instructions
2
3 (module
4   (memory 1)
5   (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F")
6   (data (i32.const 65520) "\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F")
7
8   (func (export "v128.load8_splat") (param $address i32) (result v128) (v128.load8_splat (local.get $address)))
9   (func (export "v128.load16_splat") (param $address i32) (result v128) (v128.load16_splat (local.get $address)))
10   (func (export "v128.load32_splat") (param $address i32) (result v128) (v128.load32_splat (local.get $address)))
11   (func (export "v128.load64_splat") (param $address i32) (result v128) (v128.load64_splat (local.get $address)))
12
13   ;; Load data with different offset/align arguments
14   (func (export "v8x16.offset0") (param $address i32) (result v128) (v128.load8_splat offset=0 (local.get $address)))
15   (func (export "v8x16.align1") (param $address i32) (result v128) (v128.load8_splat align=1 (local.get $address)))
16   (func (export "v8x16.offset1_align1") (param $address i32) (result v128) (v128.load8_splat offset=1 align=1 (local.get $address)))
17   (func (export "v8x16.offset2_align1") (param $address i32) (result v128) (v128.load8_splat offset=2 align=1 (local.get $address)))
18   (func (export "v8x16.offset15_align1") (param $address i32) (result v128) (v128.load8_splat offset=15 align=1 (local.get $address)))
19
20   (func (export "v16x8.offset0") (param $address i32) (result v128) (v128.load16_splat offset=0 (local.get $address)))
21   (func (export "v16x8.align1") (param $address i32) (result v128) (v128.load16_splat align=1 (local.get $address)))
22   (func (export "v16x8.offset1_align1") (param $address i32) (result v128) (v128.load16_splat offset=1 align=1 (local.get $address)))
23   (func (export "v16x8.offset2_align1") (param $address i32) (result v128) (v128.load16_splat offset=2 align=1 (local.get $address)))
24   (func (export "v16x8.offset15_align2") (param $address i32) (result v128) (v128.load16_splat offset=15 align=2 (local.get $address)))
25
26   (func (export "v32x4.offset0") (param $address i32) (result v128) (v128.load32_splat offset=0 (local.get $address)))
27   (func (export "v32x4.align1") (param $address i32) (result v128) (v128.load32_splat align=1 (local.get $address)))
28   (func (export "v32x4.offset1_align1") (param $address i32) (result v128) (v128.load32_splat offset=1 align=1 (local.get $address)))
29   (func (export "v32x4.offset2_align2") (param $address i32) (result v128) (v128.load32_splat offset=2 align=2 (local.get $address)))
30   (func (export "v32x4.offset15_align4") (param $address i32) (result v128) (v128.load32_splat offset=15 align=4 (local.get $address)))
31
32   (func (export "v64x2.offset0") (param $address i32) (result v128) (v128.load64_splat offset=0 (local.get $address)))
33   (func (export "v64x2.align1") (param $address i32) (result v128) (v128.load64_splat align=1 (local.get $address)))
34   (func (export "v64x2.offset1_align2") (param $address i32) (result v128) (v128.load64_splat offset=1 align=2 (local.get $address)))
35   (func (export "v64x2.offset2_align4") (param $address i32) (result v128) (v128.load64_splat offset=2 align=4 (local.get $address)))
36   (func (export "v64x2.offset15_align8") (param $address i32) (result v128) (v128.load64_splat offset=15 align=8 (local.get $address)))
37
38   (func (export "v8x16.offset65536") (param $address i32) (result v128) (v128.load8_splat offset=65536 (local.get $address)))
39   (func (export "v16x8.offset65535") (param $address i32) (result v128) (v128.load16_splat offset=65535 (local.get $address)))
40   (func (export "v32x4.offset65533") (param $address i32) (result v128) (v128.load32_splat offset=65533 (local.get $address)))
41   (func (export "v64x2.offset65529") (param $address i32) (result v128) (v128.load64_splat offset=65529 (local.get $address)))
42 )
43 (assert_return (invoke "v128.load8_splat" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
44 (assert_return (invoke "v128.load8_splat" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
45 (assert_return (invoke "v128.load8_splat" (i32.const 2)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
46 (assert_return (invoke "v128.load8_splat" (i32.const 3)) (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3))
47 (assert_return (invoke "v128.load8_splat" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31))
48 (assert_return (invoke "v128.load16_splat" (i32.const 4)) (v128.const i16x8 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504))
49 (assert_return (invoke "v128.load16_splat" (i32.const 5)) (v128.const i16x8 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605))
50 (assert_return (invoke "v128.load16_splat" (i32.const 6)) (v128.const i16x8 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706))
51 (assert_return (invoke "v128.load16_splat" (i32.const 7)) (v128.const i16x8 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807))
52 (assert_return (invoke "v128.load16_splat" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E))
53 (assert_return (invoke "v128.load32_splat" (i32.const 8)) (v128.const i32x4 0x0B0A0908 0x0B0A0908 0x0B0A0908 0x0B0A0908))
54 (assert_return (invoke "v128.load32_splat" (i32.const 9)) (v128.const i32x4 0x0C0B0A09 0x0C0B0A09 0x0C0B0A09 0x0C0B0A09))
55 (assert_return (invoke "v128.load32_splat" (i32.const 10)) (v128.const i32x4 0x0D0C0B0A 0x0D0C0B0A 0x0D0C0B0A 0x0D0C0B0A))
56 (assert_return (invoke "v128.load32_splat" (i32.const 11)) (v128.const i32x4 0x0E0D0C0B 0x0E0D0C0B 0x0E0D0C0B 0x0E0D0C0B))
57 (assert_return (invoke "v128.load32_splat" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C))
58 (assert_return (invoke "v128.load64_splat" (i32.const 12)) (v128.const i64x2 0x000000000F0E0D0C 0x000000000F0E0D0C))
59 (assert_return (invoke "v128.load64_splat" (i32.const 13)) (v128.const i64x2 0x00000000000F0E0D 0x00000000000F0E0D))
60 (assert_return (invoke "v128.load64_splat" (i32.const 14)) (v128.const i64x2 0x0000000000000F0E 0x0000000000000F0E))
61 (assert_return (invoke "v128.load64_splat" (i32.const 15)) (v128.const i64x2 0x000000000000000F 0x000000000000000F))
62 (assert_return (invoke "v128.load64_splat" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918))
63
64 ;; v8x16
65 (assert_return (invoke "v8x16.offset0" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
66 (assert_return (invoke "v8x16.align1" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
67 (assert_return (invoke "v8x16.offset1_align1" (i32.const 0)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
68 (assert_return (invoke "v8x16.offset2_align1" (i32.const 0)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
69 (assert_return (invoke "v8x16.offset15_align1" (i32.const 0)) (v128.const i8x16 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15))
70 (assert_return (invoke "v8x16.offset0" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
71 (assert_return (invoke "v8x16.align1" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
72 (assert_return (invoke "v8x16.offset1_align1" (i32.const 1)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2))
73 (assert_return (invoke "v8x16.offset2_align1" (i32.const 1)) (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3))
74 (assert_return (invoke "v8x16.offset15_align1" (i32.const 1)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
75 (assert_return (invoke "v8x16.offset0" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31))
76 (assert_return (invoke "v8x16.align1" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31))
77 ;; v16x8
78 (assert_return (invoke "v16x8.offset0" (i32.const 0)) (v128.const i16x8 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100))
79 (assert_return (invoke "v16x8.align1" (i32.const 0)) (v128.const i16x8 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100))
80 (assert_return (invoke "v16x8.offset1_align1" (i32.const 0)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201))
81 (assert_return (invoke "v16x8.offset2_align1" (i32.const 0)) (v128.const i16x8 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302))
82 (assert_return (invoke "v16x8.offset15_align2" (i32.const 0)) (v128.const i16x8 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F))
83 (assert_return (invoke "v16x8.offset0" (i32.const 1)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201))
84 (assert_return (invoke "v16x8.align1" (i32.const 1)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201))
85 (assert_return (invoke "v16x8.offset1_align1" (i32.const 1)) (v128.const i16x8 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302))
86 (assert_return (invoke "v16x8.offset2_align1" (i32.const 1)) (v128.const i16x8 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403))
87 (assert_return (invoke "v16x8.offset15_align2" (i32.const 1)) (v128.const i16x8 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000))
88 (assert_return (invoke "v16x8.offset0" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E))
89 (assert_return (invoke "v16x8.align1" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E))
90 ;; v32x4
91 (assert_return (invoke "v32x4.offset0" (i32.const 0)) (v128.const i32x4 0x03020100 0x03020100 0x03020100 0x03020100))
92 (assert_return (invoke "v32x4.align1" (i32.const 0)) (v128.const i32x4 0x03020100 0x03020100 0x03020100 0x03020100))
93 (assert_return (invoke "v32x4.offset1_align1" (i32.const 0)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201))
94 (assert_return (invoke "v32x4.offset2_align2" (i32.const 0)) (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302))
95 (assert_return (invoke "v32x4.offset15_align4" (i32.const 0)) (v128.const i32x4 0x0000000F 0x0000000F 0x0000000F 0x0000000F))
96 (assert_return (invoke "v32x4.offset0" (i32.const 1)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201))
97 (assert_return (invoke "v32x4.align1" (i32.const 1)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201))
98 (assert_return (invoke "v32x4.offset1_align1" (i32.const 1)) (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302))
99 (assert_return (invoke "v32x4.offset2_align2" (i32.const 1)) (v128.const i32x4 0x06050403 0x06050403 0x06050403 0x06050403))
100 (assert_return (invoke "v32x4.offset15_align4" (i32.const 1)) (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000))
101 (assert_return (invoke "v32x4.offset0" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C))
102 (assert_return (invoke "v32x4.align1" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C))
103 ;; v64x2
104 (assert_return (invoke "v64x2.offset0" (i32.const 0)) (v128.const i64x2 0x0706050403020100 0x0706050403020100))
105 (assert_return (invoke "v64x2.align1" (i32.const 0)) (v128.const i64x2 0x0706050403020100 0x0706050403020100))
106 (assert_return (invoke "v64x2.offset1_align2" (i32.const 0)) (v128.const i64x2 0x0807060504030201 0x0807060504030201))
107 (assert_return (invoke "v64x2.offset2_align4" (i32.const 0)) (v128.const i64x2 0x0908070605040302 0x0908070605040302))
108 (assert_return (invoke "v64x2.offset15_align8" (i32.const 0)) (v128.const i64x2 0x000000000000000F 0x000000000000000F))
109 (assert_return (invoke "v64x2.offset0" (i32.const 1)) (v128.const i64x2 0x0807060504030201 0x0807060504030201))
110 (assert_return (invoke "v64x2.align1" (i32.const 1)) (v128.const i64x2 0x0807060504030201 0x0807060504030201))
111 (assert_return (invoke "v64x2.offset1_align2" (i32.const 1)) (v128.const i64x2 0x0908070605040302 0x0908070605040302))
112 (assert_return (invoke "v64x2.offset2_align4" (i32.const 1)) (v128.const i64x2 0x0A09080706050403 0x0A09080706050403))
113 (assert_return (invoke "v64x2.offset15_align8" (i32.const 1)) (v128.const i64x2 0x0000000000000000 0x0000000000000000))
114 (assert_return (invoke "v64x2.offset0" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918))
115 (assert_return (invoke "v64x2.align1" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918))
116
117
118 ;; Out of bounds memory access
119 (assert_trap (invoke "v128.load8_splat" (i32.const -1)) "out of bounds memory access")
120 (assert_trap (invoke "v128.load16_splat" (i32.const -1)) "out of bounds memory access")
121 (assert_trap (invoke "v128.load32_splat" (i32.const -1)) "out of bounds memory access")
122 (assert_trap (invoke "v128.load64_splat" (i32.const -1)) "out of bounds memory access")
123 (assert_trap (invoke "v128.load8_splat" (i32.const 65536)) "out of bounds memory access")
124 (assert_trap (invoke "v128.load16_splat" (i32.const 65535)) "out of bounds memory access")
125 (assert_trap (invoke "v128.load32_splat" (i32.const 65533)) "out of bounds memory access")
126 (assert_trap (invoke "v128.load64_splat" (i32.const 65529)) "out of bounds memory access")
127
128 (assert_trap (invoke "v8x16.offset1_align1" (i32.const 65535)) "out of bounds memory access")
129 (assert_trap (invoke "v8x16.offset2_align1" (i32.const 65535)) "out of bounds memory access")
130 (assert_trap (invoke "v8x16.offset15_align1" (i32.const 65535)) "out of bounds memory access")
131 (assert_trap (invoke "v16x8.offset1_align1" (i32.const 65534)) "out of bounds memory access")
132 (assert_trap (invoke "v16x8.offset2_align1" (i32.const 65534)) "out of bounds memory access")
133 (assert_trap (invoke "v16x8.offset15_align2" (i32.const 65534)) "out of bounds memory access")
134 (assert_trap (invoke "v32x4.offset1_align1" (i32.const 65532)) "out of bounds memory access")
135 (assert_trap (invoke "v32x4.offset2_align2" (i32.const 65532)) "out of bounds memory access")
136 (assert_trap (invoke "v32x4.offset15_align4" (i32.const 65532)) "out of bounds memory access")
137 (assert_trap (invoke "v64x2.offset1_align2" (i32.const 65528)) "out of bounds memory access")
138 (assert_trap (invoke "v64x2.offset2_align4" (i32.const 65528)) "out of bounds memory access")
139 (assert_trap (invoke "v64x2.offset15_align8" (i32.const 65528)) "out of bounds memory access")
140
141 (assert_trap (invoke "v8x16.offset1_align1" (i32.const -1)) "out of bounds memory access")
142 (assert_trap (invoke "v16x8.offset1_align1" (i32.const -1)) "out of bounds memory access")
143 (assert_trap (invoke "v32x4.offset1_align1" (i32.const -1)) "out of bounds memory access")
144 (assert_trap (invoke "v64x2.offset1_align2" (i32.const -1)) "out of bounds memory access")
145
146 (assert_trap (invoke "v8x16.offset65536" (i32.const 0)) "out of bounds memory access")
147 (assert_trap (invoke "v16x8.offset65535" (i32.const 0)) "out of bounds memory access")
148 (assert_trap (invoke "v32x4.offset65533" (i32.const 0)) "out of bounds memory access")
149 (assert_trap (invoke "v64x2.offset65529" (i32.const 0)) "out of bounds memory access")
150 (assert_trap (invoke "v8x16.offset65536" (i32.const 1)) "out of bounds memory access")
151 (assert_trap (invoke "v16x8.offset65535" (i32.const 1)) "out of bounds memory access")
152 (assert_trap (invoke "v32x4.offset65533" (i32.const 1)) "out of bounds memory access")
153 (assert_trap (invoke "v64x2.offset65529" (i32.const 1)) "out of bounds memory access")
154
155
156 ;; Combination
157
158 (module (memory 1)
159   (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A")
160
161   (func (export "v128.load8_splat-in-block") (result v128)
162       (block (result v128) (block (result v128) (v128.load8_splat (i32.const 0))))
163   )
164   (func (export "v128.load16_splat-in-block") (result v128)
165       (block (result v128) (block (result v128) (v128.load16_splat (i32.const 1))))
166   )
167   (func (export "v128.load32_splat-in-block") (result v128)
168       (block (result v128) (block (result v128) (v128.load32_splat (i32.const 2))))
169   )
170   (func (export "v128.load64_splat-in-block") (result v128)
171       (block (result v128) (block (result v128) (v128.load64_splat (i32.const 9))))
172   )
173   (func (export "v128.load8_splat-as-br-value") (result v128)
174     (block (result v128) (br 0 (v128.load8_splat (i32.const 3))))
175   )
176   (func (export "v128.load16_splat-as-br-value") (result v128)
177     (block (result v128) (br 0 (v128.load16_splat (i32.const 4))))
178   )
179   (func (export "v128.load32_splat-as-br-value") (result v128)
180     (block (result v128) (br 0 (v128.load32_splat (i32.const 5))))
181   )
182   (func (export "v128.load64_splat-as-br-value") (result v128)
183     (block (result v128) (br 0 (v128.load64_splat (i32.const 10))))
184   )
185   (func (export "v128.load8_splat-extract_lane_s-operand") (result i32)
186     (i8x16.extract_lane_s 0 (v128.load8_splat (i32.const 6)))
187   )
188   (func (export "v128.load16_splat-extract_lane_s-operand") (result i32)
189     (i8x16.extract_lane_s 0 (v128.load16_splat (i32.const 7)))
190   )
191   (func (export "v128.load32_splat-extract_lane_s-operand") (result i32)
192     (i8x16.extract_lane_s 0 (v128.load32_splat (i32.const 8)))
193   )
194   (func (export "v128.load64_splat-extract_lane_s-operand") (result i32)
195     (i8x16.extract_lane_s 0 (v128.load64_splat (i32.const 11)))
196   )
197 )
198 (assert_return (invoke "v128.load8_splat-in-block") (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
199 (assert_return (invoke "v128.load16_splat-in-block") (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201))
200 (assert_return (invoke "v128.load32_splat-in-block") (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302))
201 (assert_return (invoke "v128.load64_splat-in-block") (v128.const i64x2 0x0000000000000A09 0x0000000000000A09))
202 (assert_return (invoke "v128.load8_splat-as-br-value") (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3))
203 (assert_return (invoke "v128.load16_splat-as-br-value") (v128.const i16x8 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504))
204 (assert_return (invoke "v128.load32_splat-as-br-value") (v128.const i32x4 0x08070605 0x08070605 0x08070605 0x08070605))
205 (assert_return (invoke "v128.load64_splat-as-br-value") (v128.const i64x2 0x000000000000000A 0x000000000000000A))
206 (assert_return (invoke "v128.load8_splat-extract_lane_s-operand") (i32.const 6))
207 (assert_return (invoke "v128.load16_splat-extract_lane_s-operand") (i32.const 7))
208 (assert_return (invoke "v128.load32_splat-extract_lane_s-operand") (i32.const 8))
209 (assert_return (invoke "v128.load64_splat-extract_lane_s-operand") (i32.const 0))
210
211
212 ;; Type check
213
214 (assert_invalid (module (memory 0) (func (result v128) (v128.load8_splat (v128.const i32x4 0 0 0 0)))) "type mismatch")
215 (assert_invalid (module (memory 0) (func (result v128) (v128.load16_splat (v128.const i32x4 0 0 0 0)))) "type mismatch")
216 (assert_invalid (module (memory 0) (func (result v128) (v128.load32_splat (v128.const i32x4 0 0 0 0)))) "type mismatch")
217 (assert_invalid (module (memory 0) (func (result v128) (v128.load64_splat (v128.const i32x4 0 0 0 0)))) "type mismatch")
218
219
220 ;; Unknown operator
221
222 (assert_malformed (module quote "(memory 1) (func (drop (i8x16.load_splat (i32.const 0))))") "unknown operator")
223 (assert_malformed (module quote "(memory 1) (func (drop (i16x8.load_splat (i32.const 0))))") "unknown operator")
224 (assert_malformed (module quote "(memory 1) (func (drop (i32x4.load_splat (i32.const 0))))") "unknown operator")
225 (assert_malformed (module quote "(memory 1) (func (drop (i64x2.load_splat (i32.const 0))))") "unknown operator")
226
227
228 ;; Test operation with empty argument
229
230 (assert_invalid
231   (module (memory 0)
232     (func $v128.load8_splat-arg-empty (result v128)
233       (v128.load8_splat)
234     )
235   )
236   "type mismatch"
237 )
238 (assert_invalid
239   (module (memory 0)
240     (func $v128.load16_splat-arg-empty (result v128)
241       (v128.load16_splat)
242     )
243   )
244   "type mismatch"
245 )
246 (assert_invalid
247   (module (memory 0)
248     (func $v128.load32_splat-arg-empty (result v128)
249       (v128.load32_splat)
250     )
251   )
252   "type mismatch"
253 )
254 (assert_invalid
255   (module (memory 0)
256     (func $v128.load64_splat-arg-empty (result v128)
257       (v128.load64_splat)
258     )
259   )
260   "type mismatch"
261 )