diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 12 | ||||
-rw-r--r-- | src/binaryen-c.h | 5 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 16 |
3 files changed, 32 insertions, 1 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index dfcd425e3..86eb5324d 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -628,6 +628,18 @@ BinaryenOp BinaryenCeilVecF64x2(void) { return CeilVecF64x2; } BinaryenOp BinaryenFloorVecF64x2(void) { return FloorVecF64x2; } BinaryenOp BinaryenTruncVecF64x2(void) { return TruncVecF64x2; } BinaryenOp BinaryenNearestVecF64x2(void) { return NearestVecF64x2; } +BinaryenOp BinaryenExtAddPairwiseSVecI8x16ToI16x8(void) { + return ExtAddPairwiseSVecI8x16ToI16x8; +} +BinaryenOp BinaryenExtAddPairwiseUVecI8x16ToI16x8(void) { + return ExtAddPairwiseUVecI8x16ToI16x8; +} +BinaryenOp BinaryenExtAddPairwiseSVecI16x8ToI32x4(void) { + return ExtAddPairwiseSVecI16x8ToI32x4; +} +BinaryenOp BinaryenExtAddPairwiseUVecI16x8ToI32x4(void) { + return ExtAddPairwiseUVecI16x8ToI32x4; +} BinaryenOp BinaryenTruncSatSVecF32x4ToVecI32x4(void) { return TruncSatSVecF32x4ToVecI32x4; } diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 84661b750..038ed43c2 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -529,7 +529,10 @@ BINARYEN_API BinaryenOp BinaryenCeilVecF64x2(void); BINARYEN_API BinaryenOp BinaryenFloorVecF64x2(void); BINARYEN_API BinaryenOp BinaryenTruncVecF64x2(void); BINARYEN_API BinaryenOp BinaryenNearestVecF64x2(void); -// TODO: Add extending pairwise adds to C and JS APIs once merged +BINARYEN_API BinaryenOp BinaryenExtAddPairwiseSVecI8x16ToI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtAddPairwiseUVecI8x16ToI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtAddPairwiseSVecI16x8ToI32x4(void); +BINARYEN_API BinaryenOp BinaryenExtAddPairwiseUVecI16x8ToI32x4(void); BINARYEN_API BinaryenOp BinaryenTruncSatSVecF32x4ToVecI32x4(void); BINARYEN_API BinaryenOp BinaryenTruncSatUVecF32x4ToVecI32x4(void); BINARYEN_API BinaryenOp BinaryenConvertSVecI32x4ToVecF32x4(void); diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 80affeefc..15e342eb8 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -459,6 +459,10 @@ function initializeConstants() { 'FloorVecF64x2', 'TruncVecF64x2', 'NearestVecF64x2', + 'ExtAddPairwiseSVecI8x16ToI16x8', + 'ExtAddPairwiseUVecI8x16ToI16x8', + 'ExtAddPairwiseSVecI16x8ToI32x4', + 'ExtAddPairwiseUVecI16x8ToI32x4', 'TruncSatSVecF32x4ToVecI32x4', 'TruncSatUVecF32x4ToVecI32x4', 'ConvertSVecI32x4ToVecF32x4', @@ -1717,6 +1721,12 @@ function wrapModule(module, self = {}) { 'avgr_u'(left, right) { return Module['_BinaryenBinary'](module, Module['AvgrUVecI16x8'], left, right); }, + 'extadd_pairwise_i8x16_s'(value) { + return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseSVecI8x16ToI16x8'], value); + }, + 'extadd_pairwise_i8x16_u'(value) { + return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseUVecI8x16ToI16x8'], value); + }, 'narrow_i32x4_s'(left, right) { return Module['_BinaryenBinary'](module, Module['NarrowSVecI32x4ToVecI16x8'], left, right); }, @@ -1822,6 +1832,12 @@ function wrapModule(module, self = {}) { 'dot_i16x8_s'(left, right) { return Module['_BinaryenBinary'](module, Module['DotSVecI16x8ToVecI32x4'], left, right); }, + 'extadd_pairwise_i16x8_s'(value) { + return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseSVecI16x8ToI32x4'], value); + }, + 'extadd_pairwise_i16x8_u'(value) { + return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseUVecI16x8ToI32x4'], value); + }, 'trunc_sat_f32x4_s'(value) { return Module['_BinaryenUnary'](module, Module['TruncSatSVecF32x4ToVecI32x4'], value); }, |