|
1 | 1 | ;; Tests for the extract_lane, replace_lane, swizzle and shuffle group instructions
|
2 | 2 |
|
3 | 3 |
|
4 |
| -(module |
| 4 | +(module |
5 | 5 | (func (export "i8x16_extract_lane_s-first") (param v128) (result i32)
|
6 | 6 | (i8x16.extract_lane_s 0 (local.get 0)))
|
7 | 7 | (func (export "i8x16_extract_lane_s-last") (param v128) (result i32)
|
|
408 | 408 | (assert_invalid (module (func (result f32) (f32x4.extract_lane -1 (v128.const f32x4 0 0 0 0)))) "invalid lane index")
|
409 | 409 | (assert_invalid (module (func (result f32) (f32x4.extract_lane 4 (v128.const f32x4 0 0 0 0)))) "invalid lane index")
|
410 | 410 | (assert_invalid (module (func (result v128) (i8x16.replace_lane -1 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
411 |
| -(assert_invalid (module (func (result v128) (i8x16.replace_lane 16 (v128.const ii8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") |
| 411 | +(assert_invalid (module (func (result v128) (i8x16.replace_lane 16 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") |
412 | 412 | (assert_invalid (module (func (result v128) (i16x8.replace_lane -1 (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
413 | 413 | (assert_invalid (module (func (result v128) (i16x8.replace_lane 8 (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
414 | 414 | (assert_invalid (module (func (result v128) (i32x4.replace_lane -1 (v128.const i32x4 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
|
433 | 433 | (assert_invalid (module (func (result v128) (i16x8.replace_lane 8 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
434 | 434 | (assert_invalid (module (func (result v128) (i32x4.replace_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
435 | 435 | (assert_invalid (module (func (result v128) (f32x4.replace_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index")
|
436 |
| -(assert_invalid (module (func (result i64) (i64x2.extract_lane 2 (v128.const i64x2 0 0 0 0)))) "invalid lane index") |
437 |
| -(assert_invalid (module (func (result f64) (f64x2.extract_lane 2 (v128.const f64x2 0 0 0 0)))) "invalid lane index") |
438 |
| -(assert_invalid (module (func (result v128) (i64x2.replace_lane 2 (v128.const i64x2 0 0 0 0) (i64.const 1)))) "invalid lane index") |
439 |
| -(assert_invalid (module (func (result v128) (f64x2.replace_lane 2 (v128.const f64x2 0 0 0 0) (f64.const 1.0)))) "invalid lane index") |
| 436 | +(assert_invalid (module (func (result i64) (i64x2.extract_lane 2 (v128.const i64x2 0 0)))) "invalid lane index") |
| 437 | +(assert_invalid (module (func (result f64) (f64x2.extract_lane 2 (v128.const f64x2 0 0)))) "invalid lane index") |
| 438 | +(assert_invalid (module (func (result v128) (i64x2.replace_lane 2 (v128.const i64x2 0 0) (i64.const 1)))) "invalid lane index") |
| 439 | +(assert_invalid (module (func (result v128) (f64x2.replace_lane 2 (v128.const f64x2 0 0) (f64.const 1.0)))) "invalid lane index") |
440 | 440 |
|
441 | 441 | ;; Invalid parameters: required v128 but pass other types
|
442 | 442 |
|
|
478 | 478 | (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (f32.const 4.0)))) "type mismatch")
|
479 | 479 |
|
480 | 480 | ;; v8x16.shuffle: the 1st argument must be 16-byte literals in 0..32
|
481 |
| -(assert_invalid (module (func (result v128) |
482 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
483 |
| - (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) |
484 |
| - (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))) "invalid lane length") |
485 |
| -(assert_invalid (module (func (result v128) |
486 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
487 |
| - (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) |
488 |
| - (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))) "invalid lane length") |
| 481 | +(assert_malformed (module quote "(func (param v128) (result v128)" |
| 482 | + "local.get 0" |
| 483 | + "local.get 0" |
| 484 | + "v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)") |
| 485 | + "invalid lane length") |
| 486 | +(assert_malformed (module quote "(func (param v128) (result v128)" |
| 487 | + "local.get 0" |
| 488 | + "local.get 0" |
| 489 | + "v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)") |
| 490 | + "invalid lane length") |
489 | 491 | (assert_invalid (module (func (result v128)
|
490 | 492 | (v8x16.shuffle -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
491 | 493 | (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
|
|
727 | 729 | (assert_return (invoke "as-i64x2_splat-operand" (v128.const i64x2 -1 0)) (v128.const i64x2 -1 -1))
|
728 | 730 | (assert_return (invoke "as-f64x2_splat-operand" (v128.const f64x2 inf nan)) (v128.const f64x2 inf inf))
|
729 | 731 | (assert_return (invoke "as-i8x16_add-operands"
|
730 |
| - (v128.const i8x16 0xff 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) (i32.const 1) |
| 732 | + (v128.const i8x16 0xff 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) (i32.const 1) |
731 | 733 | (v128.const i8x16 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 0xff) (i32.const 1))
|
732 |
| - (v128.const i8x16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17)) |
| 734 | + (v128.const i8x16 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17)) |
733 | 735 | (assert_return (invoke "as-i16x8_add-operands"
|
734 | 736 | (v128.const i16x8 -1 4 9 16 25 36 49 64) (i32.const 1)
|
735 | 737 | (v128.const i16x8 64 49 36 25 16 9 4 -1) (i32.const 1))
|
|
0 commit comments