@@ -298,7 +298,7 @@ export enum UnaryOp {
298298 /** i8x16.bitmask */
299299 BitmaskI8x16 = 71 /* _BinaryenBitmaskVecI8x16 */ ,
300300 /** i8x16.popcnt */
301- PopcntI8x16 = 72 /* _BinaryenPopcntVecI8x16 */ , // UNIMP
301+ PopcntI8x16 = 72 /* _BinaryenPopcntVecI8x16 */ ,
302302 /** i16x8.abs */
303303 AbsI16x8 = 73 /* _BinaryenAbsVecI16x8 */ ,
304304 /** i16x8.neg */
@@ -322,7 +322,7 @@ export enum UnaryOp {
322322 /** i64x2.all_true */
323323 AllTrueI64x2 = 83 /* _BinaryenAllTrueVecI64x2 */ ,
324324 /** i64x2.bitmask */
325- BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */ , // UNIMP
325+ BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */ ,
326326 /** f32x4.abs */
327327 AbsF32x4 = 85 /* _BinaryenAbsVecF32x4 */ ,
328328 /** f32x4.neg */
@@ -352,13 +352,13 @@ export enum UnaryOp {
352352 /** f64x2.nearest */
353353 NearestF64x2 = 98 /* _BinaryenNearestVecF64x2 */ ,
354354 /** i16x8.extadd_pairwise_i8x16_s */
355- ExtaddPairwiseI8x16ToI16x8 = 99 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */ , // UNIMP
355+ ExtaddPairwiseI8x16ToI16x8 = 99 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */ ,
356356 /** i16x8.extadd_pairwise.i8x16_u */
357- ExtaddPairwiseU8x16ToU16x8 = 100 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */ , // UNIMP
357+ ExtaddPairwiseU8x16ToU16x8 = 100 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */ ,
358358 /** i32x4.extadd_pairwise.i16x8_s */
359- ExtaddPairwiseI16x8ToI32x4 = 101 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */ , // UNIMP
359+ ExtaddPairwiseI16x8ToI32x4 = 101 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */ ,
360360 /** i32x4.extadd_pairwise.i64x8_u */
361- ExtaddPairwiseU16x8ToU32x4 = 102 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */ , // UNIMP
361+ ExtaddPairwiseU16x8ToU32x4 = 102 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */ ,
362362 /** i32x4.trunc_sat_f32x4_s */
363363 TruncSatF32x4ToI32x4 = 103 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */ ,
364364 /** i32x4.trunc_sat_f32x4_u */
@@ -392,17 +392,17 @@ export enum UnaryOp {
392392 /** i64x2.extend_high_i32x4_u */
393393 ExtendHighU32x4ToU64x2 = 118 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */ ,
394394 /** f32x4.convert_i32x4_s */
395- ConvertLowI32x4ToF64x2 = 119 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */ , // UNIMP
395+ ConvertLowI32x4ToF64x2 = 119 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */ ,
396396 /** f32x4.convert_i32x4_u */
397- ConvertLowU32x4ToF64x2 = 120 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */ , // UNIMP
397+ ConvertLowU32x4ToF64x2 = 120 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */ ,
398398 /** i32x4.trunc_sat_f64x2_s_zero */
399- TruncSatF64x2ToI32x4Zero = 121 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */ , // UNIMP
399+ TruncSatF64x2ToI32x4Zero = 121 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */ ,
400400 /** i32x4.trunc_sat_f64x2_u_zero */
401- TruncSatF64x2ToU32x4Zero = 122 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */ , // UNIMP
401+ TruncSatF64x2ToU32x4Zero = 122 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */ ,
402402 /** f32x4.demote_f64x2_zero */
403- DemoteZeroF64x2ToF32x4 = 123 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */ , // UNIMP
403+ DemoteZeroF64x2ToF32x4 = 123 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */ ,
404404 /** f64x2.promote_low_f32x4 */
405- PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */ , // UNIMP
405+ PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */ ,
406406
407407 _last = PromoteLowF32x4ToF64x2 ,
408408
@@ -725,15 +725,15 @@ export enum BinaryOp {
725725 /** i16x8.avgr_u */
726726 AvgrU16x8 = 150 /* _BinaryenAvgrUVecI16x8 */ ,
727727 /** i16x8.q15mulr_sat_s */
728- Q15mulrSatI16x8 = 151 /* _BinaryenQ15MulrSatSVecI16x8 */ , // UNIMP
728+ Q15mulrSatI16x8 = 151 /* _BinaryenQ15MulrSatSVecI16x8 */ ,
729729 /** i16x8.extmul_low_i8x16_s */
730- ExtmulLowI16x8 = 152 /* _BinaryenExtMulLowSVecI16x8 */ , // UNIMP
730+ ExtmulLowI16x8 = 152 /* _BinaryenExtMulLowSVecI16x8 */ ,
731731 /** i16x8.extmul_high_i8x16_s */
732- ExtmulHighI16x8 = 153 /* _BinaryenExtMulHighSVecI16x8 */ , // UNIMP
732+ ExtmulHighI16x8 = 153 /* _BinaryenExtMulHighSVecI16x8 */ ,
733733 /** i16x8.extmul_low_i8x16_u */
734- ExtmulLowU16x8 = 154 /* _BinaryenExtMulLowUVecI16x8 */ , // UNIMP
734+ ExtmulLowU16x8 = 154 /* _BinaryenExtMulLowUVecI16x8 */ ,
735735 /** i16x8.extmul_high_i8x16_u */
736- ExtmulHighU16x8 = 155 /* _BinaryenExtMulHighUVecI16x8 */ , // UNIMP
736+ ExtmulHighU16x8 = 155 /* _BinaryenExtMulHighUVecI16x8 */ ,
737737 /** i32x4.add */
738738 AddI32x4 = 156 /* _BinaryenAddVecI32x4 */ ,
739739 /** i32x4.sub */
@@ -751,27 +751,27 @@ export enum BinaryOp {
751751 /** i32x4.dot_i16x8_s */
752752 DotI16x8 = 163 /* _BinaryenDotSVecI16x8ToVecI32x4 */ ,
753753 /** i32x4.extmul_low_i16x8_s */
754- ExtmulLowI32x4 = 164 /* _BinaryenExtMulLowSVecI32x4 */ , // UNIMP
754+ ExtmulLowI32x4 = 164 /* _BinaryenExtMulLowSVecI32x4 */ ,
755755 /** i32x4.extmul_high_i16x8_s */
756- ExtmulHighI32x4 = 165 /* _BinaryenExtMulHighSVecI32x4 */ , // UNIMP
756+ ExtmulHighI32x4 = 165 /* _BinaryenExtMulHighSVecI32x4 */ ,
757757 /** i32x4.extmul_low_i16x8_u */
758- ExtmulLowU32x4 = 166 /* _BinaryenExtMulLowUVecI32x4 */ , // UNIMP
758+ ExtmulLowU32x4 = 166 /* _BinaryenExtMulLowUVecI32x4 */ ,
759759 /** i32x4.extmul_high_i16x8_u */
760- ExtmulHighU32x4 = 167 /* _BinaryenExtMulHighUVecI32x4 */ , // UNIMP
760+ ExtmulHighU32x4 = 167 /* _BinaryenExtMulHighUVecI32x4 */ ,
761761 /** i64x2.add */
762762 AddI64x2 = 168 /* _BinaryenAddVecI64x2 */ ,
763763 /** i64x2.sub */
764764 SubI64x2 = 169 /* _BinaryenSubVecI64x2 */ ,
765765 /** i64x2.mul */
766766 MulI64x2 = 170 /* _BinaryenMulVecI64x2 */ ,
767767 /** i64x2.extmul_low_i32x4_s */
768- ExtmulLowI64x2 = 171 /* _BinaryenExtMulLowSVecI64x2 */ , // UNIMP
768+ ExtmulLowI64x2 = 171 /* _BinaryenExtMulLowSVecI64x2 */ ,
769769 /** i64x2.extmul_high_i32x4_s */
770- ExtmulHighI64x2 = 172 /* _BinaryenExtMulHighSVecI64x2 */ , // UNIMP
770+ ExtmulHighI64x2 = 172 /* _BinaryenExtMulHighSVecI64x2 */ ,
771771 /** i64x2.extmul_low_i32x4_u */
772- ExtmulLowU64x2 = 173 /* _BinaryenExtMulLowUVecI64x2 */ , // UNIMP
772+ ExtmulLowU64x2 = 173 /* _BinaryenExtMulLowUVecI64x2 */ ,
773773 /** i64x2.extmul_high_i32x4_u */
774- ExtmulHighU64x2 = 174 /* _BinaryenExtMulHighUVecI64x2 */ , // UNIMP
774+ ExtmulHighU64x2 = 174 /* _BinaryenExtMulHighUVecI64x2 */ ,
775775 /** f32x4.add */
776776 AddF32x4 = 175 /* _BinaryenAddVecF32x4 */ ,
777777 /** f32x4.sub */
@@ -969,28 +969,28 @@ export enum SIMDLoadOp {
969969 /** v128.load32x2_u */
970970 Load32x2U = 9 /* _BinaryenLoad32x2UVec128 */ ,
971971 /** v128.load32_zero */
972- Load32Zero = 10 /* _BinaryenLoad32ZeroVec128 */ , // UNIMP
972+ Load32Zero = 10 /* _BinaryenLoad32ZeroVec128 */ ,
973973 /** v128.load64_zero */
974- Load64Zero = 11 /* _BinaryenLoad64ZeroVec128 */ , // UNIMP
974+ Load64Zero = 11 /* _BinaryenLoad64ZeroVec128 */ ,
975975}
976976
977977export enum SIMDLoadStoreLaneOp {
978978 /** v128.load8_lane */
979- Load8Lane = 0 /* _BinaryenLoad8LaneVec128 */ , // UNIMP
979+ Load8Lane = 0 /* _BinaryenLoad8LaneVec128 */ ,
980980 /** v128.load16_lane */
981- Load16Lane = 1 /* _BinaryenLoad16LaneVec128 */ , // UNIMP
981+ Load16Lane = 1 /* _BinaryenLoad16LaneVec128 */ ,
982982 /** v128.load32_lane */
983- Load32Lane = 2 /* _BinaryenLoad32LaneVec128 */ , // UNIMP
983+ Load32Lane = 2 /* _BinaryenLoad32LaneVec128 */ ,
984984 /** v128.load64_lane */
985- Load64Lane = 3 /* _BinaryenLoad64LaneVec128 */ , // UNIMP
985+ Load64Lane = 3 /* _BinaryenLoad64LaneVec128 */ ,
986986 /** v128.store8_lane */
987- Store8Lane = 4 /* _BinaryenStore8LaneVec128 */ , // UNIMP
987+ Store8Lane = 4 /* _BinaryenStore8LaneVec128 */ ,
988988 /** v128.store16_lane */
989- Store16Lane = 5 /* _BinaryenStore16LaneVec128 */ , // UNIMP
989+ Store16Lane = 5 /* _BinaryenStore16LaneVec128 */ ,
990990 /** v128.store32_lane */
991- Store32Lane = 6 /* _BinaryenStore32LaneVec128 */ , // UNIMP
991+ Store32Lane = 6 /* _BinaryenStore32LaneVec128 */ ,
992992 /** v128.store64_lane */
993- Store64Lane = 7 /* _BinaryenStore64LaneVec128 */ , // UNIMP
993+ Store64Lane = 7 /* _BinaryenStore64LaneVec128 */ ,
994994}
995995
996996export enum SIMDTernaryOp {
@@ -1666,6 +1666,17 @@ export class Module {
16661666 return binaryen . _BinaryenSIMDLoad ( this . ref , op , offset , align , ptr ) ;
16671667 }
16681668
1669+ simd_loadstorelane (
1670+ op : SIMDLoadStoreLaneOp ,
1671+ ptr : ExpressionRef ,
1672+ offset : u32 ,
1673+ align : u32 ,
1674+ index : u8 ,
1675+ vec : ExpressionRef
1676+ ) : ExpressionRef {
1677+ return binaryen . _BinaryenSIMDLoadStoreLane ( this . ref , op , offset , align , index , ptr , vec ) ;
1678+ }
1679+
16691680 // reference types / gc
16701681
16711682 ref_is (
0 commit comments