wa-lang.org/wazero@v1.0.2/internal/integration_test/spectest/v2/testdata/simd_i16x8_extmul_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.extmul_low_i8x16_s") (param v128 v128) (result v128) (i16x8.extmul_low_i8x16_s (local.get 0) (local.get 1))) 6 (func (export "i16x8.extmul_high_i8x16_s") (param v128 v128) (result v128) (i16x8.extmul_high_i8x16_s (local.get 0) (local.get 1))) 7 (func (export "i16x8.extmul_low_i8x16_u") (param v128 v128) (result v128) (i16x8.extmul_low_i8x16_u (local.get 0) (local.get 1))) 8 (func (export "i16x8.extmul_high_i8x16_u") (param v128 v128) (result v128) (i16x8.extmul_high_i8x16_u (local.get 0) (local.get 1))) 9 ) 10 11 12 ;; i16x8.extmul_low_i8x16_s 13 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 14 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 15 (v128.const i16x8 0 0 0 0 0 0 0 0)) 16 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 17 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 18 (v128.const i16x8 0 0 0 0 0 0 0 0)) 19 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 20 (v128.const i8x16 1 1 1 1 1 1 1 1 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.extmul_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 23 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 24 (v128.const i16x8 0 0 0 0 0 0 0 0)) 25 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 26 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 27 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) 28 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) 29 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 30 (v128.const i16x8 1 1 1 1 1 1 1 1)) 31 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) 32 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 33 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 34 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) 35 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 36 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 37 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) 38 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 39 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 40 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) 41 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 42 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 43 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) 44 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 45 (v128.const i16x8 4160 4160 4160 4160 4160 4160 4160 4160)) 46 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) 47 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 48 (v128.const i16x8 125 125 125 125 125 125 125 125)) 49 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) 50 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 51 (v128.const i16x8 126 126 126 126 126 126 126 126)) 52 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) 53 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 54 (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128)) 55 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) 56 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 57 (v128.const i16x8 126 126 126 126 126 126 126 126)) 58 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) 59 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 60 (v128.const i16x8 127 127 127 127 127 127 127 127)) 61 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 62 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 63 (v128.const i16x8 128 128 128 128 128 128 128 128)) 64 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) 65 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 66 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129)) 67 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 68 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 69 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) 70 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 71 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) 72 (v128.const i16x8 16256 16256 16256 16256 16256 16256 16256 16256)) 73 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 74 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 75 (v128.const i16x8 0 0 0 0 0 0 0 0)) 76 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 77 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 78 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) 79 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 80 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 81 (v128.const i16x8 1 1 1 1 1 1 1 1)) 82 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 83 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 84 (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127)) 85 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 86 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 87 (v128.const i16x8 128 128 128 128 128 128 128 128)) 88 (assert_return (invoke "i16x8.extmul_low_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 89 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) 90 (v128.const i16x8 1 1 1 1 1 1 1 1)) 91 92 ;; i16x8.extmul_high_i8x16_s 93 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 94 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 95 (v128.const i16x8 0 0 0 0 0 0 0 0)) 96 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 97 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 98 (v128.const i16x8 0 0 0 0 0 0 0 0)) 99 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 100 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 101 (v128.const i16x8 1 1 1 1 1 1 1 1)) 102 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 103 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 104 (v128.const i16x8 0 0 0 0 0 0 0 0)) 105 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 106 (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.extmul_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) 109 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 110 (v128.const i16x8 1 1 1 1 1 1 1 1)) 111 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) 112 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 113 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 114 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) 115 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 116 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 117 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) 118 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 119 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 120 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) 121 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 122 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 123 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) 124 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 125 (v128.const i16x8 4160 4160 4160 4160 4160 4160 4160 4160)) 126 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) 127 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 128 (v128.const i16x8 125 125 125 125 125 125 125 125)) 129 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) 130 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 131 (v128.const i16x8 126 126 126 126 126 126 126 126)) 132 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) 133 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 134 (v128.const i16x8 -128 -128 -128 -128 -128 -128 -128 -128)) 135 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) 136 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 137 (v128.const i16x8 126 126 126 126 126 126 126 126)) 138 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) 139 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 140 (v128.const i16x8 127 127 127 127 127 127 127 127)) 141 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 142 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 143 (v128.const i16x8 128 128 128 128 128 128 128 128)) 144 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) 145 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 146 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129)) 147 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 148 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 149 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) 150 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 151 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) 152 (v128.const i16x8 16256 16256 16256 16256 16256 16256 16256 16256)) 153 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 154 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 155 (v128.const i16x8 0 0 0 0 0 0 0 0)) 156 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 157 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 158 (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) 159 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 160 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 161 (v128.const i16x8 1 1 1 1 1 1 1 1)) 162 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 163 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 164 (v128.const i16x8 -127 -127 -127 -127 -127 -127 -127 -127)) 165 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 166 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 167 (v128.const i16x8 128 128 128 128 128 128 128 128)) 168 (assert_return (invoke "i16x8.extmul_high_i8x16_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 169 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) 170 (v128.const i16x8 1 1 1 1 1 1 1 1)) 171 172 ;; i16x8.extmul_low_i8x16_u 173 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 174 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 175 (v128.const i16x8 0 0 0 0 0 0 0 0)) 176 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 177 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 178 (v128.const i16x8 0 0 0 0 0 0 0 0)) 179 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 180 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 181 (v128.const i16x8 1 1 1 1 1 1 1 1)) 182 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 183 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 184 (v128.const i16x8 0 0 0 0 0 0 0 0)) 185 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 186 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 187 (v128.const i16x8 255 255 255 255 255 255 255 255)) 188 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) 189 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 190 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 191 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) 192 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 193 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 194 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) 195 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 196 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 197 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) 198 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 199 (v128.const i16x8 -28480 -28480 -28480 -28480 -28480 -28480 -28480 -28480)) 200 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) 201 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 202 (v128.const i16x8 -28672 -28672 -28672 -28672 -28672 -28672 -28672 -28672)) 203 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) 204 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 205 (v128.const i16x8 -28864 -28864 -28864 -28864 -28864 -28864 -28864 -28864)) 206 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) 207 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 208 (v128.const i16x8 125 125 125 125 125 125 125 125)) 209 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) 210 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 211 (v128.const i16x8 126 126 126 126 126 126 126 126)) 212 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) 213 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 214 (v128.const i16x8 128 128 128 128 128 128 128 128)) 215 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) 216 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 217 (v128.const i16x8 -32386 -32386 -32386 -32386 -32386 -32386 -32386 -32386)) 218 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) 219 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 220 (v128.const i16x8 -32641 -32641 -32641 -32641 -32641 -32641 -32641 -32641)) 221 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 222 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 223 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640)) 224 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) 225 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 226 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129)) 227 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 228 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 229 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) 230 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 231 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) 232 (v128.const i16x8 16512 16512 16512 16512 16512 16512 16512 16512)) 233 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 234 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 235 (v128.const i16x8 0 0 0 0 0 0 0 0)) 236 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 237 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 238 (v128.const i16x8 255 255 255 255 255 255 255 255)) 239 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 240 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 241 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 242 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 243 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 244 (v128.const i16x8 32385 32385 32385 32385 32385 32385 32385 32385)) 245 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 246 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 247 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640)) 248 (assert_return (invoke "i16x8.extmul_low_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 249 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) 250 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 251 252 ;; i16x8.extmul_high_i8x16_u 253 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 254 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 255 (v128.const i16x8 0 0 0 0 0 0 0 0)) 256 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 257 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 258 (v128.const i16x8 0 0 0 0 0 0 0 0)) 259 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 260 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 261 (v128.const i16x8 1 1 1 1 1 1 1 1)) 262 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 263 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 264 (v128.const i16x8 0 0 0 0 0 0 0 0)) 265 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) 266 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 267 (v128.const i16x8 255 255 255 255 255 255 255 255)) 268 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) 269 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 270 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 271 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) 272 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 273 (v128.const i16x8 4032 4032 4032 4032 4032 4032 4032 4032)) 274 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) 275 (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) 276 (v128.const i16x8 4096 4096 4096 4096 4096 4096 4096 4096)) 277 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) 278 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 279 (v128.const i16x8 -28480 -28480 -28480 -28480 -28480 -28480 -28480 -28480)) 280 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) 281 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 282 (v128.const i16x8 -28672 -28672 -28672 -28672 -28672 -28672 -28672 -28672)) 283 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) 284 (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) 285 (v128.const i16x8 -28864 -28864 -28864 -28864 -28864 -28864 -28864 -28864)) 286 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) 287 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 288 (v128.const i16x8 125 125 125 125 125 125 125 125)) 289 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) 290 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 291 (v128.const i16x8 126 126 126 126 126 126 126 126)) 292 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) 293 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 294 (v128.const i16x8 128 128 128 128 128 128 128 128)) 295 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) 296 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 297 (v128.const i16x8 -32386 -32386 -32386 -32386 -32386 -32386 -32386 -32386)) 298 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) 299 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 300 (v128.const i16x8 -32641 -32641 -32641 -32641 -32641 -32641 -32641 -32641)) 301 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 302 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 303 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640)) 304 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) 305 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 306 (v128.const i16x8 16129 16129 16129 16129 16129 16129 16129 16129)) 307 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 308 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 309 (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) 310 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) 311 (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) 312 (v128.const i16x8 16512 16512 16512 16512 16512 16512 16512 16512)) 313 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 314 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) 315 (v128.const i16x8 0 0 0 0 0 0 0 0)) 316 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 317 (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) 318 (v128.const i16x8 255 255 255 255 255 255 255 255)) 319 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 320 (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) 321 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 322 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 323 (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) 324 (v128.const i16x8 32385 32385 32385 32385 32385 32385 32385 32385)) 325 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 326 (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) 327 (v128.const i16x8 32640 32640 32640 32640 32640 32640 32640 32640)) 328 (assert_return (invoke "i16x8.extmul_high_i8x16_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) 329 (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) 330 (v128.const i16x8 -511 -511 -511 -511 -511 -511 -511 -511)) 331 332 ;; type check 333 (assert_invalid (module (func (result v128) (i16x8.extmul_low_i8x16_s (i32.const 0) (f32.const 0.0)))) "type mismatch") 334 (assert_invalid (module (func (result v128) (i16x8.extmul_high_i8x16_s (i32.const 0) (f32.const 0.0)))) "type mismatch") 335 (assert_invalid (module (func (result v128) (i16x8.extmul_low_i8x16_u (i32.const 0) (f32.const 0.0)))) "type mismatch") 336 (assert_invalid (module (func (result v128) (i16x8.extmul_high_i8x16_u (i32.const 0) (f32.const 0.0)))) "type mismatch") 337 338 ;; Test operation with empty argument 339 340 (assert_invalid 341 (module 342 (func $i16x8.extmul_low_i8x16_s-1st-arg-empty (result v128) 343 (i16x8.extmul_low_i8x16_s (v128.const i16x8 0 0 0 0 0 0 0 0)) 344 ) 345 ) 346 "type mismatch" 347 ) 348 (assert_invalid 349 (module 350 (func $i16x8.extmul_low_i8x16_s-arg-empty (result v128) 351 (i16x8.extmul_low_i8x16_s) 352 ) 353 ) 354 "type mismatch" 355 ) 356 (assert_invalid 357 (module 358 (func $i16x8.extmul_high_i8x16_s-1st-arg-empty (result v128) 359 (i16x8.extmul_high_i8x16_s (v128.const i16x8 0 0 0 0 0 0 0 0)) 360 ) 361 ) 362 "type mismatch" 363 ) 364 (assert_invalid 365 (module 366 (func $i16x8.extmul_high_i8x16_s-arg-empty (result v128) 367 (i16x8.extmul_high_i8x16_s) 368 ) 369 ) 370 "type mismatch" 371 ) 372 (assert_invalid 373 (module 374 (func $i16x8.extmul_low_i8x16_u-1st-arg-empty (result v128) 375 (i16x8.extmul_low_i8x16_u (v128.const i16x8 0 0 0 0 0 0 0 0)) 376 ) 377 ) 378 "type mismatch" 379 ) 380 (assert_invalid 381 (module 382 (func $i16x8.extmul_low_i8x16_u-arg-empty (result v128) 383 (i16x8.extmul_low_i8x16_u) 384 ) 385 ) 386 "type mismatch" 387 ) 388 (assert_invalid 389 (module 390 (func $i16x8.extmul_high_i8x16_u-1st-arg-empty (result v128) 391 (i16x8.extmul_high_i8x16_u (v128.const i16x8 0 0 0 0 0 0 0 0)) 392 ) 393 ) 394 "type mismatch" 395 ) 396 (assert_invalid 397 (module 398 (func $i16x8.extmul_high_i8x16_u-arg-empty (result v128) 399 (i16x8.extmul_high_i8x16_u) 400 ) 401 ) 402 "type mismatch" 403 ) 404