Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 41aee8b

Browse files
committed
Pseudo-Minimum and Pseudo-Maximum instructions
1 parent e7c2002 commit 41aee8b

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

proposals/simd/BinarySIMD.md

+5
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ For example, `ImmLaneIdx16` is a byte with values in the range 0-15 (inclusive).
3333
| Instruction | `simdop` | Immediate operands |
3434
| ---------------------------|---------:|--------------------|
3535
| `v128.load` | `0x00`| m:memarg |
36+
<<<<<<< HEAD
3637
| `v128.load8x8_s` | `0x01`| m:memarg |
3738
| `v128.load8x8_u` | `0x02`| m:memarg |
3839
| `v128.load16x4_s` | `0x03`| m:memarg |
@@ -197,6 +198,8 @@ For example, `ImmLaneIdx16` is a byte with values in the range 0-15 (inclusive).
197198
| `f32x4.div` | `0xe7`| - |
198199
| `f32x4.min` | `0xe8`| - |
199200
| `f32x4.max` | `0xe9`| - |
201+
| `f32x4.pmin` | `0xea`| - |
202+
| `f32x4.pmax` | `0xeb`| - |
200203
| `f64x2.abs` | `0xec`| - |
201204
| `f64x2.neg` | `0xed`| - |
202205
| `f64x2.sqrt` | `0xef`| - |
@@ -206,6 +209,8 @@ For example, `ImmLaneIdx16` is a byte with values in the range 0-15 (inclusive).
206209
| `f64x2.div` | `0xf3`| - |
207210
| `f64x2.min` | `0xf4`| - |
208211
| `f64x2.max` | `0xf5`| - |
212+
| `f64x2.pmin` | `0xf6`| - |
213+
| `f64x2.pmax` | `0xf7`| - |
209214
| `i32x4.trunc_sat_f32x4_s` | `0xf8`| - |
210215
| `i32x4.trunc_sat_f32x4_u` | `0xf9`| - |
211216
| `f32x4.convert_i32x4_s` | `0xfa`| - |

proposals/simd/SIMD.md

+12
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,18 @@ Lane-wise minimum value, propagating NaNs.
867867

868868
Lane-wise maximum value, propagating NaNs.
869869

870+
### Pseudo-minimum
871+
* `f32x4.pmin(a: v128, b: v128) -> v128`
872+
* `f64x2.pmin(a: v128, b: v128) -> v128`
873+
874+
Lane-wise minimum value, defined as `b < a ? b : a`.
875+
876+
### Pseudo-maximum
877+
* `f32x4.pmax(a: v128, b: v128) -> v128`
878+
* `f64x2.pmax(a: v128, b: v128) -> v128`
879+
880+
Lane-wise maximum value, defined as `a < b ? b : a`.
881+
870882
## Floating-point arithmetic
871883

872884
The floating-point arithmetic operations are all lane-wise versions of the

0 commit comments

Comments
 (0)