-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathsimd_load.wast
65 lines (55 loc) · 1.67 KB
/
simd_load.wast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
;; v128.load operater with normal argument (e.g. (i8x16, i16x8 i32x4))
(module
(memory 1)
(data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f\00\01\02\03")
(func (export "v128.load") (result v128)
(v128.load (i32.const 0))
)
)
(assert_return (invoke "v128.load") (v128.const i8x16 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f))
(assert_return (invoke "v128.load") (v128.const i16x8 0x0100 0x0302 0x0504 0x0706 0x0908 0x0b0a 0x0d0c 0x0f0e))
(assert_return (invoke "v128.load") (v128.const i32x4 0x03020100 0x07060504 0x0b0a0908 0x0f0e0d0c))
;; Unknown operator(e.g. v128.load8, v128.load16, v128.load32)
(assert_malformed
(module quote
"(memory 1)"
"(func (local v128) (drop (v128.load8 (i32.const 0))))"
)
"unknown operator"
)
(assert_malformed
(module quote
"(memory 1)"
"(func (local v128) (drop (v128.load16 (i32.const 0))))"
)
"unknown operator"
)
(assert_malformed
(module quote
"(memory 1)"
"(func (local v128) (drop (v128.load32 (i32.const 0))))"
)
"unknown operator"
)
;; Type mismatched (e.g. v128.load(f32.const 0), type address empty)
(assert_invalid
(module (memory 1) (func (local v128) (drop (v128.load (f32.const 0)))))
"type mismatch"
)
(assert_invalid
(module (memory 1) (func (local v128) (block (br_if 0 (v128.load (i32.const 0))))))
"type mismatch"
)
(assert_invalid
(module (memory 1) (func (local v128) (v128.load (i32.const 0))))
"type mismatch"
)
;; Type address empty
(assert_invalid
(module (memory 1) (func (drop (v128.load (local.get 2)))))
"unknown local 2"
)
(assert_invalid
(module (memory 1) (func (drop (v128.load))))
"type mismatch"
)