Skip to content

Commit

Permalink
Rename SIMD load splats
Browse files Browse the repository at this point in the history
Following suggestions in WebAssembly#297, renaming load splats to something more
consistent.
  • Loading branch information
ngzhian committed Aug 25, 2020
1 parent b89087d commit 73051c9
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 144 deletions.
8 changes: 4 additions & 4 deletions proposals/simd/BinarySIMD.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ For example, `ImmLaneIdx16` is a byte with values in the range 0-15 (inclusive).
| `i32x4.load16x4_u` | `0x04`| m:memarg |
| `i64x2.load32x2_s` | `0x05`| m:memarg |
| `i64x2.load32x2_u` | `0x06`| m:memarg |
| `v8x16.load_splat` | `0x07`| m:memarg |
| `v16x8.load_splat` | `0x08`| m:memarg |
| `v32x4.load_splat` | `0x09`| m:memarg |
| `v64x2.load_splat` | `0x0a`| m:memarg |
| `v128.load8_splat` | `0x07`| m:memarg |
| `v128.load16_splat` | `0x08`| m:memarg |
| `v128.load32_splat` | `0x09`| m:memarg |
| `v128.load64_splat` | `0x0a`| m:memarg |
| `v128.store` | `0x0b`| m:memarg |
| `v128.const` | `0x0c`| i:ImmByte[16] |
| `v8x16.shuffle` | `0x0d`| s:ImmLaneIdx32[16] |
Expand Down
8 changes: 4 additions & 4 deletions proposals/simd/ImplementationStatus.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
| `i32x4.load16x4_u` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `i64x2.load32x2_s` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `i64x2.load32x2_u` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v8x16.load_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v16x8.load_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v32x4.load_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v64x2.load_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.load8_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.load16_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.load32_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.load64_splat` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.store` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
| `v128.const` | `-munimplemented-simd128` | :heavy_check_mark: [6] | | | :heavy_check_mark: |
| `v8x16.shuffle` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: |
Expand Down
8 changes: 4 additions & 4 deletions proposals/simd/NewOpcodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
| i32x4.load16x4_u | 0x04 |
| i64x2.load32x2_s | 0x05 |
| i64x2.load32x2_u | 0x06 |
| v8x16.load_splat | 0x07 |
| v16x8.load_splat | 0x08 |
| v32x4.load_splat | 0x09 |
| v64x2.load_splat | 0x0a |
| v128.load8_splat | 0x07 |
| v128.load16_splat | 0x08 |
| v128.load32_splat | 0x09 |
| v128.load64_splat | 0x0a |
| v128.store | 0x0b |

| Basic operation | opcode |
Expand Down
8 changes: 4 additions & 4 deletions proposals/simd/SIMD.md
Original file line number Diff line number Diff line change
Expand Up @@ -768,10 +768,10 @@ def S.load(memarg):

### Load and Splat

* `v8x16.load_splat(memarg) -> v128`
* `v16x8.load_splat(memarg) -> v128`
* `v32x4.load_splat(memarg) -> v128`
* `v64x2.load_splat(memarg) -> v128`
* `v128.load8_splat(memarg) -> v128`
* `v128.load16_splat(memarg) -> v128`
* `v128.load32_splat(memarg) -> v128`
* `v128.load64_splat(memarg) -> v128`

Load a single element and splat to all lanes of a `v128` vector. The natural
alignment is the size of the element loaded.
Expand Down
48 changes: 24 additions & 24 deletions test/core/simd/simd_align.wast
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,16 @@
(module (memory 1) (func (drop (i64x2.load32x2_u align=4 (i32.const 0)))))
(module (memory 1) (func (drop (i64x2.load32x2_u align=8 (i32.const 0)))))

(module (memory 1) (func (drop (v8x16.load_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v16x8.load_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v16x8.load_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v32x4.load_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v32x4.load_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v32x4.load_splat align=4 (i32.const 0)))))
(module (memory 1) (func (drop (v64x2.load_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v64x2.load_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v64x2.load_splat align=4 (i32.const 0)))))
(module (memory 1) (func (drop (v64x2.load_splat align=8 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load8_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load16_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load16_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load32_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load32_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load32_splat align=4 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load64_splat align=1 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load64_splat align=2 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load64_splat align=4 (i32.const 0)))))
(module (memory 1) (func (drop (v128.load64_splat align=8 (i32.const 0)))))

;; Invalid alignment

Expand Down Expand Up @@ -83,19 +83,19 @@
"alignment must not be larger than natural"
)
(assert_invalid
(module (memory 1) (func (result v128) (v8x16.load_splat align=2 (i32.const 0))))
(module (memory 1) (func (result v128) (v128.load8_splat align=2 (i32.const 0))))
"alignment must not be larger than natural"
)
(assert_invalid
(module (memory 1) (func (result v128) (v16x8.load_splat align=4 (i32.const 0))))
(module (memory 1) (func (result v128) (v128.load16_splat align=4 (i32.const 0))))
"alignment must not be larger than natural"
)
(assert_invalid
(module (memory 1) (func (result v128) (v32x4.load_splat align=8 (i32.const 0))))
(module (memory 1) (func (result v128) (v128.load32_splat align=8 (i32.const 0))))
"alignment must not be larger than natural"
)
(assert_invalid
(module (memory 1) (func (result v128) (v64x2.load_splat align=16 (i32.const 0))))
(module (memory 1) (func (result v128) (v128.load64_splat align=16 (i32.const 0))))
"alignment must not be larger than natural"
)

Expand Down Expand Up @@ -247,61 +247,61 @@
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v8x16.load_splat align=-1 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load8_splat align=-1 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v8x16.load_splat align=0 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load8_splat align=0 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v16x8.load_splat align=-1 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load16_splat align=-1 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v16x8.load_splat align=0 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load16_splat align=0 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v32x4.load_splat align=-1 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load32_splat align=-1 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v32x4.load_splat align=0 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load32_splat align=0 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v32x4.load_splat align=3 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load32_splat align=3 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v64x2.load_splat align=-1 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load64_splat align=-1 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v64x2.load_splat align=0 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load64_splat align=0 (i32.const 0)))"
)
"alignment must be a power of two"
)
(assert_malformed
(module quote
"(memory 1) (func (result v128) (v64x2.load_splat align=7 (i32.const 0)))"
"(memory 1) (func (result v128) (v128.load64_splat align=7 (i32.const 0)))"
)
"alignment must be a power of two"
)
Expand Down
Loading

0 comments on commit 73051c9

Please sign in to comment.