github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/internal/integration_test/spectest/v2/testdata/simd_int_to_int_extend.wast (about)

     1  ;; Tests for int-to-int extension operations.
     2  
     3  (module
     4    (func (export "i16x8.extend_high_i8x16_s") (param v128) (result v128) (i16x8.extend_high_i8x16_s (local.get 0)))
     5    (func (export "i16x8.extend_high_i8x16_u") (param v128) (result v128) (i16x8.extend_high_i8x16_u (local.get 0)))
     6    (func (export "i16x8.extend_low_i8x16_s") (param v128) (result v128) (i16x8.extend_low_i8x16_s (local.get 0)))
     7    (func (export "i16x8.extend_low_i8x16_u") (param v128) (result v128) (i16x8.extend_low_i8x16_u (local.get 0)))
     8    (func (export "i32x4.extend_high_i16x8_s") (param v128) (result v128) (i32x4.extend_high_i16x8_s (local.get 0)))
     9    (func (export "i32x4.extend_high_i16x8_u") (param v128) (result v128) (i32x4.extend_high_i16x8_u (local.get 0)))
    10    (func (export "i32x4.extend_low_i16x8_s") (param v128) (result v128) (i32x4.extend_low_i16x8_s (local.get 0)))
    11    (func (export "i32x4.extend_low_i16x8_u") (param v128) (result v128) (i32x4.extend_low_i16x8_u (local.get 0)))
    12    (func (export "i64x2.extend_high_i32x4_s") (param v128) (result v128) (i64x2.extend_high_i32x4_s (local.get 0)))
    13    (func (export "i64x2.extend_high_i32x4_u") (param v128) (result v128) (i64x2.extend_high_i32x4_u (local.get 0)))
    14    (func (export "i64x2.extend_low_i32x4_s") (param v128) (result v128) (i64x2.extend_low_i32x4_s (local.get 0)))
    15    (func (export "i64x2.extend_low_i32x4_u") (param v128) (result v128) (i64x2.extend_low_i32x4_u (local.get 0)))
    16  )
    17  
    18  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
    19                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    20  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1))
    21                                                     (v128.const i16x8 1 1 1 1 1 1 1 1))
    22  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1))
    23                                                     (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    24  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0))
    25                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    26  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0))
    27                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    28  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1))
    29                                                     (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    30  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1))
    31                                                     (v128.const i16x8 1 1 1 1 1 1 1 1))
    32  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 127 127 127 127 127 127 127 127))
    33                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    34  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 126 126 126 126 126 126 126 126))
    35                                                     (v128.const i16x8 126 126 126 126 126 126 126 126))
    36  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
    37                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    38  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
    39                                                     (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
    40  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 -128 -128 -128 -128 -128 -128 -128 -128))
    41                                                     (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
    42  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 127 127 127 127 127 127 127 127))
    43                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    44  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 -1 -1 -1 -1 -1 -1 -1 -1))
    45                                                     (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    46  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 127 127 127 127 127 127 127 127))
    47                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    48  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -128 -128 -128 -128 -128 -128 -128 -128))
    49                                                     (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
    50  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -127 -127 -127 -127 -127 -127 -127 -127))
    51                                                     (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127))
    52  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -1 -1 -1 -1 -1 -1 -1 -1))
    53                                                     (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
    54  (assert_return (invoke "i16x8.extend_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -128 -128 -128 -128 -128 -128 -128 -128))
    55                                                     (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
    56  
    57  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
    58                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    59  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1))
    60                                                     (v128.const i16x8 1 1 1 1 1 1 1 1))
    61  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1))
    62                                                     (v128.const i16x8 255 255 255 255 255 255 255 255))
    63  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0))
    64                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    65  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0))
    66                                                     (v128.const i16x8 0 0 0 0 0 0 0 0))
    67  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1))
    68                                                     (v128.const i16x8 255 255 255 255 255 255 255 255))
    69  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1))
    70                                                     (v128.const i16x8 1 1 1 1 1 1 1 1))
    71  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 127 127 127 127 127 127 127 127))
    72                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    73  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 126 126 126 126 126 126 126 126))
    74                                                     (v128.const i16x8 126 126 126 126 126 126 126 126))
    75  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
    76                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    77  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
    78                                                     (v128.const i16x8 128 128 128 128 128 128 128 128))
    79  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 -128 -128 -128 -128 -128 -128 -128 -128))
    80                                                     (v128.const i16x8 128 128 128 128 128 128 128 128))
    81  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 127 127 127 127 127 127 127 127))
    82                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    83  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 -1 -1 -1 -1 -1 -1 -1 -1))
    84                                                     (v128.const i16x8 255 255 255 255 255 255 255 255))
    85  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 127 127 127 127 127 127 127 127))
    86                                                     (v128.const i16x8 127 127 127 127 127 127 127 127))
    87  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -128 -128 -128 -128 -128 -128 -128 -128))
    88                                                     (v128.const i16x8 128 128 128 128 128 128 128 128))
    89  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -127 -127 -127 -127 -127 -127 -127 -127))
    90                                                     (v128.const i16x8 129 129 129 129 129 129 129 129))
    91  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -1 -1 -1 -1 -1 -1 -1 -1))
    92                                                     (v128.const i16x8 255 255 255 255 255 255 255 255))
    93  (assert_return (invoke "i16x8.extend_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -128 -128 -128 -128 -128 -128 -128 -128))
    94                                                     (v128.const i16x8 128 128 128 128 128 128 128 128))
    95  
    96  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
    97                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
    98  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1))
    99                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
   100  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1))
   101                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
   102  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0))
   103                                                    (v128.const i16x8 1 1 1 1 1 1 1 1))
   104  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0))
   105                                                    (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
   106  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1))
   107                                                    (v128.const i16x8 1 1 1 1 1 1 1 1))
   108  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1))
   109                                                    (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
   110  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 127 127 127 127 127 127 127 127))
   111                                                    (v128.const i16x8 126 126 126 126 126 126 126 126))
   112  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 126 126 126 126 126 126 126 126))
   113                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   114  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
   115                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   116  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
   117                                                    (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
   118  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 -128 -128 -128 -128 -128 -128 -128 -128))
   119                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   120  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 127 127 127 127 127 127 127 127))
   121                                                    (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
   122  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 -1 -1 -1 -1 -1 -1 -1 -1))
   123                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   124  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 127 127 127 127 127 127 127 127))
   125                                                    (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
   126  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -128 -128 -128 -128 -128 -128 -128 -128))
   127                                                    (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127))
   128  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -127 -127 -127 -127 -127 -127 -127 -127))
   129                                                    (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
   130  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -1 -1 -1 -1 -1 -1 -1 -1))
   131                                                    (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128))
   132  (assert_return (invoke "i16x8.extend_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -128 -128 -128 -128 -128 -128 -128 -128))
   133                                                    (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1))
   134  
   135  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
   136                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
   137  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1))
   138                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
   139  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1))
   140                                                    (v128.const i16x8 0 0 0 0 0 0 0 0))
   141  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0))
   142                                                    (v128.const i16x8 1 1 1 1 1 1 1 1))
   143  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0))
   144                                                    (v128.const i16x8 255 255 255 255 255 255 255 255))
   145  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1))
   146                                                    (v128.const i16x8 1 1 1 1 1 1 1 1))
   147  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1))
   148                                                    (v128.const i16x8 255 255 255 255 255 255 255 255))
   149  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 127 127 127 127 127 127 127 127))
   150                                                    (v128.const i16x8 126 126 126 126 126 126 126 126))
   151  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 126 126 126 126 126 126 126 126))
   152                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   153  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127))
   154                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   155  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128))
   156                                                    (v128.const i16x8 128 128 128 128 128 128 128 128))
   157  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 -128 -128 -128 -128 -128 -128 -128 -128))
   158                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   159  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 127 127 127 127 127 127 127 127))
   160                                                    (v128.const i16x8 128 128 128 128 128 128 128 128))
   161  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 -1 -1 -1 -1 -1 -1 -1 -1))
   162                                                    (v128.const i16x8 127 127 127 127 127 127 127 127))
   163  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 127 127 127 127 127 127 127 127))
   164                                                    (v128.const i16x8 255 255 255 255 255 255 255 255))
   165  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -128 -128 -128 -128 -128 -128 -128 -128))
   166                                                    (v128.const i16x8 129 129 129 129 129 129 129 129))
   167  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -127 -127 -127 -127 -127 -127 -127 -127))
   168                                                    (v128.const i16x8 128 128 128 128 128 128 128 128))
   169  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -1 -1 -1 -1 -1 -1 -1 -1))
   170                                                    (v128.const i16x8 128 128 128 128 128 128 128 128))
   171  (assert_return (invoke "i16x8.extend_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -128 -128 -128 -128 -128 -128 -128 -128))
   172                                                    (v128.const i16x8 255 255 255 255 255 255 255 255))
   173  
   174  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0))
   175                                                     (v128.const i32x4 0 0 0 0))
   176  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1))
   177                                                     (v128.const i32x4 1 1 1 1))
   178  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1))
   179                                                     (v128.const i32x4 -1 -1 -1 -1))
   180  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0))
   181                                                     (v128.const i32x4 0 0 0 0))
   182  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0))
   183                                                     (v128.const i32x4 0 0 0 0))
   184  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1))
   185                                                     (v128.const i32x4 -1 -1 -1 -1))
   186  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1))
   187                                                     (v128.const i32x4 1 1 1 1))
   188  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 32766 32766 32766 32766 32767 32767 32767 32767))
   189                                                     (v128.const i32x4 32767 32767 32767 32767))
   190  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32766 32766 32766 32766))
   191                                                     (v128.const i32x4 32766 32766 32766 32766))
   192  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
   193                                                     (v128.const i32x4 32767 32767 32767 32767))
   194  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
   195                                                     (v128.const i32x4 -32768 -32768 -32768 -32768))
   196  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 -32768 -32768 -32768 -32768))
   197                                                     (v128.const i32x4 -32768 -32768 -32768 -32768))
   198  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 32767 32767 32767 32767))
   199                                                     (v128.const i32x4 32767 32767 32767 32767))
   200  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 -1 -1 -1 -1))
   201                                                     (v128.const i32x4 -1 -1 -1 -1))
   202  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 32767 32767 32767 32767))
   203                                                     (v128.const i32x4 32767 32767 32767 32767))
   204  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32768 -32768 -32768 -32768))
   205                                                     (v128.const i32x4 -32768 -32768 -32768 -32768))
   206  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32767 -32767 -32767 -32767))
   207                                                     (v128.const i32x4 -32767 -32767 -32767 -32767))
   208  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -1 -1 -1 -1))
   209                                                     (v128.const i32x4 -1 -1 -1 -1))
   210  (assert_return (invoke "i32x4.extend_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -32768 -32768 -32768 -32768))
   211                                                     (v128.const i32x4 -32768 -32768 -32768 -32768))
   212  
   213  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0))
   214                                                     (v128.const i32x4 0 0 0 0))
   215  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1))
   216                                                     (v128.const i32x4 1 1 1 1))
   217  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1))
   218                                                     (v128.const i32x4 65535 65535 65535 65535))
   219  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0))
   220                                                     (v128.const i32x4 0 0 0 0))
   221  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0))
   222                                                     (v128.const i32x4 0 0 0 0))
   223  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1))
   224                                                     (v128.const i32x4 65535 65535 65535 65535))
   225  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1))
   226                                                     (v128.const i32x4 1 1 1 1))
   227  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 32766 32766 32766 32766 32767 32767 32767 32767))
   228                                                     (v128.const i32x4 32767 32767 32767 32767))
   229  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 32766 32766 32766 32766))
   230                                                     (v128.const i32x4 32766 32766 32766 32766))
   231  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
   232                                                     (v128.const i32x4 32767 32767 32767 32767))
   233  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
   234                                                     (v128.const i32x4 32768 32768 32768 32768))
   235  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 -32768 -32768 -32768 -32768))
   236                                                     (v128.const i32x4 32768 32768 32768 32768))
   237  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 32767 32767 32767 32767))
   238                                                     (v128.const i32x4 32767 32767 32767 32767))
   239  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 -1 -1 -1 -1))
   240                                                     (v128.const i32x4 65535 65535 65535 65535))
   241  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 32767 32767 32767 32767))
   242                                                     (v128.const i32x4 32767 32767 32767 32767))
   243  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -32767 -32767 -32767 -32767 -32768 -32768 -32768 -32768))
   244                                                     (v128.const i32x4 32768 32768 32768 32768))
   245  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32767 -32767 -32767 -32767))
   246                                                     (v128.const i32x4 32769 32769 32769 32769))
   247  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -1 -1 -1 -1))
   248                                                     (v128.const i32x4 65535 65535 65535 65535))
   249  (assert_return (invoke "i32x4.extend_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -32768 -32768 -32768 -32768))
   250                                                     (v128.const i32x4 32768 32768 32768 32768))
   251  
   252  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0))
   253                                                    (v128.const i32x4 0 0 0 0))
   254  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1))
   255                                                    (v128.const i32x4 0 0 0 0))
   256  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1))
   257                                                    (v128.const i32x4 0 0 0 0))
   258  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0))
   259                                                    (v128.const i32x4 1 1 1 1))
   260  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0))
   261                                                    (v128.const i32x4 -1 -1 -1 -1))
   262  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1))
   263                                                    (v128.const i32x4 1 1 1 1))
   264  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1))
   265                                                    (v128.const i32x4 -1 -1 -1 -1))
   266  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 32766 32766 32766 32766 32767 32767 32767 32767))
   267                                                    (v128.const i32x4 32766 32766 32766 32766))
   268  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32766 32766 32766 32766))
   269                                                    (v128.const i32x4 32767 32767 32767 32767))
   270  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
   271                                                    (v128.const i32x4 32767 32767 32767 32767))
   272  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
   273                                                    (v128.const i32x4 -32768 -32768 -32768 -32768))
   274  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 -32768 -32768 -32768 -32768))
   275                                                    (v128.const i32x4 32767 32767 32767 32767))
   276  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 32767 32767 32767 32767))
   277                                                    (v128.const i32x4 -32768 -32768 -32768 -32768))
   278  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 32767 32767 32767 32767 -1 -1 -1 -1))
   279                                                    (v128.const i32x4 32767 32767 32767 32767))
   280  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 32767 32767 32767 32767))
   281                                                    (v128.const i32x4 -1 -1 -1 -1))
   282  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32768 -32768 -32768 -32768))
   283                                                    (v128.const i32x4 -32767 -32767 -32767 -32767))
   284  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32767 -32767 -32767 -32767))
   285                                                    (v128.const i32x4 -32768 -32768 -32768 -32768))
   286  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -1 -1 -1 -1))
   287                                                    (v128.const i32x4 -32768 -32768 -32768 -32768))
   288  (assert_return (invoke "i32x4.extend_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -32768 -32768 -32768 -32768))
   289                                                    (v128.const i32x4 -1 -1 -1 -1))
   290  
   291  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0))
   292                                                    (v128.const i32x4 0 0 0 0))
   293  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1))
   294                                                    (v128.const i32x4 0 0 0 0))
   295  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1))
   296                                                    (v128.const i32x4 0 0 0 0))
   297  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0))
   298                                                    (v128.const i32x4 1 1 1 1))
   299  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0))
   300                                                    (v128.const i32x4 65535 65535 65535 65535))
   301  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1))
   302                                                    (v128.const i32x4 1 1 1 1))
   303  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1))
   304                                                    (v128.const i32x4 65535 65535 65535 65535))
   305  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 32766 32766 32766 32766 32767 32767 32767 32767))
   306                                                    (v128.const i32x4 32766 32766 32766 32766))
   307  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 32766 32766 32766 32766))
   308                                                    (v128.const i32x4 32767 32767 32767 32767))
   309  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767))
   310                                                    (v128.const i32x4 32767 32767 32767 32767))
   311  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768))
   312                                                    (v128.const i32x4 32768 32768 32768 32768))
   313  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 -32768 -32768 -32768 -32768))
   314                                                    (v128.const i32x4 32767 32767 32767 32767))
   315  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 32767 32767 32767 32767))
   316                                                    (v128.const i32x4 32768 32768 32768 32768))
   317  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 32767 32767 32767 32767 -1 -1 -1 -1))
   318                                                    (v128.const i32x4 32767 32767 32767 32767))
   319  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 32767 32767 32767 32767))
   320                                                    (v128.const i32x4 65535 65535 65535 65535))
   321  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -32767 -32767 -32767 -32767 -32768 -32768 -32768 -32768))
   322                                                    (v128.const i32x4 32769 32769 32769 32769))
   323  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32767 -32767 -32767 -32767))
   324                                                    (v128.const i32x4 32768 32768 32768 32768))
   325  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -1 -1 -1 -1))
   326                                                    (v128.const i32x4 32768 32768 32768 32768))
   327  (assert_return (invoke "i32x4.extend_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -32768 -32768 -32768 -32768))
   328                                                    (v128.const i32x4 65535 65535 65535 65535))
   329  
   330  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 0 0 0 0))
   331                                                     (v128.const i64x2 0 0))
   332  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 0 0 1 1))
   333                                                     (v128.const i64x2 1 1))
   334  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 0 0 -1 -1))
   335                                                     (v128.const i64x2 -1 -1))
   336  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 1 1 0 0))
   337                                                     (v128.const i64x2 0 0))
   338  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -1 -1 0 0))
   339                                                     (v128.const i64x2 0 0))
   340  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 1 1 -1 -1))
   341                                                     (v128.const i64x2 -1 -1))
   342  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -1 -1 1 1))
   343                                                     (v128.const i64x2 1 1))
   344  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483647 2147483647))
   345                                                     (v128.const i64x2 2147483647 2147483647))
   346  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483646 2147483646))
   347                                                     (v128.const i64x2 2147483646 2147483646))
   348  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
   349                                                     (v128.const i64x2 2147483647 2147483647))
   350  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
   351                                                     (v128.const i64x2 -2147483648 -2147483648))
   352  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 -2147483648 -2147483648))
   353                                                     (v128.const i64x2 -2147483648 -2147483648))
   354  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 2147483647 2147483647))
   355                                                     (v128.const i64x2 2147483647 2147483647))
   356  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 2147483647 2147483647 -1 -1))
   357                                                     (v128.const i64x2 -1 -1))
   358  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -1 -1 2147483647 2147483647))
   359                                                     (v128.const i64x2 2147483647 2147483647))
   360  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483648 -2147483648))
   361                                                     (v128.const i64x2 -2147483648 -2147483648))
   362  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483647 -2147483647))
   363                                                     (v128.const i64x2 -2147483647 -2147483647))
   364  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -1 -1))
   365                                                     (v128.const i64x2 -1 -1))
   366  (assert_return (invoke "i64x2.extend_high_i32x4_s" (v128.const i32x4 -1 -1 -2147483648 -2147483648))
   367                                                     (v128.const i64x2 -2147483648 -2147483648))
   368  
   369  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 0 0 0 0))
   370                                                     (v128.const i64x2 0 0))
   371  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 0 0 1 1))
   372                                                     (v128.const i64x2 1 1))
   373  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 0 0 -1 -1))
   374                                                     (v128.const i64x2 4294967295 4294967295))
   375  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 1 1 0 0))
   376                                                     (v128.const i64x2 0 0))
   377  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -1 -1 0 0))
   378                                                     (v128.const i64x2 0 0))
   379  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 1 1 -1 -1))
   380                                                     (v128.const i64x2 4294967295 4294967295))
   381  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -1 -1 1 1))
   382                                                     (v128.const i64x2 1 1))
   383  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483647 2147483647))
   384                                                     (v128.const i64x2 2147483647 2147483647))
   385  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483646 2147483646))
   386                                                     (v128.const i64x2 2147483646 2147483646))
   387  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
   388                                                     (v128.const i64x2 2147483647 2147483647))
   389  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
   390                                                     (v128.const i64x2 2147483648 2147483648))
   391  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 -2147483648 -2147483648))
   392                                                     (v128.const i64x2 2147483648 2147483648))
   393  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 2147483647 2147483647))
   394                                                     (v128.const i64x2 2147483647 2147483647))
   395  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 2147483647 2147483647 -1 -1))
   396                                                     (v128.const i64x2 4294967295 4294967295))
   397  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -1 -1 2147483647 2147483647))
   398                                                     (v128.const i64x2 2147483647 2147483647))
   399  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483648 -2147483648))
   400                                                     (v128.const i64x2 2147483648 2147483648))
   401  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483647 -2147483647))
   402                                                     (v128.const i64x2 2147483649 2147483649))
   403  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -1 -1))
   404                                                     (v128.const i64x2 4294967295 4294967295))
   405  (assert_return (invoke "i64x2.extend_high_i32x4_u" (v128.const i32x4 -1 -1 -2147483648 -2147483648))
   406                                                     (v128.const i64x2 2147483648 2147483648))
   407  
   408  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 0 0 0 0))
   409                                                    (v128.const i64x2 0 0))
   410  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 0 0 1 1))
   411                                                    (v128.const i64x2 0 0))
   412  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 0 0 -1 -1))
   413                                                    (v128.const i64x2 0 0))
   414  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 1 1 0 0))
   415                                                    (v128.const i64x2 1 1))
   416  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -1 -1 0 0))
   417                                                    (v128.const i64x2 -1 -1))
   418  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 1 1 -1 -1))
   419                                                    (v128.const i64x2 1 1))
   420  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -1 -1 1 1))
   421                                                    (v128.const i64x2 -1 -1))
   422  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 2147483646 2147483646 2147483647 2147483647))
   423                                                    (v128.const i64x2 2147483646 2147483646))
   424  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483646 2147483646))
   425                                                    (v128.const i64x2 2147483647 2147483647))
   426  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
   427                                                    (v128.const i64x2 2147483647 2147483647))
   428  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
   429                                                    (v128.const i64x2 -2147483648 -2147483648))
   430  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 -2147483648 -2147483648))
   431                                                    (v128.const i64x2 2147483647 2147483647))
   432  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 2147483647 2147483647))
   433                                                    (v128.const i64x2 -2147483648 -2147483648))
   434  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 2147483647 2147483647 -1 -1))
   435                                                    (v128.const i64x2 2147483647 2147483647))
   436  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -1 -1 2147483647 2147483647))
   437                                                    (v128.const i64x2 -1 -1))
   438  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -2147483647 -2147483647 -2147483648 -2147483648))
   439                                                    (v128.const i64x2 -2147483647 -2147483647))
   440  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483647 -2147483647))
   441                                                    (v128.const i64x2 -2147483648 -2147483648))
   442  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -1 -1))
   443                                                    (v128.const i64x2 -2147483648 -2147483648))
   444  (assert_return (invoke "i64x2.extend_low_i32x4_s" (v128.const i32x4 -1 -1 -2147483648 -2147483648))
   445                                                    (v128.const i64x2 -1 -1))
   446  
   447  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 0 0 0 0))
   448                                                    (v128.const i64x2 0 0))
   449  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 0 0 1 1))
   450                                                    (v128.const i64x2 0 0))
   451  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 0 0 -1 -1))
   452                                                    (v128.const i64x2 0 0))
   453  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 1 1 0 0))
   454                                                    (v128.const i64x2 1 1))
   455  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -1 -1 0 0))
   456                                                    (v128.const i64x2 4294967295 4294967295))
   457  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 1 1 -1 -1))
   458                                                    (v128.const i64x2 1 1))
   459  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -1 -1 1 1))
   460                                                    (v128.const i64x2 4294967295 4294967295))
   461  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 2147483646 2147483646 2147483647 2147483647))
   462                                                    (v128.const i64x2 2147483646 2147483646))
   463  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483646 2147483646))
   464                                                    (v128.const i64x2 2147483647 2147483647))
   465  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647))
   466                                                    (v128.const i64x2 2147483647 2147483647))
   467  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648))
   468                                                    (v128.const i64x2 2147483648 2147483648))
   469  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 -2147483648 -2147483648))
   470                                                    (v128.const i64x2 2147483647 2147483647))
   471  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 2147483647 2147483647))
   472                                                    (v128.const i64x2 2147483648 2147483648))
   473  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 2147483647 2147483647 -1 -1))
   474                                                    (v128.const i64x2 2147483647 2147483647))
   475  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -1 -1 2147483647 2147483647))
   476                                                    (v128.const i64x2 4294967295 4294967295))
   477  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -2147483647 -2147483647 -2147483648 -2147483648))
   478                                                    (v128.const i64x2 2147483649 2147483649))
   479  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483647 -2147483647))
   480                                                    (v128.const i64x2 2147483648 2147483648))
   481  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -1 -1))
   482                                                    (v128.const i64x2 2147483648 2147483648))
   483  (assert_return (invoke "i64x2.extend_low_i32x4_u" (v128.const i32x4 -1 -1 -2147483648 -2147483648))
   484                                                    (v128.const i64x2 4294967295 4294967295))
   485  
   486  
   487  ;; type check
   488  (assert_invalid (module (func (result v128) (i16x8.extend_high_i8x16_s (i32.const 0)))) "type mismatch")
   489  (assert_invalid (module (func (result v128) (i16x8.extend_high_i8x16_u (i32.const 0)))) "type mismatch")
   490  (assert_invalid (module (func (result v128) (i16x8.extend_low_i8x16_s (i32.const 0)))) "type mismatch")
   491  (assert_invalid (module (func (result v128) (i16x8.extend_low_i8x16_u (i32.const 0)))) "type mismatch")
   492  (assert_invalid (module (func (result v128) (i32x4.extend_high_i16x8_s (i32.const 0)))) "type mismatch")
   493  (assert_invalid (module (func (result v128) (i32x4.extend_high_i16x8_u (i32.const 0)))) "type mismatch")
   494  (assert_invalid (module (func (result v128) (i32x4.extend_low_i16x8_s (i32.const 0)))) "type mismatch")
   495  (assert_invalid (module (func (result v128) (i32x4.extend_low_i16x8_u (i32.const 0)))) "type mismatch")
   496  (assert_invalid (module (func (result v128) (i64x2.extend_high_i32x4_s (i32.const 0)))) "type mismatch")
   497  (assert_invalid (module (func (result v128) (i64x2.extend_high_i32x4_u (i32.const 0)))) "type mismatch")
   498  (assert_invalid (module (func (result v128) (i64x2.extend_low_i32x4_s (i32.const 0)))) "type mismatch")
   499  (assert_invalid (module (func (result v128) (i64x2.extend_low_i32x4_u (i32.const 0)))) "type mismatch")
   500  
   501  ;; Test operation with empty argument
   502  
   503  (assert_invalid
   504    (module
   505      (func $i16x8.extend_high_i8x16_s-arg-empty (result v128)
   506        (i16x8.extend_high_i8x16_s)
   507      )
   508    )
   509    "type mismatch"
   510  )
   511  (assert_invalid
   512    (module
   513      (func $i16x8.extend_high_i8x16_u-arg-empty (result v128)
   514        (i16x8.extend_high_i8x16_u)
   515      )
   516    )
   517    "type mismatch"
   518  )
   519  (assert_invalid
   520    (module
   521      (func $i16x8.extend_low_i8x16_s-arg-empty (result v128)
   522        (i16x8.extend_low_i8x16_s)
   523      )
   524    )
   525    "type mismatch"
   526  )
   527  (assert_invalid
   528    (module
   529      (func $i16x8.extend_low_i8x16_u-arg-empty (result v128)
   530        (i16x8.extend_low_i8x16_u)
   531      )
   532    )
   533    "type mismatch"
   534  )
   535  (assert_invalid
   536    (module
   537      (func $i32x4.extend_high_i16x8_s-arg-empty (result v128)
   538        (i32x4.extend_high_i16x8_s)
   539      )
   540    )
   541    "type mismatch"
   542  )
   543  (assert_invalid
   544    (module
   545      (func $i32x4.extend_high_i16x8_u-arg-empty (result v128)
   546        (i32x4.extend_high_i16x8_u)
   547      )
   548    )
   549    "type mismatch"
   550  )
   551  (assert_invalid
   552    (module
   553      (func $i32x4.extend_low_i16x8_s-arg-empty (result v128)
   554        (i32x4.extend_low_i16x8_s)
   555      )
   556    )
   557    "type mismatch"
   558  )
   559  (assert_invalid
   560    (module
   561      (func $i32x4.extend_low_i16x8_u-arg-empty (result v128)
   562        (i32x4.extend_low_i16x8_u)
   563      )
   564    )
   565    "type mismatch"
   566  )
   567  (assert_invalid
   568    (module
   569      (func $i64x2.extend_high_i32x4_s-arg-empty (result v128)
   570        (i64x2.extend_high_i32x4_s)
   571      )
   572    )
   573    "type mismatch"
   574  )
   575  (assert_invalid
   576    (module
   577      (func $i64x2.extend_high_i32x4_u-arg-empty (result v128)
   578        (i64x2.extend_high_i32x4_u)
   579      )
   580    )
   581    "type mismatch"
   582  )
   583  (assert_invalid
   584    (module
   585      (func $i64x2.extend_low_i32x4_s-arg-empty (result v128)
   586        (i64x2.extend_low_i32x4_s)
   587      )
   588    )
   589    "type mismatch"
   590  )
   591  (assert_invalid
   592    (module
   593      (func $i64x2.extend_low_i32x4_u-arg-empty (result v128)
   594        (i64x2.extend_low_i32x4_u)
   595      )
   596    )
   597    "type mismatch"
   598  )
   599