diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/binaryen-c.cpp | 13 | ||||
-rw-r--r-- | src/binaryen-c.h | 15 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 52 |
3 files changed, 78 insertions, 2 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp index 267bd9cc3..d348a4d5d 100644 --- a/src/binaryen-c.cpp +++ b/src/binaryen-c.cpp @@ -571,6 +571,11 @@ BinaryenOp BinaryenMinUVecI16x8(void) { return MinUVecI16x8; } BinaryenOp BinaryenMaxSVecI16x8(void) { return MaxSVecI16x8; } BinaryenOp BinaryenMaxUVecI16x8(void) { return MaxUVecI16x8; } BinaryenOp BinaryenAvgrUVecI16x8(void) { return AvgrUVecI16x8; } +BinaryenOp BinaryenQ15MulrSatSVecI16x8(void) { return Q15MulrSatSVecI16x8; } +BinaryenOp BinaryenExtMulLowSVecI16x8(void) { return ExtMulLowSVecI16x8; } +BinaryenOp BinaryenExtMulHighSVecI16x8(void) { return ExtMulHighSVecI16x8; } +BinaryenOp BinaryenExtMulLowUVecI16x8(void) { return ExtMulLowUVecI16x8; } +BinaryenOp BinaryenExtMulHighUVecI16x8(void) { return ExtMulHighUVecI16x8; } BinaryenOp BinaryenAbsVecI32x4(void) { return AbsVecI32x4; } BinaryenOp BinaryenNegVecI32x4(void) { return NegVecI32x4; } BinaryenOp BinaryenAllTrueVecI32x4(void) { return AllTrueVecI32x4; } @@ -588,6 +593,10 @@ BinaryenOp BinaryenMaxUVecI32x4(void) { return MaxUVecI32x4; } BinaryenOp BinaryenDotSVecI16x8ToVecI32x4(void) { return DotSVecI16x8ToVecI32x4; } +BinaryenOp BinaryenExtMulLowSVecI32x4(void) { return ExtMulLowSVecI32x4; } +BinaryenOp BinaryenExtMulHighSVecI32x4(void) { return ExtMulHighSVecI32x4; } +BinaryenOp BinaryenExtMulLowUVecI32x4(void) { return ExtMulLowUVecI32x4; } +BinaryenOp BinaryenExtMulHighUVecI32x4(void) { return ExtMulHighUVecI32x4; } BinaryenOp BinaryenAbsVecI64x2(void) { return AbsVecI64x2; } BinaryenOp BinaryenNegVecI64x2(void) { return NegVecI64x2; } BinaryenOp BinaryenAllTrueVecI64x2(void) { return AllTrueVecI64x2; } @@ -598,6 +607,10 @@ BinaryenOp BinaryenShrUVecI64x2(void) { return ShrUVecI64x2; } BinaryenOp BinaryenAddVecI64x2(void) { return AddVecI64x2; } BinaryenOp BinaryenSubVecI64x2(void) { return SubVecI64x2; } BinaryenOp BinaryenMulVecI64x2(void) { return MulVecI64x2; } +BinaryenOp BinaryenExtMulLowSVecI64x2(void) { return ExtMulLowSVecI64x2; } +BinaryenOp BinaryenExtMulHighSVecI64x2(void) { return ExtMulHighSVecI64x2; } +BinaryenOp BinaryenExtMulLowUVecI64x2(void) { return ExtMulLowUVecI64x2; } +BinaryenOp BinaryenExtMulHighUVecI64x2(void) { return ExtMulHighUVecI64x2; } BinaryenOp BinaryenAbsVecF32x4(void) { return AbsVecF32x4; } BinaryenOp BinaryenNegVecF32x4(void) { return NegVecF32x4; } BinaryenOp BinaryenSqrtVecF32x4(void) { return SqrtVecF32x4; } diff --git a/src/binaryen-c.h b/src/binaryen-c.h index ccabe8bb5..217ed96db 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -472,8 +472,11 @@ BINARYEN_API BinaryenOp BinaryenMinUVecI16x8(void); BINARYEN_API BinaryenOp BinaryenMaxSVecI16x8(void); BINARYEN_API BinaryenOp BinaryenMaxUVecI16x8(void); BINARYEN_API BinaryenOp BinaryenAvgrUVecI16x8(void); -// TODO: Add i16x8.q15mulr_sat_s to C and JS APIs once merged to the proposal -// TODO: Add extending multiplications to APIs once they are merged as well +BINARYEN_API BinaryenOp BinaryenQ15MulrSatSVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowSVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighSVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowUVecI16x8(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighUVecI16x8(void); BINARYEN_API BinaryenOp BinaryenAbsVecI32x4(void); BINARYEN_API BinaryenOp BinaryenNegVecI32x4(void); BINARYEN_API BinaryenOp BinaryenAllTrueVecI32x4(void); @@ -489,6 +492,10 @@ BINARYEN_API BinaryenOp BinaryenMinUVecI32x4(void); BINARYEN_API BinaryenOp BinaryenMaxSVecI32x4(void); BINARYEN_API BinaryenOp BinaryenMaxUVecI32x4(void); BINARYEN_API BinaryenOp BinaryenDotSVecI16x8ToVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowSVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighSVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowUVecI32x4(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighUVecI32x4(void); BINARYEN_API BinaryenOp BinaryenAbsVecI64x2(void); BINARYEN_API BinaryenOp BinaryenNegVecI64x2(void); BINARYEN_API BinaryenOp BinaryenAllTrueVecI64x2(void); @@ -499,6 +506,10 @@ BINARYEN_API BinaryenOp BinaryenShrUVecI64x2(void); BINARYEN_API BinaryenOp BinaryenAddVecI64x2(void); BINARYEN_API BinaryenOp BinaryenSubVecI64x2(void); BINARYEN_API BinaryenOp BinaryenMulVecI64x2(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowSVecI64x2(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighSVecI64x2(void); +BINARYEN_API BinaryenOp BinaryenExtMulLowUVecI64x2(void); +BINARYEN_API BinaryenOp BinaryenExtMulHighUVecI64x2(void); BINARYEN_API BinaryenOp BinaryenAbsVecF32x4(void); BINARYEN_API BinaryenOp BinaryenNegVecF32x4(void); BINARYEN_API BinaryenOp BinaryenSqrtVecF32x4(void); diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 7d13395a1..907068059 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -404,7 +404,16 @@ function initializeConstants() { 'MaxSVecI16x8', 'MaxUVecI16x8', 'AvgrUVecI16x8', + 'Q15MulrSatSVecI16x8', + 'ExtMulLowSVecI16x8', + 'ExtMulHighSVecI16x8', + 'ExtMulLowUVecI16x8', + 'ExtMulHighUVecI16x8', 'DotSVecI16x8ToVecI32x4', + 'ExtMulLowSVecI32x4', + 'ExtMulHighSVecI32x4', + 'ExtMulLowUVecI32x4', + 'ExtMulHighUVecI32x4', 'AbsVecI32x4', 'NegVecI32x4', 'AllTrueVecI32x4', @@ -429,6 +438,10 @@ function initializeConstants() { 'AddVecI64x2', 'SubVecI64x2', 'MulVecI64x2', + 'ExtMulLowSVecI64x2', + 'ExtMulHighSVecI64x2', + 'ExtMulLowUVecI64x2', + 'ExtMulHighUVecI64x2', 'AbsVecF32x4', 'NegVecF32x4', 'SqrtVecF32x4', @@ -1727,6 +1740,21 @@ function wrapModule(module, self = {}) { 'avgr_u'(left, right) { return Module['_BinaryenBinary'](module, Module['AvgrUVecI16x8'], left, right); }, + 'q15mulr_sat_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['Q15MulrSatSVecI16x8'], left, right); + }, + 'extmul_low_i8x16_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowSVecI16x8'], left, right); + }, + 'extmul_high_i8x16_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighSVecI16x8'], left, right); + }, + 'extmul_low_i8x16_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowUVecI16x8'], left, right); + }, + 'extmul_high_i8x16_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighUVecI16x8'], left, right); + }, 'extadd_pairwise_i8x16_s'(value) { return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseSVecI8x16ToI16x8'], value); }, @@ -1838,6 +1866,18 @@ function wrapModule(module, self = {}) { 'dot_i16x8_s'(left, right) { return Module['_BinaryenBinary'](module, Module['DotSVecI16x8ToVecI32x4'], left, right); }, + 'extmul_low_i16x8_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowSVecI32x4'], left, right); + }, + 'extmul_high_i16x8_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighSVecI32x4'], left, right); + }, + 'extmul_low_i16x8_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowUVecI32x4'], left, right); + }, + 'extmul_high_i16x8_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighUVecI32x4'], left, right); + }, 'extadd_pairwise_i16x8_s'(value) { return Module['_BinaryenUnary'](module, Module['ExtAddPairwiseSVecI16x8ToI32x4'], value); }, @@ -1928,6 +1968,18 @@ function wrapModule(module, self = {}) { 'mul'(left, right) { return Module['_BinaryenBinary'](module, Module['MulVecI64x2'], left, right); }, + 'extmul_low_i32x4_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowSVecI64x2'], left, right); + }, + 'extmul_high_i32x4_s'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighSVecI64x2'], left, right); + }, + 'extmul_low_i32x4_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulLowUVecI64x2'], left, right); + }, + 'extmul_high_i32x4_u'(left, right) { + return Module['_BinaryenBinary'](module, Module['ExtMulHighUVecI64x2'], left, right); + }, 'extend_low_i32x4_s'(value) { return Module['_BinaryenUnary'](module, Module['ExtendLowSVecI32x4ToVecI64x2'], value); }, |