diff options
author | Daniel Wirtz <dcode@dcode.io> | 2019-09-11 18:40:08 +0200 |
---|---|---|
committer | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-09-11 09:40:08 -0700 |
commit | bcd80a9b20c83753f0712f12ae7de42fdfdc32cb (patch) | |
tree | 72acc8972942914832cd65993419dc3c12c3a869 | |
parent | 241aa71a776ae7e4c0cddb11523358242832daa4 (diff) | |
download | binaryen-bcd80a9b20c83753f0712f12ae7de42fdfdc32cb.tar.gz binaryen-bcd80a9b20c83753f0712f12ae7de42fdfdc32cb.tar.bz2 binaryen-bcd80a9b20c83753f0712f12ae7de42fdfdc32cb.zip |
Fix bitselect operation in C/JS APIs (#2336)
In #2328 the SIMDBitselect API has been replaced with SIMDTernary that now has Bitselect as one of multiple operations, which is currently not exposed, unlike the new QFMA/QFMS operations which are exposed. This PR adds it.
-rw-r--r-- | .gitignore | 3 | ||||
-rwxr-xr-x | build-js.sh | 3 | ||||
-rw-r--r-- | src/binaryen-c.h | 1 | ||||
-rw-r--r-- | src/js/binaryen.js-post.js | 3 |
4 files changed, 7 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore index 6397ab108..e8671620b 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,9 @@ CMakeFiles /*.VC.opendb /Win32/ +# files commonly related to building out-of-tree +/build/ + # macOS .DS_Store diff --git a/build-js.sh b/build-js.sh index 14dfff08f..18fd04208 100755 --- a/build-js.sh +++ b/build-js.sh @@ -476,6 +476,7 @@ export_function "_BinaryenNotVec128" export_function "_BinaryenAndVec128" export_function "_BinaryenOrVec128" export_function "_BinaryenXorVec128" +export_function "_BinaryenBitselectVec128" export_function "_BinaryenNegVecI8x16" export_function "_BinaryenAnyTrueVecI8x16" export_function "_BinaryenAllTrueVecI8x16" @@ -524,8 +525,6 @@ export_function "_BinaryenNegVecF32x4" export_function "_BinaryenSqrtVecF32x4" export_function "_BinaryenQFMAVecF32x4" export_function "_BinaryenQFMSVecF32x4" -export_function "_BinaryenQFMAVecF32x4" -export_function "_BinaryenQFMSVecF32x4" export_function "_BinaryenAddVecF32x4" export_function "_BinaryenSubVecF32x4" export_function "_BinaryenMulVecF32x4" diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 396ee2e8d..d306885b0 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -440,6 +440,7 @@ BinaryenOp BinaryenNotVec128(void); BinaryenOp BinaryenAndVec128(void); BinaryenOp BinaryenOrVec128(void); BinaryenOp BinaryenXorVec128(void); +BinaryenOp BinaryenBitselectVec128(void); BinaryenOp BinaryenNegVecI8x16(void); BinaryenOp BinaryenAnyTrueVecI8x16(void); BinaryenOp BinaryenAllTrueVecI8x16(void); diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index bb5e4b21e..328b0a27d 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -320,6 +320,7 @@ Module['NotVec128'] = Module['_BinaryenNotVec128'](); Module['AndVec128'] = Module['_BinaryenAndVec128'](); Module['OrVec128'] = Module['_BinaryenOrVec128'](); Module['XorVec128'] = Module['_BinaryenXorVec128'](); +Module['BitselectVec128'] = Module['_BinaryenBitselectVec128'](); Module['NegVecI8x16'] = Module['_BinaryenNegVecI8x16'](); Module['AnyTrueVecI8x16'] = Module['_BinaryenAnyTrueVecI8x16'](); Module['AllTrueVecI8x16'] = Module['_BinaryenAllTrueVecI8x16'](); @@ -1327,7 +1328,7 @@ function wrapModule(module, self) { return Module['_BinaryenUnary'](module, Module['XorVec128'], value); }, 'bitselect': function(left, right, cond) { - return Module['_BinaryenSIMDTernary'](module, Module['Bitselect'], left, right, cond); + return Module['_BinaryenSIMDTernary'](module, Module['BitselectVec128'], left, right, cond); }, 'pop': function() { return Module['_BinaryenPop'](module, Module['v128']); |