github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/internal/integration_test/spectest/v2/testdata/simd_i16x8_extadd_pairwise_i8x16.wast (about)

     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