From 8bc2f8024dd1ed1a74b538815229bd4106d55535 Mon Sep 17 00:00:00 2001 From: Daniel Wirtz Date: Thu, 8 Apr 2021 09:03:10 +0200 Subject: Add new SIMD conversion instructions to C/JS API (#3781) Adds C/JS APIs for the SIMD instructions * ConvertLowSVecI32x4ToVecF64x2 * ConvertLowUVecI32x4ToVecF64x2 * TruncSatZeroSVecF64x2ToVecI32x4 * TruncSatZeroUVecF64x2ToVecI32x4 * DemoteZeroVecF64x2ToVecF32x4 * PromoteLowVecF32x4ToVecF64x2 --- src/js/binaryen.js-post.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/js/binaryen.js-post.js') diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 15e342eb8..7d13395a1 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -493,6 +493,12 @@ function initializeConstants() { 'ExtendHighSVecI32x4ToVecI64x2', 'ExtendLowUVecI32x4ToVecI64x2', 'ExtendHighUVecI32x4ToVecI64x2', + 'ConvertLowSVecI32x4ToVecF64x2', + 'ConvertLowUVecI32x4ToVecF64x2', + 'TruncSatZeroSVecF64x2ToVecI32x4', + 'TruncSatZeroUVecF64x2ToVecI32x4', + 'DemoteZeroVecF64x2ToVecF32x4', + 'PromoteLowVecF32x4ToVecF64x2', 'SwizzleVec8x16', 'RefIsNull', 'RefIsFunc', @@ -1856,6 +1862,12 @@ function wrapModule(module, self = {}) { 'extend_high_i16x8_u'(value) { return Module['_BinaryenUnary'](module, Module['ExtendHighUVecI16x8ToVecI32x4'], value); }, + 'trunc_sat_f64x2_s_zero'(value) { + return Module['_BinaryenUnary'](module, Module['TruncSatZeroSVecF64x2ToVecI32x4'], value); + }, + 'trunc_sat_f64x2_u_zero'(value) { + return Module['_BinaryenUnary'](module, Module['TruncSatZeroUVecF64x2ToVecI32x4'], value); + }, }; self['i64x2'] = { @@ -2009,6 +2021,9 @@ function wrapModule(module, self = {}) { 'convert_i32x4_u'(value) { return Module['_BinaryenUnary'](module, Module['ConvertUVecI32x4ToVecF32x4'], value); }, + 'demote_f64x2_zero'(value) { + return Module['_BinaryenUnary'](module, Module['DemoteZeroVecF64x2ToVecF32x4'], value); + }, }; self['f64x2'] = { @@ -2084,6 +2099,15 @@ function wrapModule(module, self = {}) { 'nearest'(value) { return Module['_BinaryenUnary'](module, Module['NearestVecF64x2'], value); }, + 'convert_low_i32x4_s'(value) { + return Module['_BinaryenUnary'](module, Module['ConvertLowSVecI32x4ToVecF64x2'], value); + }, + 'convert_low_i32x4_u'(value) { + return Module['_BinaryenUnary'](module, Module['ConvertLowUVecI32x4ToVecF64x2'], value); + }, + 'promote_low_f32x4'(value) { + return Module['_BinaryenUnary'](module, Module['PromoteLowVecF32x4ToVecF64x2'], value); + }, }; self['funcref'] = { -- cgit v1.2.3