...

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

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

     1;; Tests for i64x2 [abs] operations.
     2
     3(module
     4  (func (export "i64x2.abs") (param v128) (result v128) (i64x2.abs (local.get 0)))
     5  (func (export "i64x2.abs_with_const_0") (result v128) (i64x2.abs (v128.const i64x2 -9223372036854775808 9223372036854775807)))
     6)
     7
     8(assert_return (invoke "i64x2.abs" (v128.const i64x2 1 1))
     9                                   (v128.const i64x2 1 1))
    10(assert_return (invoke "i64x2.abs" (v128.const i64x2 -1 -1))
    11                                   (v128.const i64x2 1 1))
    12(assert_return (invoke "i64x2.abs" (v128.const i64x2 18446744073709551615 18446744073709551615))
    13                                   (v128.const i64x2 1 1))
    14(assert_return (invoke "i64x2.abs" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff))
    15                                   (v128.const i64x2 0x1 0x1))
    16(assert_return (invoke "i64x2.abs" (v128.const i64x2 9223372036854775808 9223372036854775808))
    17                                   (v128.const i64x2 9223372036854775808 9223372036854775808))
    18(assert_return (invoke "i64x2.abs" (v128.const i64x2 -9223372036854775808 -9223372036854775808))
    19                                   (v128.const i64x2 9223372036854775808 9223372036854775808))
    20(assert_return (invoke "i64x2.abs" (v128.const i64x2 -0x8000000000000000 -0x8000000000000000))
    21                                   (v128.const i64x2 0x8000000000000000 0x8000000000000000))
    22(assert_return (invoke "i64x2.abs" (v128.const i64x2 0x8000000000000000 0x8000000000000000))
    23                                   (v128.const i64x2 0x8000000000000000 0x8000000000000000))
    24(assert_return (invoke "i64x2.abs" (v128.const i64x2 01_2_3 01_2_3))
    25                                   (v128.const i64x2 01_2_3 01_2_3))
    26(assert_return (invoke "i64x2.abs" (v128.const i64x2 -01_2_3 -01_2_3))
    27                                   (v128.const i64x2 123 123))
    28(assert_return (invoke "i64x2.abs" (v128.const i64x2 0x80 0x80))
    29                                   (v128.const i64x2 0x80 0x80))
    30(assert_return (invoke "i64x2.abs" (v128.const i64x2 -0x80 -0x80))
    31                                   (v128.const i64x2 0x80 0x80))
    32(assert_return (invoke "i64x2.abs" (v128.const i64x2 0x0_8_0 0x0_8_0))
    33                                   (v128.const i64x2 0x0_8_0 0x0_8_0))
    34(assert_return (invoke "i64x2.abs" (v128.const i64x2 -0x0_8_0 -0x0_8_0))
    35                                   (v128.const i64x2 0x80 0x80))
    36
    37;; Const vs const
    38(assert_return (invoke "i64x2.abs_with_const_0") (v128.const i64x2 9223372036854775808 9223372036854775807))
    39
    40;; Param vs const
    41
    42;; Test different lanes go through different if-then clauses
    43(assert_return (invoke "i64x2.abs" (v128.const i64x2 -9223372036854775808 9223372036854775807))
    44                                   (v128.const i64x2 9223372036854775808 9223372036854775807))
    45
    46;; Test opposite signs of zero
    47(assert_return (invoke "i64x2.abs" (v128.const i64x2 -0 -0))
    48                                   (v128.const i64x2 -0 -0))
    49(assert_return (invoke "i64x2.abs" (v128.const i64x2 +0 0))
    50                                   (v128.const i64x2 +0 0))
    51(assert_return (invoke "i64x2.abs" (v128.const i64x2 -0 -0))
    52                                   (v128.const i64x2 -0 -0))
    53(assert_return (invoke "i64x2.abs" (v128.const i64x2 +0 +0))
    54                                   (v128.const i64x2 +0 +0))
    55
    56;; Unknown operators
    57
    58;; Type check
    59(assert_invalid (module (func (result v128) (i64x2.abs (f32.const 0.0)))) "type mismatch")
    60
    61;; Test operation with empty argument
    62
    63(assert_invalid
    64  (module
    65    (func $i64x2.abs-arg-empty (result v128)
    66      (i64x2.abs)
    67    )
    68  )
    69  "type mismatch"
    70)
    71
    72;; Combination
    73(module
    74  (func (export "i64x2.abs-i64x2.abs") (param v128) (result v128) (i64x2.abs (i64x2.abs (local.get 0))))
    75)
    76
    77(assert_return (invoke "i64x2.abs-i64x2.abs" (v128.const i64x2 -1 -1))
    78                                             (v128.const i64x2 1 1))

View as plain text