diff --git a/proposals/simd/BinarySIMD.md b/proposals/simd/BinarySIMD.md index 4297afbd3..9bf9510a0 100644 --- a/proposals/simd/BinarySIMD.md +++ b/proposals/simd/BinarySIMD.md @@ -222,3 +222,5 @@ For example, `ImmLaneIdx16` is a byte with values in the range 0-15 (inclusive). | `i32x4.trunc_sat_f32x4_u` | `0xf9`| - | | `f32x4.convert_i32x4_s` | `0xfa`| - | | `f32x4.convert_i32x4_u` | `0xfb`| - | +| `f32x4.add_pairwise` | `0xfe`| - | +| `f64x2.add_pairwise` | `0xff`| - | diff --git a/proposals/simd/ImplementationStatus.md b/proposals/simd/ImplementationStatus.md index e50409829..02011812e 100644 --- a/proposals/simd/ImplementationStatus.md +++ b/proposals/simd/ImplementationStatus.md @@ -190,6 +190,8 @@ | `i32x4.trunc_sat_f32x4_u` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: | | `f32x4.convert_i32x4_s` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: | | `f32x4.convert_i32x4_u` | `-msimd128` | :heavy_check_mark: | | | :heavy_check_mark: | +| `f32x4.add_pairwise` | | | | | | +| `f64x2.add_pairwise` | | | | | | [1] Tip of tree LLVM as of May 20, 2020 diff --git a/proposals/simd/SIMD.md b/proposals/simd/SIMD.md index 0b6b9cde6..32c028c5b 100644 --- a/proposals/simd/SIMD.md +++ b/proposals/simd/SIMD.md @@ -938,6 +938,14 @@ Lane-wise rounding to the nearest integral value with the magnitude not larger t Lane-wise rounding to the nearest integral value; if two values are equally near, rounds to the even one. +## Pairwise Arithmetics + +### Addition +* `f32x4.add_pairwise(a: v128, b: v128) -> v128` +* `f64x2.add_pairwise(a: v128, b: v128) -> v128` + +IEEE `addition` of pairs of elements in concantation of `a` and `b` vectors. + ## Conversions ### Integer to floating point * `f32x4.convert_i32x4_s(a: v128) -> v128`