...

Text file src/github.com/tetratelabs/wazero/internal/integration_test/spectest/v2/testdata/simd_i32x4_dot_i16x8.wast

Documentation: github.com/tetratelabs/wazero/internal/integration_test/spectest/v2/testdata

     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

View as plain text