-
Notifications
You must be signed in to change notification settings - Fork 57
/
simd_i16x8_extadd_pairwise_i8x16.wast
68 lines (59 loc) · 4.67 KB
/
simd_i16x8_extadd_pairwise_i8x16.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
66
67
;; Tests for i16x8 arithmetic operations on major boundary values and all special values.
(module
(func (export "i16x8.extadd_pairwise_i8x16_s") (param v128) (result v128) (i16x8.extadd_pairwise_i8x16_s (local.get 0)))
(func (export "i16x8.extadd_pairwise_i8x16_u") (param v128) (result v128) (i16x8.extadd_pairwise_i8x16_u (local.get 0)))
)
;; i16x8.extadd_pairwise_i8x16_s
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i16x8 0 0 0 0 0 0 0 0))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
(v128.const i16x8 2 2 2 2 2 2 2 2))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
(v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126))
(v128.const i16x8 252 252 252 252 252 252 252 252))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
(v128.const i16x8 -254 -254 -254 -254 -254 -254 -254 -254))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
(v128.const i16x8 -256 -256 -256 -256 -256 -256 -256 -256))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
(v128.const i16x8 254 254 254 254 254 254 254 254))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2))
;; i16x8.extadd_pairwise_i8x16_u
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
(v128.const i16x8 0 0 0 0 0 0 0 0))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1))
(v128.const i16x8 2 2 2 2 2 2 2 2))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
(v128.const i16x8 510 510 510 510 510 510 510 510))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126))
(v128.const i16x8 252 252 252 252 252 252 252 252))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127))
(v128.const i16x8 258 258 258 258 258 258 258 258))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
(v128.const i16x8 256 256 256 256 256 256 256 256))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
(v128.const i16x8 254 254 254 254 254 254 254 254))
(assert_return (invoke "i16x8.extadd_pairwise_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
(v128.const i16x8 510 510 510 510 510 510 510 510))
;; type check
(assert_invalid (module (func (result v128) (i16x8.extadd_pairwise_i8x16_s (i32.const 0)))) "type mismatch")
(assert_invalid (module (func (result v128) (i16x8.extadd_pairwise_i8x16_u (i32.const 0)))) "type mismatch")
;; Test operation with empty argument
(assert_invalid
(module
(func $i16x8.extadd_pairwise_i8x16_s-arg-empty (result v128)
(i16x8.extadd_pairwise_i8x16_s)
)
)
"type mismatch"
)
(assert_invalid
(module
(func $i16x8.extadd_pairwise_i8x16_u-arg-empty (result v128)
(i16x8.extadd_pairwise_i8x16_u)
)
)
"type mismatch"
)