c2267de9c3ee5611584279e851f2824946eff040
[platform/framework/web/lwnode.git] /
1 ;; Tests for i16x8 arithmetic operations on major boundary values and all special values.
2
3
4 (module
5   (func (export "i16x8.extadd_pairwise_i8x16_s") (param v128) (result v128) (i16x8.extadd_pairwise_i8x16_s (local.get 0)))
6   (func (export "i16x8.extadd_pairwise_i8x16_u") (param v128) (result v128) (i16x8.extadd_pairwise_i8x16_u (local.get 0)))
7 )
8
9
10 ;; i16x8.extadd_pairwise_i8x16_s
11 (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))
12                                                        (v128.const i16x8 0 0 0 0 0 0 0 0))
13 (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))
14                                                        (v128.const i16x8 2 2 2 2 2 2 2 2))
15 (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))
16                                                        (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2))
17 (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))
18                                                        (v128.const i16x8 252 252 252 252 252 252 252 252))
19 (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))
20                                                        (v128.const i16x8 -254 -254 -254 -254 -254 -254 -254 -254))
21 (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))
22                                                        (v128.const i16x8 -256 -256 -256 -256 -256 -256 -256 -256))
23 (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))
24                                                        (v128.const i16x8 254 254 254 254 254 254 254 254))
25 (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))
26                                                        (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2))
27
28 ;; i16x8.extadd_pairwise_i8x16_u
29 (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))
30                                                        (v128.const i16x8 0 0 0 0 0 0 0 0))
31 (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))
32                                                        (v128.const i16x8 2 2 2 2 2 2 2 2))
33 (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))
34                                                        (v128.const i16x8 510 510 510 510 510 510 510 510))
35 (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))
36                                                        (v128.const i16x8 252 252 252 252 252 252 252 252))
37 (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))
38                                                        (v128.const i16x8 258 258 258 258 258 258 258 258))
39 (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))
40                                                        (v128.const i16x8 256 256 256 256 256 256 256 256))
41 (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))
42                                                        (v128.const i16x8 254 254 254 254 254 254 254 254))
43 (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))
44                                                        (v128.const i16x8 510 510 510 510 510 510 510 510))
45
46 ;; type check
47 (assert_invalid (module (func (result v128) (i16x8.extadd_pairwise_i8x16_s (i32.const 0)))) "type mismatch")
48 (assert_invalid (module (func (result v128) (i16x8.extadd_pairwise_i8x16_u (i32.const 0)))) "type mismatch")
49
50 ;; Test operation with empty argument
51
52 (assert_invalid
53   (module
54     (func $i16x8.extadd_pairwise_i8x16_s-arg-empty (result v128)
55       (i16x8.extadd_pairwise_i8x16_s)
56     )
57   )
58   "type mismatch"
59 )
60 (assert_invalid
61   (module
62     (func $i16x8.extadd_pairwise_i8x16_u-arg-empty (result v128)
63       (i16x8.extadd_pairwise_i8x16_u)
64     )
65   )
66   "type mismatch"
67 )
68