Skip to content

Commit 00aebcf

Browse files
rrwintertonpenzn
authored andcommitted
Introduce Load and Extend
Incorporate review suggestions from WebAssembly#77
1 parent da5d07c commit 00aebcf

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

proposals/simd/BinarySIMD.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,5 +166,11 @@ The `v8x16.shuffle2_imm` instruction has 16 bytes after `simdop`.
166166
| `f32x4.convert_u/i32x4` | `0xb0`| - |
167167
| `f64x2.convert_s/i64x2` | `0xb1`| - |
168168
| `f64x2.convert_u/i64x2` | `0xb2`| - |
169+
| `i16x8.load8x8_u` | `0xb3`| m:memarg |
170+
| `i16x8.load8x8_s` | `0xb4`| m:memarg |
171+
| `i32x4.load16x4_u` | `0xb5`| m:memarg |
172+
| `i32x4.load16x4_s` | `0xb6`| m:memarg |
173+
| `i64x2.load32x2_u` | `0xb7`| m:memarg |
174+
| `i64x2.load32x2_s` | `0xb8`| m:memarg |
169175
| `v8x16.shuffle1` | `0xc0`| - |
170-
| `v8x16.shuffle2_imm` | `0xc1`| s:LaneIdx32[16] |
176+
| `v8x16.shuffle2_imm` | `0xc1`| s:LaneIdx32[16] |

proposals/simd/ImplementationStatus.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,12 @@
139139
| `f32x4.convert_u/i32x4` | `-msimd128` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
140140
| `f64x2.convert_s/i64x2` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
141141
| `f64x2.convert_u/i64x2` | `-munimplemented-simd128` | | :heavy_check_mark: | :heavy_check_mark: |
142+
| `i16x8.load8x8_u` | | | | |
143+
| `i16x8.load8x8_s` | | | | |
144+
| `i32x4.load16x4_u` | | | | |
145+
| `i32x4.load16x4_s` | | | | |
146+
| `i64x2.load32x2_u` | | | | |
147+
| `i64x2.load32x2_s` | | | | |
142148
| `v8x16.shuffle1` | | | :heavy_check_mark: | |
143149
| `v8x16.shuffle2_imm` | | | :heavy_check_mark: | :heavy_check_mark: |
144150

proposals/simd/SIMD.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -666,6 +666,17 @@ natural alignment.
666666

667667
Load a `v128` vector from the given heap address.
668668

669+
### Load and Extend
670+
671+
Fetch consequtive integers up to 32-bit wide and produce a vector with lanes up to 64 bits:
672+
673+
* `i16x8.load8x8_u(memarg) -> v128`: load eight 8-bit integers and zero extend each one to a 16-bit lane
674+
* `i16x8.load8x8_s(memarg) -> v128`: load eight 8-bit integers and sign extend each one to a 16-bit lane
675+
* `i32x4.load16x4_u(memarg) -> v128`: load four 16-bit integers and zero extend each one to a 32-bit lane
676+
* `i32x4.load16x4_s(memarg) -> v128`: load four 16-bit integers and sign extend each one to a 32-bit lane
677+
* `i64x2.load32x2_u(memarg) -> v128`: load two 32-bit integers and zero extend each one to a 64-bit lane
678+
* `i64x2.load32x2_s(memarg) -> v128`: load two 32-bit integers and sign extend each one to a 64-bit lane
679+
669680
### Store
670681

671682
* `v128.store(memarg, data: v128)`

0 commit comments

Comments
 (0)