1# RUN: llvm-mc -no-type-check -show-encoding -triple=wasm32-unknown-unknown -mattr=+simd128,+relaxed-simd,+fp16 < %s | FileCheck %s 2 3main: 4 .functype main () -> () 5 6 # CHECK: v128.load 48 # encoding: [0xfd,0x00,0x04,0x30] 7 v128.load 48 8 9 # CHECK: i16x8.load8x8_s 32 # encoding: [0xfd,0x01,0x03,0x20] 10 i16x8.load8x8_s 32 11 12 # CHECK: i16x8.load8x8_u 32 # encoding: [0xfd,0x02,0x03,0x20] 13 i16x8.load8x8_u 32 14 15 # CHECK: i32x4.load16x4_s 32 # encoding: [0xfd,0x03,0x03,0x20] 16 i32x4.load16x4_s 32 17 18 # CHECK: i32x4.load16x4_u 32 # encoding: [0xfd,0x04,0x03,0x20] 19 i32x4.load16x4_u 32 20 21 # CHECK: i64x2.load32x2_s 32 # encoding: [0xfd,0x05,0x03,0x20] 22 i64x2.load32x2_s 32 23 24 # CHECK: i64x2.load32x2_u 32 # encoding: [0xfd,0x06,0x03,0x20] 25 i64x2.load32x2_u 32 26 27 # CHECK: v128.load8_splat 48 # encoding: [0xfd,0x07,0x00,0x30] 28 v128.load8_splat 48 29 30 # CHECK: v128.load16_splat 48 # encoding: [0xfd,0x08,0x01,0x30] 31 v128.load16_splat 48 32 33 # CHECK: v128.load32_splat 48 # encoding: [0xfd,0x09,0x02,0x30] 34 v128.load32_splat 48 35 36 # CHECK: v128.load64_splat 48 # encoding: [0xfd,0x0a,0x03,0x30] 37 v128.load64_splat 48 38 39 # CHECK: v128.store 48 # encoding: [0xfd,0x0b,0x04,0x30] 40 v128.store 48 41 42 # CHECK: v128.const 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 43 # CHECK-SAME: # encoding: [0xfd,0x0c, 44 # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 45 # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f] 46 v128.const 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 47 48 # CHECK: v128.const 256, 770, 1284, 1798, 2312, 2826, 3340, 3854 49 # CHECK-SAME: # encoding: [0xfd,0x0c, 50 # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 51 # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f] 52 v128.const 256, 770, 1284, 1798, 2312, 2826, 3340, 3854 53 54 # TODO(tlively): Fix assembler so v128.const works with 4xi32 and 2xi64 55 56 # CHECK: v128.const 0x1.0402p-121, 0x1.0c0a08p-113, 57 # CHECK-SAME: 0x1.14121p-105, 0x1.1c1a18p-97 58 # CHECK-SAME: # encoding: [0xfd,0x0c, 59 # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 60 # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f] 61 v128.const 0x1.0402p-121, 0x1.0c0a08p-113, 0x1.14121p-105, 0x1.1c1a18p-97 62 63 # CHECK: v128.const 0x1.60504030201p-911, 0x1.e0d0c0b0a0908p-783 64 # CHECK-SAME: # encoding: [0xfd,0x0c, 65 # CHECK-SAME: 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, 66 # CHECK-SAME: 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f] 67 v128.const 0x1.60504030201p-911, 0x1.e0d0c0b0a0908p-783 68 69 # CHECK: i8x16.shuffle 0, 17, 2, 19, 4, 21, 6, 23, 70 # CHECK-SAME: 8, 25, 10, 27, 12, 29, 14, 31 71 # CHECK-SAME: # encoding: [0xfd,0x0d, 72 # CHECK-SAME: 0x00,0x11,0x02,0x13,0x04,0x15,0x06,0x17, 73 # CHECK-SAME: 0x08,0x19,0x0a,0x1b,0x0c,0x1d,0x0e,0x1f] 74 i8x16.shuffle 0, 17, 2, 19, 4, 21, 6, 23, 8, 25, 10, 27, 12, 29, 14, 31 75 76 # CHECK: i8x16.swizzle # encoding: [0xfd,0x0e] 77 i8x16.swizzle 78 79 # CHECK: i8x16.splat # encoding: [0xfd,0x0f] 80 i8x16.splat 81 82 # CHECK: i16x8.splat # encoding: [0xfd,0x10] 83 i16x8.splat 84 85 # CHECK: i32x4.splat # encoding: [0xfd,0x11] 86 i32x4.splat 87 88 # CHECK: i64x2.splat # encoding: [0xfd,0x12] 89 i64x2.splat 90 91 # CHECK: f32x4.splat # encoding: [0xfd,0x13] 92 f32x4.splat 93 94 # CHECK: f64x2.splat # encoding: [0xfd,0x14] 95 f64x2.splat 96 97 # CHECK: i8x16.extract_lane_s 15 # encoding: [0xfd,0x15,0x0f] 98 i8x16.extract_lane_s 15 99 100 # CHECK: i8x16.extract_lane_u 15 # encoding: [0xfd,0x16,0x0f] 101 i8x16.extract_lane_u 15 102 103 # CHECK: i8x16.replace_lane 15 # encoding: [0xfd,0x17,0x0f] 104 i8x16.replace_lane 15 105 106 # CHECK: i16x8.extract_lane_s 7 # encoding: [0xfd,0x18,0x07] 107 i16x8.extract_lane_s 7 108 109 # CHECK: i16x8.extract_lane_u 7 # encoding: [0xfd,0x19,0x07] 110 i16x8.extract_lane_u 7 111 112 # CHECK: i16x8.replace_lane 7 # encoding: [0xfd,0x1a,0x07] 113 i16x8.replace_lane 7 114 115 # CHECK: i32x4.extract_lane 3 # encoding: [0xfd,0x1b,0x03] 116 i32x4.extract_lane 3 117 118 # CHECK: i32x4.replace_lane 3 # encoding: [0xfd,0x1c,0x03] 119 i32x4.replace_lane 3 120 121 # CHECK: i64x2.extract_lane 1 # encoding: [0xfd,0x1d,0x01] 122 i64x2.extract_lane 1 123 124 # CHECK: i64x2.replace_lane 1 # encoding: [0xfd,0x1e,0x01] 125 i64x2.replace_lane 1 126 127 # CHECK: f32x4.extract_lane 3 # encoding: [0xfd,0x1f,0x03] 128 f32x4.extract_lane 3 129 130 # CHECK: f32x4.replace_lane 3 # encoding: [0xfd,0x20,0x03] 131 f32x4.replace_lane 3 132 133 # CHECK: f64x2.extract_lane 1 # encoding: [0xfd,0x21,0x01] 134 f64x2.extract_lane 1 135 136 # CHECK: f64x2.replace_lane 1 # encoding: [0xfd,0x22,0x01] 137 f64x2.replace_lane 1 138 139 # CHECK: i8x16.eq # encoding: [0xfd,0x23] 140 i8x16.eq 141 142 # CHECK: i8x16.ne # encoding: [0xfd,0x24] 143 i8x16.ne 144 145 # CHECK: i8x16.lt_s # encoding: [0xfd,0x25] 146 i8x16.lt_s 147 148 # CHECK: i8x16.lt_u # encoding: [0xfd,0x26] 149 i8x16.lt_u 150 151 # CHECK: i8x16.gt_s # encoding: [0xfd,0x27] 152 i8x16.gt_s 153 154 # CHECK: i8x16.gt_u # encoding: [0xfd,0x28] 155 i8x16.gt_u 156 157 # CHECK: i8x16.le_s # encoding: [0xfd,0x29] 158 i8x16.le_s 159 160 # CHECK: i8x16.le_u # encoding: [0xfd,0x2a] 161 i8x16.le_u 162 163 # CHECK: i8x16.ge_s # encoding: [0xfd,0x2b] 164 i8x16.ge_s 165 166 # CHECK: i8x16.ge_u # encoding: [0xfd,0x2c] 167 i8x16.ge_u 168 169 # CHECK: i16x8.eq # encoding: [0xfd,0x2d] 170 i16x8.eq 171 172 # CHECK: i16x8.ne # encoding: [0xfd,0x2e] 173 i16x8.ne 174 175 # CHECK: i16x8.lt_s # encoding: [0xfd,0x2f] 176 i16x8.lt_s 177 178 # CHECK: i16x8.lt_u # encoding: [0xfd,0x30] 179 i16x8.lt_u 180 181 # CHECK: i16x8.gt_s # encoding: [0xfd,0x31] 182 i16x8.gt_s 183 184 # CHECK: i16x8.gt_u # encoding: [0xfd,0x32] 185 i16x8.gt_u 186 187 # CHECK: i16x8.le_s # encoding: [0xfd,0x33] 188 i16x8.le_s 189 190 # CHECK: i16x8.le_u # encoding: [0xfd,0x34] 191 i16x8.le_u 192 193 # CHECK: i16x8.ge_s # encoding: [0xfd,0x35] 194 i16x8.ge_s 195 196 # CHECK: i16x8.ge_u # encoding: [0xfd,0x36] 197 i16x8.ge_u 198 199 # CHECK: i32x4.eq # encoding: [0xfd,0x37] 200 i32x4.eq 201 202 # CHECK: i32x4.ne # encoding: [0xfd,0x38] 203 i32x4.ne 204 205 # CHECK: i32x4.lt_s # encoding: [0xfd,0x39] 206 i32x4.lt_s 207 208 # CHECK: i32x4.lt_u # encoding: [0xfd,0x3a] 209 i32x4.lt_u 210 211 # CHECK: i32x4.gt_s # encoding: [0xfd,0x3b] 212 i32x4.gt_s 213 214 # CHECK: i32x4.gt_u # encoding: [0xfd,0x3c] 215 i32x4.gt_u 216 217 # CHECK: i32x4.le_s # encoding: [0xfd,0x3d] 218 i32x4.le_s 219 220 # CHECK: i32x4.le_u # encoding: [0xfd,0x3e] 221 i32x4.le_u 222 223 # CHECK: i32x4.ge_s # encoding: [0xfd,0x3f] 224 i32x4.ge_s 225 226 # CHECK: i32x4.ge_u # encoding: [0xfd,0x40] 227 i32x4.ge_u 228 229 # CHECK: f32x4.eq # encoding: [0xfd,0x41] 230 f32x4.eq 231 232 # CHECK: f32x4.ne # encoding: [0xfd,0x42] 233 f32x4.ne 234 235 # CHECK: f32x4.lt # encoding: [0xfd,0x43] 236 f32x4.lt 237 238 # CHECK: f32x4.gt # encoding: [0xfd,0x44] 239 f32x4.gt 240 241 # CHECK: f32x4.le # encoding: [0xfd,0x45] 242 f32x4.le 243 244 # CHECK: f32x4.ge # encoding: [0xfd,0x46] 245 f32x4.ge 246 247 # CHECK: f64x2.eq # encoding: [0xfd,0x47] 248 f64x2.eq 249 250 # CHECK: f64x2.ne # encoding: [0xfd,0x48] 251 f64x2.ne 252 253 # CHECK: f64x2.lt # encoding: [0xfd,0x49] 254 f64x2.lt 255 256 # CHECK: f64x2.gt # encoding: [0xfd,0x4a] 257 f64x2.gt 258 259 # CHECK: f64x2.le # encoding: [0xfd,0x4b] 260 f64x2.le 261 262 # CHECK: f64x2.ge # encoding: [0xfd,0x4c] 263 f64x2.ge 264 265 # CHECK: v128.not # encoding: [0xfd,0x4d] 266 v128.not 267 268 # CHECK: v128.and # encoding: [0xfd,0x4e] 269 v128.and 270 271 # CHECK: v128.andnot # encoding: [0xfd,0x4f] 272 v128.andnot 273 274 # CHECK: v128.or # encoding: [0xfd,0x50] 275 v128.or 276 277 # CHECK: v128.xor # encoding: [0xfd,0x51] 278 v128.xor 279 280 # CHECK: v128.bitselect # encoding: [0xfd,0x52] 281 v128.bitselect 282 283 # CHECK: v128.any_true # encoding: [0xfd,0x53] 284 v128.any_true 285 286 # CHECK: v128.load8_lane 32, 1 # encoding: [0xfd,0x54,0x00,0x20,0x01] 287 v128.load8_lane 32, 1 288 289 # CHECK: v128.load16_lane 32, 1 # encoding: [0xfd,0x55,0x01,0x20,0x01] 290 v128.load16_lane 32, 1 291 292 # CHECK: v128.load32_lane 32, 1 # encoding: [0xfd,0x56,0x02,0x20,0x01] 293 v128.load32_lane 32, 1 294 295 # CHECK: v128.load64_lane 32, 1 # encoding: [0xfd,0x57,0x03,0x20,0x01] 296 v128.load64_lane 32, 1 297 298 # CHECK: v128.store8_lane 32, 1 # encoding: [0xfd,0x58,0x00,0x20,0x01] 299 v128.store8_lane 32, 1 300 301 # CHECK: v128.store16_lane 32, 1 # encoding: [0xfd,0x59,0x01,0x20,0x01] 302 v128.store16_lane 32, 1 303 304 # CHECK: v128.store32_lane 32, 1 # encoding: [0xfd,0x5a,0x02,0x20,0x01] 305 v128.store32_lane 32, 1 306 307 # CHECK: v128.store64_lane 32, 1 # encoding: [0xfd,0x5b,0x03,0x20,0x01] 308 v128.store64_lane 32, 1 309 310 # CHECK: v128.load32_zero 32 # encoding: [0xfd,0x5c,0x02,0x20] 311 v128.load32_zero 32 312 313 # CHECK: v128.load64_zero 32 # encoding: [0xfd,0x5d,0x03,0x20] 314 v128.load64_zero 32 315 316 # CHECK: f32x4.demote_f64x2_zero # encoding: [0xfd,0x5e] 317 f32x4.demote_f64x2_zero 318 319 # CHECK: f64x2.promote_low_f32x4 # encoding: [0xfd,0x5f] 320 f64x2.promote_low_f32x4 321 322 # CHECK: i8x16.abs # encoding: [0xfd,0x60] 323 i8x16.abs 324 325 # CHECK: i8x16.neg # encoding: [0xfd,0x61] 326 i8x16.neg 327 328 # CHECK: i8x16.popcnt # encoding: [0xfd,0x62] 329 i8x16.popcnt 330 331 # CHECK: i8x16.all_true # encoding: [0xfd,0x63] 332 i8x16.all_true 333 334 # CHECK: i8x16.bitmask # encoding: [0xfd,0x64] 335 i8x16.bitmask 336 337 # CHECK: i8x16.narrow_i16x8_s # encoding: [0xfd,0x65] 338 i8x16.narrow_i16x8_s 339 340 # CHECK: i8x16.narrow_i16x8_u # encoding: [0xfd,0x66] 341 i8x16.narrow_i16x8_u 342 343 # CHECK: f32x4.ceil # encoding: [0xfd,0x67] 344 f32x4.ceil 345 346 # CHECK: f32x4.floor # encoding: [0xfd,0x68] 347 f32x4.floor 348 349 # CHECK: f32x4.trunc # encoding: [0xfd,0x69] 350 f32x4.trunc 351 352 # CHECK: f32x4.nearest # encoding: [0xfd,0x6a] 353 f32x4.nearest 354 355 # CHECK: i8x16.shl # encoding: [0xfd,0x6b] 356 i8x16.shl 357 358 # CHECK: i8x16.shr_s # encoding: [0xfd,0x6c] 359 i8x16.shr_s 360 361 # CHECK: i8x16.shr_u # encoding: [0xfd,0x6d] 362 i8x16.shr_u 363 364 # CHECK: i8x16.add # encoding: [0xfd,0x6e] 365 i8x16.add 366 367 # CHECK: i8x16.add_sat_s # encoding: [0xfd,0x6f] 368 i8x16.add_sat_s 369 370 # CHECK: i8x16.add_sat_u # encoding: [0xfd,0x70] 371 i8x16.add_sat_u 372 373 # CHECK: i8x16.sub # encoding: [0xfd,0x71] 374 i8x16.sub 375 376 # CHECK: i8x16.sub_sat_s # encoding: [0xfd,0x72] 377 i8x16.sub_sat_s 378 379 # CHECK: i8x16.sub_sat_u # encoding: [0xfd,0x73] 380 i8x16.sub_sat_u 381 382 # CHECK: f64x2.ceil # encoding: [0xfd,0x74] 383 f64x2.ceil 384 385 # CHECK: f64x2.floor # encoding: [0xfd,0x75] 386 f64x2.floor 387 388 # CHECK: i8x16.min_s # encoding: [0xfd,0x76] 389 i8x16.min_s 390 391 # CHECK: i8x16.min_u # encoding: [0xfd,0x77] 392 i8x16.min_u 393 394 # CHECK: i8x16.max_s # encoding: [0xfd,0x78] 395 i8x16.max_s 396 397 # CHECK: i8x16.max_u # encoding: [0xfd,0x79] 398 i8x16.max_u 399 400 # CHECK: f64x2.trunc # encoding: [0xfd,0x7a] 401 f64x2.trunc 402 403 # CHECK: i8x16.avgr_u # encoding: [0xfd,0x7b] 404 i8x16.avgr_u 405 406 # CHECK: i16x8.extadd_pairwise_i8x16_s # encoding: [0xfd,0x7c] 407 i16x8.extadd_pairwise_i8x16_s 408 409 # CHECK: i16x8.extadd_pairwise_i8x16_u # encoding: [0xfd,0x7d] 410 i16x8.extadd_pairwise_i8x16_u 411 412 # CHECK: i32x4.extadd_pairwise_i16x8_s # encoding: [0xfd,0x7e] 413 i32x4.extadd_pairwise_i16x8_s 414 415 # CHECK: i32x4.extadd_pairwise_i16x8_u # encoding: [0xfd,0x7f] 416 i32x4.extadd_pairwise_i16x8_u 417 418 # CHECK: i16x8.abs # encoding: [0xfd,0x80,0x01] 419 i16x8.abs 420 421 # CHECK: i16x8.neg # encoding: [0xfd,0x81,0x01] 422 i16x8.neg 423 424 # CHECK: i16x8.q15mulr_sat_s # encoding: [0xfd,0x82,0x01] 425 i16x8.q15mulr_sat_s 426 427 # CHECK: i16x8.all_true # encoding: [0xfd,0x83,0x01] 428 i16x8.all_true 429 430 # CHECK: i16x8.bitmask # encoding: [0xfd,0x84,0x01] 431 i16x8.bitmask 432 433 # CHECK: i16x8.narrow_i32x4_s # encoding: [0xfd,0x85,0x01] 434 i16x8.narrow_i32x4_s 435 436 # CHECK: i16x8.narrow_i32x4_u # encoding: [0xfd,0x86,0x01] 437 i16x8.narrow_i32x4_u 438 439 # CHECK: i16x8.extend_low_i8x16_s # encoding: [0xfd,0x87,0x01] 440 i16x8.extend_low_i8x16_s 441 442 # CHECK: i16x8.extend_high_i8x16_s # encoding: [0xfd,0x88,0x01] 443 i16x8.extend_high_i8x16_s 444 445 # CHECK: i16x8.extend_low_i8x16_u # encoding: [0xfd,0x89,0x01] 446 i16x8.extend_low_i8x16_u 447 448 # CHECK: i16x8.extend_high_i8x16_u # encoding: [0xfd,0x8a,0x01] 449 i16x8.extend_high_i8x16_u 450 451 # CHECK: i16x8.shl # encoding: [0xfd,0x8b,0x01] 452 i16x8.shl 453 454 # CHECK: i16x8.shr_s # encoding: [0xfd,0x8c,0x01] 455 i16x8.shr_s 456 457 # CHECK: i16x8.shr_u # encoding: [0xfd,0x8d,0x01] 458 i16x8.shr_u 459 460 # CHECK: i16x8.add # encoding: [0xfd,0x8e,0x01] 461 i16x8.add 462 463 # CHECK: i16x8.add_sat_s # encoding: [0xfd,0x8f,0x01] 464 i16x8.add_sat_s 465 466 # CHECK: i16x8.add_sat_u # encoding: [0xfd,0x90,0x01] 467 i16x8.add_sat_u 468 469 # CHECK: i16x8.sub # encoding: [0xfd,0x91,0x01] 470 i16x8.sub 471 472 # CHECK: i16x8.sub_sat_s # encoding: [0xfd,0x92,0x01] 473 i16x8.sub_sat_s 474 475 # CHECK: i16x8.sub_sat_u # encoding: [0xfd,0x93,0x01] 476 i16x8.sub_sat_u 477 478 # CHECK: f64x2.nearest # encoding: [0xfd,0x94,0x01] 479 f64x2.nearest 480 481 # CHECK: i16x8.mul # encoding: [0xfd,0x95,0x01] 482 i16x8.mul 483 484 # CHECK: i16x8.min_s # encoding: [0xfd,0x96,0x01] 485 i16x8.min_s 486 487 # CHECK: i16x8.min_u # encoding: [0xfd,0x97,0x01] 488 i16x8.min_u 489 490 # CHECK: i16x8.max_s # encoding: [0xfd,0x98,0x01] 491 i16x8.max_s 492 493 # CHECK: i16x8.max_u # encoding: [0xfd,0x99,0x01] 494 i16x8.max_u 495 496 # 0x0a unused 497 498 # CHECK: i16x8.avgr_u # encoding: [0xfd,0x9b,0x01] 499 i16x8.avgr_u 500 501 # CHECK: i16x8.extmul_low_i8x16_s # encoding: [0xfd,0x9c,0x01] 502 i16x8.extmul_low_i8x16_s 503 504 # CHECK: i16x8.extmul_high_i8x16_s # encoding: [0xfd,0x9d,0x01] 505 i16x8.extmul_high_i8x16_s 506 507 # CHECK: i16x8.extmul_low_i8x16_u # encoding: [0xfd,0x9e,0x01] 508 i16x8.extmul_low_i8x16_u 509 510 # CHECK: i16x8.extmul_high_i8x16_u # encoding: [0xfd,0x9f,0x01] 511 i16x8.extmul_high_i8x16_u 512 513 # CHECK: i32x4.abs # encoding: [0xfd,0xa0,0x01] 514 i32x4.abs 515 516 # CHECK: i32x4.neg # encoding: [0xfd,0xa1,0x01] 517 i32x4.neg 518 519 # 0xa2 unused 520 521 # CHECK: i32x4.all_true # encoding: [0xfd,0xa3,0x01] 522 i32x4.all_true 523 524 # CHECK: i32x4.bitmask # encoding: [0xfd,0xa4,0x01] 525 i32x4.bitmask 526 527 # 0xa5 unused 528 529 # 0xa6 unused 530 531 # CHECK: i32x4.extend_low_i16x8_s # encoding: [0xfd,0xa7,0x01] 532 i32x4.extend_low_i16x8_s 533 534 # CHECK: i32x4.extend_high_i16x8_s # encoding: [0xfd,0xa8,0x01] 535 i32x4.extend_high_i16x8_s 536 537 # CHECK: i32x4.extend_low_i16x8_u # encoding: [0xfd,0xa9,0x01] 538 i32x4.extend_low_i16x8_u 539 540 # CHECK: i32x4.extend_high_i16x8_u # encoding: [0xfd,0xaa,0x01] 541 i32x4.extend_high_i16x8_u 542 543 # CHECK: i32x4.shl # encoding: [0xfd,0xab,0x01] 544 i32x4.shl 545 546 # CHECK: i32x4.shr_s # encoding: [0xfd,0xac,0x01] 547 i32x4.shr_s 548 549 # CHECK: i32x4.shr_u # encoding: [0xfd,0xad,0x01] 550 i32x4.shr_u 551 552 # CHECK: i32x4.add # encoding: [0xfd,0xae,0x01] 553 i32x4.add 554 555 # 0xaf unused 556 557 # 0xb0 unused 558 559 # CHECK: i32x4.sub # encoding: [0xfd,0xb1,0x01] 560 i32x4.sub 561 562 # 0xb2 unused 563 564 # 0xb3 unused 565 566 # 0xb4 unused 567 568 # CHECK: i32x4.mul # encoding: [0xfd,0xb5,0x01] 569 i32x4.mul 570 571 # CHECK: i32x4.min_s # encoding: [0xfd,0xb6,0x01] 572 i32x4.min_s 573 574 # CHECK: i32x4.min_u # encoding: [0xfd,0xb7,0x01] 575 i32x4.min_u 576 577 # CHECK: i32x4.max_s # encoding: [0xfd,0xb8,0x01] 578 i32x4.max_s 579 580 # CHECK: i32x4.max_u # encoding: [0xfd,0xb9,0x01] 581 i32x4.max_u 582 583 # CHECK: i32x4.dot_i16x8_s # encoding: [0xfd,0xba,0x01] 584 i32x4.dot_i16x8_s 585 586 # 0xbb unused 587 588 # CHECK: i32x4.extmul_low_i16x8_s # encoding: [0xfd,0xbc,0x01] 589 i32x4.extmul_low_i16x8_s 590 591 # CHECK: i32x4.extmul_high_i16x8_s # encoding: [0xfd,0xbd,0x01] 592 i32x4.extmul_high_i16x8_s 593 594 # CHECK: i32x4.extmul_low_i16x8_u # encoding: [0xfd,0xbe,0x01] 595 i32x4.extmul_low_i16x8_u 596 597 # CHECK: i32x4.extmul_high_i16x8_u # encoding: [0xfd,0xbf,0x01] 598 i32x4.extmul_high_i16x8_u 599 600 # CHECK: i64x2.abs # encoding: [0xfd,0xc0,0x01] 601 i64x2.abs 602 603 # CHECK: i64x2.neg # encoding: [0xfd,0xc1,0x01] 604 i64x2.neg 605 606 # 0xc2 unused 607 608 # CHECK: i64x2.all_true # encoding: [0xfd,0xc3,0x01] 609 i64x2.all_true 610 611 # CHECK: i64x2.bitmask # encoding: [0xfd,0xc4,0x01] 612 i64x2.bitmask 613 614 # 0xc5 unused 615 616 # 0xc6 unused 617 618 # CHECK: i64x2.extend_low_i32x4_s # encoding: [0xfd,0xc7,0x01] 619 i64x2.extend_low_i32x4_s 620 621 # CHECK: i64x2.extend_high_i32x4_s # encoding: [0xfd,0xc8,0x01] 622 i64x2.extend_high_i32x4_s 623 624 # CHECK: i64x2.extend_low_i32x4_u # encoding: [0xfd,0xc9,0x01] 625 i64x2.extend_low_i32x4_u 626 627 # CHECK: i64x2.extend_high_i32x4_u # encoding: [0xfd,0xca,0x01] 628 i64x2.extend_high_i32x4_u 629 630 # CHECK: i64x2.shl # encoding: [0xfd,0xcb,0x01] 631 i64x2.shl 632 633 # CHECK: i64x2.shr_s # encoding: [0xfd,0xcc,0x01] 634 i64x2.shr_s 635 636 # CHECK: i64x2.shr_u # encoding: [0xfd,0xcd,0x01] 637 i64x2.shr_u 638 639 # CHECK: i64x2.add # encoding: [0xfd,0xce,0x01] 640 i64x2.add 641 642 # 0xcf unused 643 644 # 0xd0 unused 645 646 # CHECK: i64x2.sub # encoding: [0xfd,0xd1,0x01] 647 i64x2.sub 648 649 # 0xd2 unused 650 651 # 0xd3 unused 652 653 # 0xd4 unused 654 655 # CHECK: i64x2.mul # encoding: [0xfd,0xd5,0x01] 656 i64x2.mul 657 658 # CHECK: i64x2.eq # encoding: [0xfd,0xd6,0x01] 659 i64x2.eq 660 661 # CHECK: i64x2.ne # encoding: [0xfd,0xd7,0x01] 662 i64x2.ne 663 664 # CHECK: i64x2.lt_s # encoding: [0xfd,0xd8,0x01] 665 i64x2.lt_s 666 667 # CHECK: i64x2.gt_s # encoding: [0xfd,0xd9,0x01] 668 i64x2.gt_s 669 670 # CHECK: i64x2.le_s # encoding: [0xfd,0xda,0x01] 671 i64x2.le_s 672 673 # CHECK: i64x2.ge_s # encoding: [0xfd,0xdb,0x01] 674 i64x2.ge_s 675 676 # CHECK: i64x2.extmul_low_i32x4_s # encoding: [0xfd,0xdc,0x01] 677 i64x2.extmul_low_i32x4_s 678 679 # CHECK: i64x2.extmul_high_i32x4_s # encoding: [0xfd,0xdd,0x01] 680 i64x2.extmul_high_i32x4_s 681 682 # CHECK: i64x2.extmul_low_i32x4_u # encoding: [0xfd,0xde,0x01] 683 i64x2.extmul_low_i32x4_u 684 685 # CHECK: i64x2.extmul_high_i32x4_u # encoding: [0xfd,0xdf,0x01] 686 i64x2.extmul_high_i32x4_u 687 688 # CHECK: f32x4.abs # encoding: [0xfd,0xe0,0x01] 689 f32x4.abs 690 691 # CHECK: f32x4.neg # encoding: [0xfd,0xe1,0x01] 692 f32x4.neg 693 694 # 0xe2 unused 695 696 # CHECK: f32x4.sqrt # encoding: [0xfd,0xe3,0x01] 697 f32x4.sqrt 698 699 # CHECK: f32x4.add # encoding: [0xfd,0xe4,0x01] 700 f32x4.add 701 702 # CHECK: f32x4.sub # encoding: [0xfd,0xe5,0x01] 703 f32x4.sub 704 705 # CHECK: f32x4.mul # encoding: [0xfd,0xe6,0x01] 706 f32x4.mul 707 708 # CHECK: f32x4.div # encoding: [0xfd,0xe7,0x01] 709 f32x4.div 710 711 # CHECK: f32x4.min # encoding: [0xfd,0xe8,0x01] 712 f32x4.min 713 714 # CHECK: f32x4.max # encoding: [0xfd,0xe9,0x01] 715 f32x4.max 716 717 # CHECK: f32x4.pmin # encoding: [0xfd,0xea,0x01] 718 f32x4.pmin 719 720 # CHECK: f32x4.pmax # encoding: [0xfd,0xeb,0x01] 721 f32x4.pmax 722 723 # CHECK: f64x2.abs # encoding: [0xfd,0xec,0x01] 724 f64x2.abs 725 726 # CHECK: f64x2.neg # encoding: [0xfd,0xed,0x01] 727 f64x2.neg 728 729 # 0xee unused 730 731 # CHECK: f64x2.sqrt # encoding: [0xfd,0xef,0x01] 732 f64x2.sqrt 733 734 # CHECK: f64x2.add # encoding: [0xfd,0xf0,0x01] 735 f64x2.add 736 737 # CHECK: f64x2.sub # encoding: [0xfd,0xf1,0x01] 738 f64x2.sub 739 740 # CHECK: f64x2.mul # encoding: [0xfd,0xf2,0x01] 741 f64x2.mul 742 743 # CHECK: f64x2.div # encoding: [0xfd,0xf3,0x01] 744 f64x2.div 745 746 # CHECK: f64x2.min # encoding: [0xfd,0xf4,0x01] 747 f64x2.min 748 749 # CHECK: f64x2.max # encoding: [0xfd,0xf5,0x01] 750 f64x2.max 751 752 # CHECK: f64x2.pmin # encoding: [0xfd,0xf6,0x01] 753 f64x2.pmin 754 755 # CHECK: f64x2.pmax # encoding: [0xfd,0xf7,0x01] 756 f64x2.pmax 757 758 # CHECK: i32x4.trunc_sat_f32x4_s # encoding: [0xfd,0xf8,0x01] 759 i32x4.trunc_sat_f32x4_s 760 761 # CHECK: i32x4.trunc_sat_f32x4_u # encoding: [0xfd,0xf9,0x01] 762 i32x4.trunc_sat_f32x4_u 763 764 # CHECK: f32x4.convert_i32x4_s # encoding: [0xfd,0xfa,0x01] 765 f32x4.convert_i32x4_s 766 767 # CHECK: f32x4.convert_i32x4_u # encoding: [0xfd,0xfb,0x01] 768 f32x4.convert_i32x4_u 769 770 # CHECK: i32x4.trunc_sat_f64x2_s_zero # encoding: [0xfd,0xfc,0x01] 771 i32x4.trunc_sat_f64x2_s_zero 772 773 # CHECK: i32x4.trunc_sat_f64x2_u_zero # encoding: [0xfd,0xfd,0x01] 774 i32x4.trunc_sat_f64x2_u_zero 775 776 # CHECK: f64x2.convert_low_i32x4_s # encoding: [0xfd,0xfe,0x01] 777 f64x2.convert_low_i32x4_s 778 779 # CHECK: f64x2.convert_low_i32x4_u # encoding: [0xfd,0xff,0x01] 780 f64x2.convert_low_i32x4_u 781 782 # CHECK: i8x16.relaxed_swizzle # encoding: [0xfd,0x80,0x02] 783 i8x16.relaxed_swizzle 784 785 # CHECK: i32x4.relaxed_trunc_f32x4_s # encoding: [0xfd,0x81,0x02] 786 i32x4.relaxed_trunc_f32x4_s 787 788 # CHECK: i32x4.relaxed_trunc_f32x4_u # encoding: [0xfd,0x82,0x02] 789 i32x4.relaxed_trunc_f32x4_u 790 791 # CHECK: i32x4.relaxed_trunc_f64x2_s_zero # encoding: [0xfd,0x83,0x02] 792 i32x4.relaxed_trunc_f64x2_s_zero 793 794 # CHECK: i32x4.relaxed_trunc_f64x2_u_zero # encoding: [0xfd,0x84,0x02] 795 i32x4.relaxed_trunc_f64x2_u_zero 796 797 # CHECK: f32x4.relaxed_madd # encoding: [0xfd,0x85,0x02] 798 f32x4.relaxed_madd 799 800 # CHECK: f32x4.relaxed_nmadd # encoding: [0xfd,0x86,0x02] 801 f32x4.relaxed_nmadd 802 803 # CHECK: f64x2.relaxed_madd # encoding: [0xfd,0x87,0x02] 804 f64x2.relaxed_madd 805 806 # CHECK: f64x2.relaxed_nmadd # encoding: [0xfd,0x88,0x02] 807 f64x2.relaxed_nmadd 808 809 # CHECK: i8x16.relaxed_laneselect # encoding: [0xfd,0x89,0x02] 810 i8x16.relaxed_laneselect 811 812 # CHECK: i16x8.relaxed_laneselect # encoding: [0xfd,0x8a,0x02] 813 i16x8.relaxed_laneselect 814 815 # CHECK: i32x4.relaxed_laneselect # encoding: [0xfd,0x8b,0x02] 816 i32x4.relaxed_laneselect 817 818 # CHECK: i64x2.relaxed_laneselect # encoding: [0xfd,0x8c,0x02] 819 i64x2.relaxed_laneselect 820 821 # CHECK: f32x4.relaxed_min # encoding: [0xfd,0x8d,0x02] 822 f32x4.relaxed_min 823 824 # CHECK: f32x4.relaxed_max # encoding: [0xfd,0x8e,0x02] 825 f32x4.relaxed_max 826 827 # CHECK: f64x2.relaxed_min # encoding: [0xfd,0x8f,0x02] 828 f64x2.relaxed_min 829 830 # CHECK: f64x2.relaxed_max # encoding: [0xfd,0x90,0x02] 831 f64x2.relaxed_max 832 833 # CHECK: i16x8.relaxed_q15mulr_s # encoding: [0xfd,0x91,0x02] 834 i16x8.relaxed_q15mulr_s 835 836 # CHECK: i16x8.relaxed_dot_i8x16_i7x16_s # encoding: [0xfd,0x92,0x02] 837 i16x8.relaxed_dot_i8x16_i7x16_s 838 839 # CHECK: i32x4.relaxed_dot_i8x16_i7x16_add_s # encoding: [0xfd,0x93,0x02] 840 i32x4.relaxed_dot_i8x16_i7x16_add_s 841 842 # CHECK: f32.load_f16 48 # encoding: [0xfc,0x30,0x01,0x30] 843 f32.load_f16 48 844 845 # CHECK: f32.store_f16 32 # encoding: [0xfc,0x31,0x01,0x20] 846 f32.store_f16 32 847 848 # CHECK: f16x8.splat # encoding: [0xfd,0xa0,0x02] 849 f16x8.splat 850 851 # CHECK: f16x8.extract_lane 1 # encoding: [0xfd,0xa1,0x02,0x01] 852 f16x8.extract_lane 1 853 854 # CHECK: f16x8.replace_lane 1 # encoding: [0xfd,0xa2,0x02,0x01] 855 f16x8.replace_lane 1 856 857 # CHECK: f16x8.add # encoding: [0xfd,0xbd,0x02] 858 f16x8.add 859 860 # CHECK: f16x8.sub # encoding: [0xfd,0xbe,0x02] 861 f16x8.sub 862 863 # CHECK: f16x8.mul # encoding: [0xfd,0xbf,0x02] 864 f16x8.mul 865 866 # CHECK: f16x8.div # encoding: [0xfd,0xc0,0x02] 867 f16x8.div 868 869 # CHECK: f16x8.min # encoding: [0xfd,0xc1,0x02] 870 f16x8.min 871 872 # CHECK: f16x8.max # encoding: [0xfd,0xc2,0x02] 873 f16x8.max 874 875 # CHECK: f16x8.pmin # encoding: [0xfd,0xc3,0x02] 876 f16x8.pmin 877 878 # CHECK: f16x8.pmax # encoding: [0xfd,0xc4,0x02] 879 f16x8.pmax 880 881 # CHECK: f16x8.eq # encoding: [0xfd,0xb7,0x02] 882 f16x8.eq 883 884 # CHECK: f16x8.ne # encoding: [0xfd,0xb8,0x02] 885 f16x8.ne 886 887 # CHECK: f16x8.lt # encoding: [0xfd,0xb9,0x02] 888 f16x8.lt 889 890 # CHECK: f16x8.gt # encoding: [0xfd,0xba,0x02] 891 f16x8.gt 892 893 # CHECK: f16x8.le # encoding: [0xfd,0xbb,0x02] 894 f16x8.le 895 896 # CHECK: f16x8.ge # encoding: [0xfd,0xbc,0x02] 897 f16x8.ge 898 899 # CHECK: f16x8.abs # encoding: [0xfd,0xb0,0x02] 900 f16x8.abs 901 902 # CHECK: f16x8.neg # encoding: [0xfd,0xb1,0x02] 903 f16x8.neg 904 905 # CHECK: f16x8.sqrt # encoding: [0xfd,0xb2,0x02] 906 f16x8.sqrt 907 908 # CHECK: f16x8.ceil # encoding: [0xfd,0xb3,0x02] 909 f16x8.ceil 910 911 # CHECK: f16x8.floor # encoding: [0xfd,0xb4,0x02] 912 f16x8.floor 913 914 # CHECK: f16x8.trunc # encoding: [0xfd,0xb5,0x02] 915 f16x8.trunc 916 917 # CHECK: f16x8.nearest # encoding: [0xfd,0xb6,0x02] 918 f16x8.nearest 919 920 # CHECK: f16x8.relaxed_madd # encoding: [0xfd,0xce,0x02] 921 f16x8.relaxed_madd 922 923 # CHECK: f16x8.relaxed_nmadd # encoding: [0xfd,0xcf,0x02] 924 f16x8.relaxed_nmadd 925 926 # CHECK: i16x8.trunc_sat_f16x8_s # encoding: [0xfd,0xc5,0x02] 927 i16x8.trunc_sat_f16x8_s 928 929 # CHECK: i16x8.trunc_sat_f16x8_u # encoding: [0xfd,0xc6,0x02] 930 i16x8.trunc_sat_f16x8_u 931 932 # CHECK: f16x8.convert_i16x8_s # encoding: [0xfd,0xc7,0x02] 933 f16x8.convert_i16x8_s 934 935 # CHECK: f16x8.convert_i16x8_u # encoding: [0xfd,0xc8,0x02] 936 f16x8.convert_i16x8_u 937 938 end_function 939