summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-11-01 18:22:05 -0700
committerGitHub <noreply@github.com>2019-11-01 18:22:05 -0700
commit0a5925a52cc0888fb61bc7b55c78666add5025cd (patch)
treed21ff1cc88829dcacbc33b4ddd23e2d467fd8cb1 /src/js/binaryen.js-post.js
parent90297e84007031ec884d829f973556d49c9b9467 (diff)
downloadbinaryen-0a5925a52cc0888fb61bc7b55c78666add5025cd.tar.gz
binaryen-0a5925a52cc0888fb61bc7b55c78666add5025cd.tar.bz2
binaryen-0a5925a52cc0888fb61bc7b55c78666add5025cd.zip
Add SIMD integer min and max instructions (#2416)
As proposed in https://github.com/WebAssembly/simd/pull/27.
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r--src/js/binaryen.js-post.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index b4cd5e482..f2d679900 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -336,6 +336,10 @@ Module['SubVecI8x16'] = Module['_BinaryenSubVecI8x16']();
Module['SubSatSVecI8x16'] = Module['_BinaryenSubSatSVecI8x16']();
Module['SubSatUVecI8x16'] = Module['_BinaryenSubSatUVecI8x16']();
Module['MulVecI8x16'] = Module['_BinaryenMulVecI8x16']();
+Module['MinSVecI8x16'] = Module['_BinaryenMinSVecI8x16']();
+Module['MinUVecI8x16'] = Module['_BinaryenMinUVecI8x16']();
+Module['MaxSVecI8x16'] = Module['_BinaryenMaxSVecI8x16']();
+Module['MaxUVecI8x16'] = Module['_BinaryenMaxUVecI8x16']();
Module['NegVecI16x8'] = Module['_BinaryenNegVecI16x8']();
Module['AnyTrueVecI16x8'] = Module['_BinaryenAnyTrueVecI16x8']();
Module['AllTrueVecI16x8'] = Module['_BinaryenAllTrueVecI16x8']();
@@ -349,6 +353,10 @@ Module['SubVecI16x8'] = Module['_BinaryenSubVecI16x8']();
Module['SubSatSVecI16x8'] = Module['_BinaryenSubSatSVecI16x8']();
Module['SubSatUVecI16x8'] = Module['_BinaryenSubSatUVecI16x8']();
Module['MulVecI16x8'] = Module['_BinaryenMulVecI16x8']();
+Module['MinSVecI16x8'] = Module['_BinaryenMinSVecI16x8']();
+Module['MinUVecI16x8'] = Module['_BinaryenMinUVecI16x8']();
+Module['MaxSVecI16x8'] = Module['_BinaryenMaxSVecI16x8']();
+Module['MaxUVecI16x8'] = Module['_BinaryenMaxUVecI16x8']();
Module['NegVecI32x4'] = Module['_BinaryenNegVecI32x4']();
Module['AnyTrueVecI32x4'] = Module['_BinaryenAnyTrueVecI32x4']();
Module['AllTrueVecI32x4'] = Module['_BinaryenAllTrueVecI32x4']();
@@ -358,6 +366,10 @@ Module['ShrUVecI32x4'] = Module['_BinaryenShrUVecI32x4']();
Module['AddVecI32x4'] = Module['_BinaryenAddVecI32x4']();
Module['SubVecI32x4'] = Module['_BinaryenSubVecI32x4']();
Module['MulVecI32x4'] = Module['_BinaryenMulVecI32x4']();
+Module['MinSVecI32x4'] = Module['_BinaryenMinSVecI32x4']();
+Module['MinUVecI32x4'] = Module['_BinaryenMinUVecI32x4']();
+Module['MaxSVecI32x4'] = Module['_BinaryenMaxSVecI32x4']();
+Module['MaxUVecI32x4'] = Module['_BinaryenMaxUVecI32x4']();
Module['NegVecI64x2'] = Module['_BinaryenNegVecI64x2']();
Module['AnyTrueVecI64x2'] = Module['_BinaryenAnyTrueVecI64x2']();
Module['AllTrueVecI64x2'] = Module['_BinaryenAllTrueVecI64x2']();
@@ -1445,6 +1457,18 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI8x16'], left, right);
},
+ 'min_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinSVecI8x16'], left, right);
+ },
+ 'min_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinUVecI8x16'], left, right);
+ },
+ 'max_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxSVecI8x16'], left, right);
+ },
+ 'max_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxUVecI8x16'], left, right);
+ },
'narrow_i16x8_s': function(left, right) {
return Module['_BinaryenBinary'](module, Module['NarrowSVecI16x8ToVecI8x16'], left, right);
},
@@ -1535,6 +1559,18 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI16x8'], left, right);
},
+ 'min_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinSVecI16x8'], left, right);
+ },
+ 'min_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinUVecI16x8'], left, right);
+ },
+ 'max_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxSVecI16x8'], left, right);
+ },
+ 'max_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxUVecI16x8'], left, right);
+ },
'narrow_i32x4_s': function(left, right) {
return Module['_BinaryenBinary'](module, Module['NarrowSVecI32x4ToVecI16x8'], left, right);
},
@@ -1628,6 +1664,18 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI32x4'], left, right);
},
+ 'min_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinSVecI32x4'], left, right);
+ },
+ 'min_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MinUVecI32x4'], left, right);
+ },
+ 'max_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxSVecI32x4'], left, right);
+ },
+ 'max_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['MaxUVecI32x4'], left, right);
+ },
'trunc_sat_f32x4_s': function(value) {
return Module['_BinaryenUnary'](module, Module['TruncSatSVecF32x4ToVecI32x4'], value);
},