wa-lang.org/wazero@v1.0.2/internal/integration_test/spectest/v2/testdata/simd_i32x4_dot_i16x8.wast (about)

     1  ;; Tests for i32x4 arithmetic operations on major boundary values and all special values.
     2  
     3  
     4  (module
     5    (func (export "i32x4.dot_i16x8_s") (param v128 v128) (result v128) (i32x4.dot_i16x8_s (local.get 0) (local.get 1)))
     6  )
     7  
     8  
     9  ;; i32x4.dot_i16x8_s
    10  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
    11                                             (v128.const i16x8 0 0 0 0 0 0 0 0))
    12                                             (v128.const i32x4 0 0 0 0))
    13  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
    14                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    15                                             (v128.const i32x4 0 0 0 0))
    16  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1)
    17                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    18                                             (v128.const i32x4 2 2 2 2))
    19  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)
    20                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    21                                             (v128.const i32x4 0 0 0 0))
    22  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1)
    23                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    24                                             (v128.const i32x4 -2 -2 -2 -2))
    25  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)
    26                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    27                                             (v128.const i32x4 2 2 2 2))
    28  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383)
    29                                             (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
    30                                             (v128.const i32x4 536838144 536838144 536838144 536838144))
    31  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)
    32                                             (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384))
    33                                             (v128.const i32x4 536870912 536870912 536870912 536870912))
    34  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383)
    35                                             (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
    36                                             (v128.const i32x4 536838144 536838144 536838144 536838144))
    37  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)
    38                                             (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
    39                                             (v128.const i32x4 536870912 536870912 536870912 536870912))
    40  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385)
    41                                             (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384))
    42                                             (v128.const i32x4 536903680 536903680 536903680 536903680))
    43  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)
    44                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    45                                             (v128.const i32x4 65530 65530 65530 65530))
    46  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)
    47                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    48                                             (v128.const i32x4 65532 65532 65532 65532))
    49  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)
    50                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    51                                             (v128.const i32x4 -65536 -65536 -65536 -65536))
    52  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766)
    53                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    54                                             (v128.const i32x4 65532 65532 65532 65532))
    55  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)
    56                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    57                                             (v128.const i32x4 65534 65534 65534 65534))
    58  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
    59                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    60                                             (v128.const i32x4 65536 65536 65536 65536))
    61  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)
    62                                             (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
    63                                             (v128.const i32x4 2147352578 2147352578 2147352578 2147352578))
    64  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
    65                                             (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
    66                                             (v128.const i32x4 2147483648 2147483648 2147483648 2147483648))
    67  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)
    68                                             (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767))
    69                                             (v128.const i32x4 2147418112 2147418112 2147418112 2147418112))
    70  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    71                                             (v128.const i16x8 0 0 0 0 0 0 0 0))
    72                                             (v128.const i32x4 0 0 0 0))
    73  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    74                                             (v128.const i16x8 1 1 1 1 1 1 1 1))
    75                                             (v128.const i32x4 -2 -2 -2 -2))
    76  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    77                                             (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    78                                             (v128.const i32x4 2 2 2 2))
    79  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    80                                             (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
    81                                             (v128.const i32x4 -65534 -65534 -65534 -65534))
    82  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    83                                             (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
    84                                             (v128.const i32x4 65536 65536 65536 65536))
    85  (assert_return (invoke "i32x4.dot_i16x8_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)
    86                                             (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535))
    87                                             (v128.const i32x4 2 2 2 2))
    88  
    89  ;; type check
    90  (assert_invalid (module (func (result v128) (i32x4.dot_i16x8_s (i32.const 0) (f32.const 0.0)))) "type mismatch")
    91  
    92  ;; Test operation with empty argument
    93  
    94  (assert_invalid
    95    (module
    96      (func $i32x4.dot_i16x8_s-1st-arg-empty (result v128)
    97        (i32x4.dot_i16x8_s (v128.const i32x4 0 0 0 0))
    98      )
    99    )
   100    "type mismatch"
   101  )
   102  (assert_invalid
   103    (module
   104      (func $i32x4.dot_i16x8_s-arg-empty (result v128)
   105        (i32x4.dot_i16x8_s)
   106      )
   107    )
   108    "type mismatch"
   109  )
   110