summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorThomas Lively <7121787+tlively@users.noreply.github.com>2019-09-14 16:25:43 -0700
committerGitHub <noreply@github.com>2019-09-14 16:25:43 -0700
commit844998f1b4f4b0f439875e6b36bc6b821be87939 (patch)
tree57852cdb14f793159810b633037dd6d02f772f88 /src/js/binaryen.js-post.js
parent167acc73c36fefe9da501c0a48a5de1502f4133b (diff)
downloadbinaryen-844998f1b4f4b0f439875e6b36bc6b821be87939.tar.gz
binaryen-844998f1b4f4b0f439875e6b36bc6b821be87939.tar.bz2
binaryen-844998f1b4f4b0f439875e6b36bc6b821be87939.zip
SIMD narrowing and widening operations (#2341)
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r--src/js/binaryen.js-post.js64
1 files changed, 56 insertions, 8 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 328b0a27d..3cf3e1197 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -394,6 +394,18 @@ Module['ConvertSVecI32x4ToVecF32x4'] = Module['_BinaryenConvertSVecI32x4ToVecF32
Module['ConvertUVecI32x4ToVecF32x4'] = Module['_BinaryenConvertUVecI32x4ToVecF32x4']();
Module['ConvertSVecI64x2ToVecF64x2'] = Module['_BinaryenConvertSVecI64x2ToVecF64x2']();
Module['ConvertUVecI64x2ToVecF64x2'] = Module['_BinaryenConvertUVecI64x2ToVecF64x2']();
+Module['NarrowSVecI16x8ToVecI8x16'] = Module['_BinaryenNarrowSVecI16x8ToVecI8x16']();
+Module['NarrowUVecI16x8ToVecI8x16'] = Module['_BinaryenNarrowUVecI16x8ToVecI8x16']();
+Module['NarrowSVecI32x4ToVecI16x8'] = Module['_BinaryenNarrowSVecI32x4ToVecI16x8']();
+Module['NarrowUVecI32x4ToVecI16x8'] = Module['_BinaryenNarrowUVecI32x4ToVecI16x8']();
+Module['WidenLowSVecI8x16ToVecI16x8'] = Module['_BinaryenWidenLowSVecI8x16ToVecI16x8']();
+Module['WidenHighSVecI8x16ToVecI16x8'] = Module['_BinaryenWidenHighSVecI8x16ToVecI16x8']();
+Module['WidenLowUVecI8x16ToVecI16x8'] = Module['_BinaryenWidenLowUVecI8x16ToVecI16x8']();
+Module['WidenHighUVecI8x16ToVecI16x8'] = Module['_BinaryenWidenHighUVecI8x16ToVecI16x8']();
+Module['WidenLowSVecI16x8ToVecI32x4'] = Module['_BinaryenWidenLowSVecI16x8ToVecI32x4']();
+Module['WidenHighSVecI16x8ToVecI32x4'] = Module['_BinaryenWidenHighSVecI16x8ToVecI32x4']();
+Module['WidenLowUVecI16x8ToVecI32x4'] = Module['_BinaryenWidenLowUVecI16x8ToVecI32x4']();
+Module['WidenHighUVecI16x8ToVecI32x4'] = Module['_BinaryenWidenHighUVecI16x8ToVecI32x4']();
// The size of a single literal in memory as used in Const creation,
// which is a little different: we don't want users to need to make
@@ -1425,6 +1437,12 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI8x16'], left, right);
},
+ 'narrow_i16x8_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['NarrowSVecI16x8ToVecI8x16'], left, right);
+ },
+ 'narrow_i16x8_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['NarrowUVecI16x8ToVecI8x16'], left, right);
+ },
};
self['i16x8'] = {
@@ -1509,6 +1527,24 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI16x8'], left, right);
},
+ 'narrow_i32x4_s': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['NarrowSVecI32x4ToVecI16x8'], left, right);
+ },
+ 'narrow_i32x4_u': function(left, right) {
+ return Module['_BinaryenBinary'](module, Module['NarrowUVecI32x4ToVecI16x8'], left, right);
+ },
+ 'widen_low_i8x16_s': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenLowSVecI8x16ToVecI16x8'], value);
+ },
+ 'widen_high_i8x16_s': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenHighSVecI8x16ToVecI16x8'], value);
+ },
+ 'widen_low_i8x16_u': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenLowUVecI8x16ToVecI16x8'], value);
+ },
+ 'widen_high_i8x16_u': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenHighUVecI8x16ToVecI16x8'], value);
+ },
};
self['i32x4'] = {
@@ -1578,12 +1614,24 @@ function wrapModule(module, self) {
'mul': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MulVecI32x4'], left, right);
},
- 'trunc_s/f32x4:sat': function(value) {
+ 'trunc_sat_f32x4_s': function(value) {
return Module['_BinaryenUnary'](module, Module['TruncSatSVecF32x4ToVecI32x4'], value);
},
- 'trunc_u/f32x4:sat': function(value) {
+ 'trunc_sat_f32x4_u': function(value) {
return Module['_BinaryenUnary'](module, Module['TruncSatUVecF32x4ToVecI32x4'], value);
},
+ 'widen_low_i16x8_s': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenLowSVecI16x8ToVecI32x4'], value);
+ },
+ 'widen_high_i16x8_s': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenHighSVecI16x8ToVecI32x4'], value);
+ },
+ 'widen_low_i16x8_u': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenLowUVecI16x8ToVecI32x4'], value);
+ },
+ 'widen_high_i16x8_u': function(value) {
+ return Module['_BinaryenUnary'](module, Module['WidenHighUVecI16x8ToVecI32x4'], value);
+ },
};
self['i64x2'] = {
@@ -1620,10 +1668,10 @@ function wrapModule(module, self) {
'sub': function(left, right) {
return Module['_BinaryenBinary'](module, Module['SubVecI64x2'], left, right);
},
- 'trunc_s/f64x2:sat': function(value) {
+ 'trunc_sat_f64x2_s': function(value) {
return Module['_BinaryenUnary'](module, Module['TruncSatSVecF64x2ToVecI64x2'], value);
},
- 'trunc_u/f64x2:sat': function(value) {
+ 'trunc_sat_f64x2_u': function(value) {
return Module['_BinaryenUnary'](module, Module['TruncSatUVecF64x2ToVecI64x2'], value);
},
};
@@ -1689,10 +1737,10 @@ function wrapModule(module, self) {
'max': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MaxVecF32x4'], left, right);
},
- 'convert_s/i32x4': function(value) {
+ 'convert_i32x4_s': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertSVecI32x4ToVecF32x4'], value);
},
- 'convert_u/i32x4': function(value) {
+ 'convert_i32x4_u': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertUVecI32x4ToVecF32x4'], value);
},
};
@@ -1758,10 +1806,10 @@ function wrapModule(module, self) {
'max': function(left, right) {
return Module['_BinaryenBinary'](module, Module['MaxVecF64x2'], left, right);
},
- 'convert_s/i64x2': function(value) {
+ 'convert_i64x2_s': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertSVecI64x2ToVecF64x2'], value);
},
- 'convert_u/i64x2': function(value) {
+ 'convert_i64x2_u': function(value) {
return Module['_BinaryenUnary'](module, Module['ConvertUVecI64x2ToVecF64x2'], value);
},
};