summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2020-05-12 09:58:37 -0700
committerGitHub <noreply@github.com>2020-05-12 09:58:37 -0700
commit5930ada5bee7061d8063f2638cdb1cb25dce5292 (patch)
treeb2386f4907ef5f3cd6b79bb9f07d1cc8f252968a /src/js/binaryen.js-post.js
parenta5a355747146d7725db7253478a028286dece715 (diff)
downloadbinaryen-5930ada5bee7061d8063f2638cdb1cb25dce5292.tar.gz
binaryen-5930ada5bee7061d8063f2638cdb1cb25dce5292.tar.bz2
binaryen-5930ada5bee7061d8063f2638cdb1cb25dce5292.zip
Implement pseudo-min/max SIMD instructions (#2847)
As specified in https://github.com/WebAssembly/simd/pull/122.
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r--src/js/binaryen.js-post.js16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 1706d2b97..993f8c129 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -421,6 +421,8 @@ function initializeConstants() {
'DivVecF32x4',
'MinVecF32x4',
'MaxVecF32x4',
+ 'PMinVecF32x4',
+ 'PMaxVecF32x4',
'AbsVecF64x2',
'NegVecF64x2',
'SqrtVecF64x2',
@@ -432,6 +434,8 @@ function initializeConstants() {
'DivVecF64x2',
'MinVecF64x2',
'MaxVecF64x2',
+ 'PMinVecF64x2',
+ 'PMaxVecF64x2',
'TruncSatSVecF32x4ToVecI32x4',
'TruncSatUVecF32x4ToVecI32x4',
'TruncSatSVecF64x2ToVecI64x2',
@@ -1904,6 +1908,12 @@ function wrapModule(module, self) {
'max': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MaxVecF32x4'], left, right);
},
+ 'pmin': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['PMinVecF32x4'], left, right);
+ },
+ 'pmax': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['PMaxVecF32x4'], left, right);
+ },
'convert_i32x4_s': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertSVecI32x4ToVecF32x4'], value);
},
@@ -1973,6 +1983,12 @@ function wrapModule(module, self) {
'max': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MaxVecF64x2'], left, right);
},
+ 'pmin': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['PMinVecF64x2'], left, right);
+ },
+ 'pmax': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['PMaxVecF64x2'], left, right);
+ },
'convert_i64x2_s': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertSVecI64x2ToVecF64x2'], value);
},