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