Skip to content

Commit eff0244

Browse files
authored
Add SIMD narrowing and widening instructions (AssemblyScript#852)
1 parent f9e6ce7 commit eff0244

File tree

11 files changed

+644
-456
lines changed

11 files changed

+644
-456
lines changed

cli/asc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ var assemblyscript, isDev = false;
4646
assemblyscript = eval("require('./assemblyscript')");
4747
} catch (e) {
4848
// combine both errors that lead us here
49-
e.stack = e_ts.stack + "\n---\n" + e.stack;
49+
e.message = e_ts.stack + "\n---\n" + e.stack;
5050
throw e;
5151
}
5252
}

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
},
1313
"dependencies": {
1414
"@protobufjs/utf8": "^1.1.0",
15-
"binaryen": "89.0.0-nightly.20190914",
15+
"binaryen": "89.0.0-nightly.20190918",
1616
"glob": "^7.1.4",
1717
"long": "^4.0.0",
1818
"opencollective-postinstall": "^2.0.0",

src/builtins.ts

+249-192
Large diffs are not rendered by default.

src/compiler.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -3643,8 +3643,8 @@ export class Compiler extends DiagnosticEmitter {
36433643
break;
36443644
}
36453645
case TypeKind.V128: {
3646-
expr = module.unary(UnaryOp.AllTrueVecI8x16,
3647-
module.binary(BinaryOp.EqVecI8x16, leftExpr, rightExpr)
3646+
expr = module.unary(UnaryOp.AllTrueI8x16,
3647+
module.binary(BinaryOp.EqI8x16, leftExpr, rightExpr)
36483648
);
36493649
break;
36503650
}
@@ -3740,8 +3740,8 @@ export class Compiler extends DiagnosticEmitter {
37403740
break;
37413741
}
37423742
case TypeKind.V128: {
3743-
expr = module.unary(UnaryOp.AnyTrueVecI8x16,
3744-
module.binary(BinaryOp.NeVecI8x16, leftExpr, rightExpr)
3743+
expr = module.unary(UnaryOp.AnyTrueI8x16,
3744+
module.binary(BinaryOp.NeI8x16, leftExpr, rightExpr)
37453745
);
37463746
break;
37473747
}

src/glue/binaryen.d.ts

+12
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,18 @@ declare function _BinaryenConvertSVecI32x4ToVecF32x4(): BinaryenSIMDOp;
396396
declare function _BinaryenConvertUVecI32x4ToVecF32x4(): BinaryenSIMDOp;
397397
declare function _BinaryenConvertSVecI64x2ToVecF64x2(): BinaryenSIMDOp;
398398
declare function _BinaryenConvertUVecI64x2ToVecF64x2(): BinaryenSIMDOp;
399+
declare function _BinaryenNarrowSVecI16x8ToVecI8x16(): BinaryenSIMDOp;
400+
declare function _BinaryenNarrowUVecI16x8ToVecI8x16(): BinaryenSIMDOp;
401+
declare function _BinaryenNarrowSVecI32x4ToVecI16x8(): BinaryenSIMDOp;
402+
declare function _BinaryenNarrowUVecI32x4ToVecI16x8(): BinaryenSIMDOp;
403+
declare function _BinaryenWidenLowSVecI8x16ToVecI16x8(): BinaryenSIMDOp;
404+
declare function _BinaryenWidenHighSVecI8x16ToVecI16x8(): BinaryenSIMDOp;
405+
declare function _BinaryenWidenLowUVecI8x16ToVecI16x8(): BinaryenSIMDOp;
406+
declare function _BinaryenWidenHighUVecI8x16ToVecI16x8(): BinaryenSIMDOp;
407+
declare function _BinaryenWidenLowSVecI16x8ToVecI32x4(): BinaryenSIMDOp;
408+
declare function _BinaryenWidenHighSVecI16x8ToVecI32x4(): BinaryenSIMDOp;
409+
declare function _BinaryenWidenLowUVecI16x8ToVecI32x4(): BinaryenSIMDOp;
410+
declare function _BinaryenWidenHighUVecI16x8ToVecI32x4(): BinaryenSIMDOp;
399411

400412
declare type BinaryenExpressionRef = usize;
401413

src/module.ts

+147-135
Original file line numberDiff line numberDiff line change
@@ -158,39 +158,47 @@ export enum UnaryOp {
158158
TruncF64ToU64Sat = _BinaryenTruncSatUFloat64ToInt64(),
159159

160160
// see: https://github.com/WebAssembly/simd
161-
SplatVecI8x16 = _BinaryenSplatVecI8x16(),
162-
SplatVecI16x8 = _BinaryenSplatVecI16x8(),
163-
SplatVecI32x4 = _BinaryenSplatVecI32x4(),
164-
SplatVecI64x2 = _BinaryenSplatVecI64x2(),
165-
SplatVecF32x4 = _BinaryenSplatVecF32x4(),
166-
SplatVecF64x2 = _BinaryenSplatVecF64x2(),
167-
NotVec128 = _BinaryenNotVec128(),
168-
NegVecI8x16 = _BinaryenNegVecI8x16(),
169-
AnyTrueVecI8x16 = _BinaryenAnyTrueVecI8x16(),
170-
AllTrueVecI8x16 = _BinaryenAllTrueVecI8x16(),
171-
NegVecI16x8 = _BinaryenNegVecI16x8(),
172-
AnyTrueVecI16x8 = _BinaryenAnyTrueVecI16x8(),
173-
AllTrueVecI16x8 = _BinaryenAllTrueVecI16x8(),
174-
NegVecI32x4 = _BinaryenNegVecI32x4(),
175-
AnyTrueVecI32x4 = _BinaryenAnyTrueVecI32x4(),
176-
AllTrueVecI32x4 = _BinaryenAllTrueVecI32x4(),
177-
NegVecI64x2 = _BinaryenNegVecI64x2(),
178-
AnyTrueVecI64x2 = _BinaryenAnyTrueVecI64x2(),
179-
AllTrueVecI64x2 = _BinaryenAllTrueVecI64x2(),
180-
AbsVecF32x4 = _BinaryenAbsVecF32x4(),
181-
NegVecF32x4 = _BinaryenNegVecF32x4(),
182-
SqrtVecF32x4 = _BinaryenSqrtVecF32x4(),
183-
AbsVecF64x2 = _BinaryenAbsVecF64x2(),
184-
NegVecF64x2 = _BinaryenNegVecF64x2(),
185-
SqrtVecF64x2 = _BinaryenSqrtVecF64x2(),
186-
TruncSatSVecF32x4ToVecI32x4 = _BinaryenTruncSatSVecF32x4ToVecI32x4(),
187-
TruncSatUVecF32x4ToVecI32x4 = _BinaryenTruncSatUVecF32x4ToVecI32x4(),
188-
TruncSatSVecF64x2ToVecI64x2 = _BinaryenTruncSatSVecF64x2ToVecI64x2(),
189-
TruncSatUVecF64x2ToVecI64x2 = _BinaryenTruncSatUVecF64x2ToVecI64x2(),
190-
ConvertSVecI32x4ToVecF32x4 = _BinaryenConvertSVecI32x4ToVecF32x4(),
191-
ConvertUVecI32x4ToVecF32x4 = _BinaryenConvertUVecI32x4ToVecF32x4(),
192-
ConvertSVecI64x2ToVecF64x2 = _BinaryenConvertSVecI64x2ToVecF64x2(),
193-
ConvertUVecI64x2ToVecF64x2 = _BinaryenConvertUVecI64x2ToVecF64x2()
161+
SplatI8x16 = _BinaryenSplatVecI8x16(),
162+
SplatI16x8 = _BinaryenSplatVecI16x8(),
163+
SplatI32x4 = _BinaryenSplatVecI32x4(),
164+
SplatI64x2 = _BinaryenSplatVecI64x2(),
165+
SplatF32x4 = _BinaryenSplatVecF32x4(),
166+
SplatF64x2 = _BinaryenSplatVecF64x2(),
167+
NotV128 = _BinaryenNotVec128(),
168+
NegI8x16 = _BinaryenNegVecI8x16(),
169+
AnyTrueI8x16 = _BinaryenAnyTrueVecI8x16(),
170+
AllTrueI8x16 = _BinaryenAllTrueVecI8x16(),
171+
NegI16x8 = _BinaryenNegVecI16x8(),
172+
AnyTrueI16x8 = _BinaryenAnyTrueVecI16x8(),
173+
AllTrueI16x8 = _BinaryenAllTrueVecI16x8(),
174+
NegI32x4 = _BinaryenNegVecI32x4(),
175+
AnyTrueI32x4 = _BinaryenAnyTrueVecI32x4(),
176+
AllTrueI32x4 = _BinaryenAllTrueVecI32x4(),
177+
NegI64x2 = _BinaryenNegVecI64x2(),
178+
AnyTrueI64x2 = _BinaryenAnyTrueVecI64x2(),
179+
AllTrueI64x2 = _BinaryenAllTrueVecI64x2(),
180+
AbsF32x4 = _BinaryenAbsVecF32x4(),
181+
NegF32x4 = _BinaryenNegVecF32x4(),
182+
SqrtF32x4 = _BinaryenSqrtVecF32x4(),
183+
AbsF64x2 = _BinaryenAbsVecF64x2(),
184+
NegF64x2 = _BinaryenNegVecF64x2(),
185+
SqrtF64x2 = _BinaryenSqrtVecF64x2(),
186+
TruncSatF32x4ToI32x4 = _BinaryenTruncSatSVecF32x4ToVecI32x4(),
187+
TruncSatF32x4ToU32x4 = _BinaryenTruncSatUVecF32x4ToVecI32x4(),
188+
TruncSatF64x2ToI64x2 = _BinaryenTruncSatSVecF64x2ToVecI64x2(),
189+
TruncSatF64x2ToU64x2 = _BinaryenTruncSatUVecF64x2ToVecI64x2(),
190+
ConvertI32x4ToF32x4 = _BinaryenConvertSVecI32x4ToVecF32x4(),
191+
ConvertU32x4ToF32x4 = _BinaryenConvertUVecI32x4ToVecF32x4(),
192+
ConvertI64x2ToF64x2 = _BinaryenConvertSVecI64x2ToVecF64x2(),
193+
ConvertU64x2ToF64x2 = _BinaryenConvertUVecI64x2ToVecF64x2(),
194+
WidenLowI8x16ToI16x8 = _BinaryenWidenLowSVecI8x16ToVecI16x8(),
195+
WidenLowU8x16ToU16x8 = _BinaryenWidenLowUVecI8x16ToVecI16x8(),
196+
WidenHighI8x16ToI16x8 = _BinaryenWidenHighSVecI8x16ToVecI16x8(),
197+
WidenHighU8x16ToU16x8 = _BinaryenWidenHighUVecI8x16ToVecI16x8(),
198+
WidenLowI16x8ToI32x4 = _BinaryenWidenLowSVecI16x8ToVecI32x4(),
199+
WidenLowU16x8ToU32x4 = _BinaryenWidenLowUVecI16x8ToVecI32x4(),
200+
WidenHighI16x8ToI32x4 = _BinaryenWidenHighSVecI16x8ToVecI32x4(),
201+
WidenHighU16x8ToU32x4 = _BinaryenWidenHighUVecI16x8ToVecI32x4()
194202
}
195203

196204
export enum BinaryOp {
@@ -272,82 +280,86 @@ export enum BinaryOp {
272280
GeF64 = _BinaryenGeFloat64(),
273281

274282
// see: https://github.com/WebAssembly/simd
275-
EqVecI8x16 = _BinaryenEqVecI8x16(),
276-
NeVecI8x16 = _BinaryenNeVecI8x16(),
277-
LtSVecI8x16 = _BinaryenLtSVecI8x16(),
278-
LtUVecI8x16 = _BinaryenLtUVecI8x16(),
279-
LeSVecI8x16 = _BinaryenLeSVecI8x16(),
280-
LeUVecI8x16 = _BinaryenLeUVecI8x16(),
281-
GtSVecI8x16 = _BinaryenGtSVecI8x16(),
282-
GtUVecI8x16 = _BinaryenGtUVecI8x16(),
283-
GeSVecI8x16 = _BinaryenGeSVecI8x16(),
284-
GeUVecI8x16 = _BinaryenGeUVecI8x16(),
285-
EqVecI16x8 = _BinaryenEqVecI16x8(),
286-
NeVecI16x8 = _BinaryenNeVecI16x8(),
287-
LtSVecI16x8 = _BinaryenLtSVecI16x8(),
288-
LtUVecI16x8 = _BinaryenLtUVecI16x8(),
289-
LeSVecI16x8 = _BinaryenLeSVecI16x8(),
290-
LeUVecI16x8 = _BinaryenLeUVecI16x8(),
291-
GtSVecI16x8 = _BinaryenGtSVecI16x8(),
292-
GtUVecI16x8 = _BinaryenGtUVecI16x8(),
293-
GeSVecI16x8 = _BinaryenGeSVecI16x8(),
294-
GeUVecI16x8 = _BinaryenGeUVecI16x8(),
295-
EqVecI32x4 = _BinaryenEqVecI32x4(),
296-
NeVecI32x4 = _BinaryenNeVecI32x4(),
297-
LtSVecI32x4 = _BinaryenLtSVecI32x4(),
298-
LtUVecI32x4 = _BinaryenLtUVecI32x4(),
299-
LeSVecI32x4 = _BinaryenLeSVecI32x4(),
300-
LeUVecI32x4 = _BinaryenLeUVecI32x4(),
301-
GtSVecI32x4 = _BinaryenGtSVecI32x4(),
302-
GtUVecI32x4 = _BinaryenGtUVecI32x4(),
303-
GeSVecI32x4 = _BinaryenGeSVecI32x4(),
304-
GeUVecI32x4 = _BinaryenGeUVecI32x4(),
305-
EqVecF32x4 = _BinaryenEqVecF32x4(),
306-
NeVecF32x4 = _BinaryenNeVecF32x4(),
307-
LtVecF32x4 = _BinaryenLtVecF32x4(),
308-
LeVecF32x4 = _BinaryenLeVecF32x4(),
309-
GtVecF32x4 = _BinaryenGtVecF32x4(),
310-
GeVecF32x4 = _BinaryenGeVecF32x4(),
311-
EqVecF64x2 = _BinaryenEqVecF64x2(),
312-
NeVecF64x2 = _BinaryenNeVecF64x2(),
313-
LtVecF64x2 = _BinaryenLtVecF64x2(),
314-
LeVecF64x2 = _BinaryenLeVecF64x2(),
315-
GtVecF64x2 = _BinaryenGtVecF64x2(),
316-
GeVecF64x2 = _BinaryenGeVecF64x2(),
317-
AndVec128 = _BinaryenAndVec128(),
318-
OrVec128 = _BinaryenOrVec128(),
319-
XorVec128 = _BinaryenXorVec128(),
320-
AddVecI8x16 = _BinaryenAddVecI8x16(),
321-
AddSatSVecI8x16 = _BinaryenAddSatSVecI8x16(),
322-
AddSatUVecI8x16 = _BinaryenAddSatUVecI8x16(),
323-
SubVecI8x16 = _BinaryenSubVecI8x16(),
324-
SubSatSVecI8x16 = _BinaryenSubSatSVecI8x16(),
325-
SubSatUVecI8x16 = _BinaryenSubSatUVecI8x16(),
326-
MulVecI8x16 = _BinaryenMulVecI8x16(),
327-
AddVecI16x8 = _BinaryenAddVecI16x8(),
328-
AddSatSVecI16x8 = _BinaryenAddSatSVecI16x8(),
329-
AddSatUVecI16x8 = _BinaryenAddSatUVecI16x8(),
330-
SubVecI16x8 = _BinaryenSubVecI16x8(),
331-
SubSatSVecI16x8 = _BinaryenSubSatSVecI16x8(),
332-
SubSatUVecI16x8 = _BinaryenSubSatUVecI16x8(),
333-
MulVecI16x8 = _BinaryenMulVecI16x8(),
334-
AddVecI32x4 = _BinaryenAddVecI32x4(),
335-
SubVecI32x4 = _BinaryenSubVecI32x4(),
336-
MulVecI32x4 = _BinaryenMulVecI32x4(),
337-
AddVecI64x2 = _BinaryenAddVecI64x2(),
338-
SubVecI64x2 = _BinaryenSubVecI64x2(),
339-
AddVecF32x4 = _BinaryenAddVecF32x4(),
340-
SubVecF32x4 = _BinaryenSubVecF32x4(),
341-
MulVecF32x4 = _BinaryenMulVecF32x4(),
342-
DivVecF32x4 = _BinaryenDivVecF32x4(),
343-
MinVecF32x4 = _BinaryenMinVecF32x4(),
344-
MaxVecF32x4 = _BinaryenMaxVecF32x4(),
345-
AddVecF64x2 = _BinaryenAddVecF64x2(),
346-
SubVecF64x2 = _BinaryenSubVecF64x2(),
347-
MulVecF64x2 = _BinaryenMulVecF64x2(),
348-
DivVecF64x2 = _BinaryenDivVecF64x2(),
349-
MinVecF64x2 = _BinaryenMinVecF64x2(),
350-
MaxVecF64x2 = _BinaryenMaxVecF64x2()
283+
EqI8x16 = _BinaryenEqVecI8x16(),
284+
NeI8x16 = _BinaryenNeVecI8x16(),
285+
LtI8x16 = _BinaryenLtSVecI8x16(),
286+
LtU8x16 = _BinaryenLtUVecI8x16(),
287+
LeI8x16 = _BinaryenLeSVecI8x16(),
288+
LeU8x16 = _BinaryenLeUVecI8x16(),
289+
GtI8x16 = _BinaryenGtSVecI8x16(),
290+
GtU8x16 = _BinaryenGtUVecI8x16(),
291+
GeI8x16 = _BinaryenGeSVecI8x16(),
292+
GeU8x16 = _BinaryenGeUVecI8x16(),
293+
EqI16x8 = _BinaryenEqVecI16x8(),
294+
NeI16x8 = _BinaryenNeVecI16x8(),
295+
LtI16x8 = _BinaryenLtSVecI16x8(),
296+
LtU16x8 = _BinaryenLtUVecI16x8(),
297+
LeI16x8 = _BinaryenLeSVecI16x8(),
298+
LeU16x8 = _BinaryenLeUVecI16x8(),
299+
GtI16x8 = _BinaryenGtSVecI16x8(),
300+
GtU16x8 = _BinaryenGtUVecI16x8(),
301+
GeI16x8 = _BinaryenGeSVecI16x8(),
302+
GeU16x8 = _BinaryenGeUVecI16x8(),
303+
EqI32x4 = _BinaryenEqVecI32x4(),
304+
NeI32x4 = _BinaryenNeVecI32x4(),
305+
LtI32x4 = _BinaryenLtSVecI32x4(),
306+
LtU32x4 = _BinaryenLtUVecI32x4(),
307+
LeI32x4 = _BinaryenLeSVecI32x4(),
308+
LeU32x4 = _BinaryenLeUVecI32x4(),
309+
GtI32x4 = _BinaryenGtSVecI32x4(),
310+
GtU32x4 = _BinaryenGtUVecI32x4(),
311+
GeI32x4 = _BinaryenGeSVecI32x4(),
312+
GeU32x4 = _BinaryenGeUVecI32x4(),
313+
EqF32x4 = _BinaryenEqVecF32x4(),
314+
NeF32x4 = _BinaryenNeVecF32x4(),
315+
LtF32x4 = _BinaryenLtVecF32x4(),
316+
LeF32x4 = _BinaryenLeVecF32x4(),
317+
GtF32x4 = _BinaryenGtVecF32x4(),
318+
GeF32x4 = _BinaryenGeVecF32x4(),
319+
EqF64x2 = _BinaryenEqVecF64x2(),
320+
NeF64x2 = _BinaryenNeVecF64x2(),
321+
LtF64x2 = _BinaryenLtVecF64x2(),
322+
LeF64x2 = _BinaryenLeVecF64x2(),
323+
GtF64x2 = _BinaryenGtVecF64x2(),
324+
GeF64x2 = _BinaryenGeVecF64x2(),
325+
AndV128 = _BinaryenAndVec128(),
326+
OrV128 = _BinaryenOrVec128(),
327+
XorV128 = _BinaryenXorVec128(),
328+
AddI8x16 = _BinaryenAddVecI8x16(),
329+
AddSatI8x16 = _BinaryenAddSatSVecI8x16(),
330+
AddSatU8x16 = _BinaryenAddSatUVecI8x16(),
331+
SubI8x16 = _BinaryenSubVecI8x16(),
332+
SubSatI8x16 = _BinaryenSubSatSVecI8x16(),
333+
SubSatU8x16 = _BinaryenSubSatUVecI8x16(),
334+
MulI8x16 = _BinaryenMulVecI8x16(),
335+
AddI16x8 = _BinaryenAddVecI16x8(),
336+
AddSatI16x8 = _BinaryenAddSatSVecI16x8(),
337+
AddSatU16x8 = _BinaryenAddSatUVecI16x8(),
338+
SubI16x8 = _BinaryenSubVecI16x8(),
339+
SubSatI16x8 = _BinaryenSubSatSVecI16x8(),
340+
SubSatU16x8 = _BinaryenSubSatUVecI16x8(),
341+
MulI16x8 = _BinaryenMulVecI16x8(),
342+
AddI32x4 = _BinaryenAddVecI32x4(),
343+
SubI32x4 = _BinaryenSubVecI32x4(),
344+
MulI32x4 = _BinaryenMulVecI32x4(),
345+
AddI64x2 = _BinaryenAddVecI64x2(),
346+
SubI64x2 = _BinaryenSubVecI64x2(),
347+
AddF32x4 = _BinaryenAddVecF32x4(),
348+
SubF32x4 = _BinaryenSubVecF32x4(),
349+
MulF32x4 = _BinaryenMulVecF32x4(),
350+
DivF32x4 = _BinaryenDivVecF32x4(),
351+
MinF32x4 = _BinaryenMinVecF32x4(),
352+
MaxF32x4 = _BinaryenMaxVecF32x4(),
353+
AddF64x2 = _BinaryenAddVecF64x2(),
354+
SubF64x2 = _BinaryenSubVecF64x2(),
355+
MulF64x2 = _BinaryenMulVecF64x2(),
356+
DivF64x2 = _BinaryenDivVecF64x2(),
357+
MinF64x2 = _BinaryenMinVecF64x2(),
358+
MaxF64x2 = _BinaryenMaxVecF64x2(),
359+
NarrowI16x8ToI8x16 = _BinaryenNarrowSVecI16x8ToVecI8x16(),
360+
NarrowU16x8ToU8x16 = _BinaryenNarrowUVecI16x8ToVecI8x16(),
361+
NarrowI32x4ToI16x8 = _BinaryenNarrowSVecI32x4ToVecI16x8(),
362+
NarrowU32x4ToU16x8 = _BinaryenNarrowUVecI32x4ToVecI16x8()
351363
}
352364

353365
export enum HostOp {
@@ -365,38 +377,38 @@ export enum AtomicRMWOp {
365377
}
366378

367379
export enum SIMDExtractOp {
368-
ExtractLaneSVecI8x16 = _BinaryenExtractLaneSVecI8x16(),
369-
ExtractLaneUVecI8x16 = _BinaryenExtractLaneUVecI8x16(),
370-
ExtractLaneSVecI16x8 = _BinaryenExtractLaneSVecI16x8(),
371-
ExtractLaneUVecI16x8 = _BinaryenExtractLaneUVecI16x8(),
372-
ExtractLaneVecI32x4 = _BinaryenExtractLaneVecI32x4(),
373-
ExtractLaneVecI64x2 = _BinaryenExtractLaneVecI64x2(),
374-
ExtractLaneVecF32x4 = _BinaryenExtractLaneVecF32x4(),
375-
ExtractLaneVecF64x2 = _BinaryenExtractLaneVecF64x2(),
380+
ExtractLaneI8x16 = _BinaryenExtractLaneSVecI8x16(),
381+
ExtractLaneU8x16 = _BinaryenExtractLaneUVecI8x16(),
382+
ExtractLaneI16x8 = _BinaryenExtractLaneSVecI16x8(),
383+
ExtractLaneU16x8 = _BinaryenExtractLaneUVecI16x8(),
384+
ExtractLaneI32x4 = _BinaryenExtractLaneVecI32x4(),
385+
ExtractLaneI64x2 = _BinaryenExtractLaneVecI64x2(),
386+
ExtractLaneF32x4 = _BinaryenExtractLaneVecF32x4(),
387+
ExtractLaneF64x2 = _BinaryenExtractLaneVecF64x2(),
376388
}
377389

378390
export enum SIMDReplaceOp {
379-
ReplaceLaneVecI8x16 = _BinaryenReplaceLaneVecI8x16(),
380-
ReplaceLaneVecI16x8 = _BinaryenReplaceLaneVecI16x8(),
381-
ReplaceLaneVecI32x4 = _BinaryenReplaceLaneVecI32x4(),
382-
ReplaceLaneVecI64x2 = _BinaryenReplaceLaneVecI64x2(),
383-
ReplaceLaneVecF32x4 = _BinaryenReplaceLaneVecF32x4(),
384-
ReplaceLaneVecF64x2 = _BinaryenReplaceLaneVecF64x2()
391+
ReplaceLaneI8x16 = _BinaryenReplaceLaneVecI8x16(),
392+
ReplaceLaneI16x8 = _BinaryenReplaceLaneVecI16x8(),
393+
ReplaceLaneI32x4 = _BinaryenReplaceLaneVecI32x4(),
394+
ReplaceLaneI64x2 = _BinaryenReplaceLaneVecI64x2(),
395+
ReplaceLaneF32x4 = _BinaryenReplaceLaneVecF32x4(),
396+
ReplaceLaneF64x2 = _BinaryenReplaceLaneVecF64x2()
385397
}
386398

387399
export enum SIMDShiftOp {
388-
ShlVecI8x16 = _BinaryenShlVecI8x16(),
389-
ShrSVecI8x16 = _BinaryenShrSVecI8x16(),
390-
ShrUVecI8x16 = _BinaryenShrUVecI8x16(),
391-
ShlVecI16x8 = _BinaryenShlVecI16x8(),
392-
ShrSVecI16x8 = _BinaryenShrSVecI16x8(),
393-
ShrUVecI16x8 = _BinaryenShrUVecI16x8(),
394-
ShlVecI32x4 = _BinaryenShlVecI32x4(),
395-
ShrSVecI32x4 = _BinaryenShrSVecI32x4(),
396-
ShrUVecI32x4 = _BinaryenShrUVecI32x4(),
397-
ShlVecI64x2 = _BinaryenShlVecI64x2(),
398-
ShrSVecI64x2 = _BinaryenShrSVecI64x2(),
399-
ShrUVecI64x2 = _BinaryenShrUVecI64x2()
400+
ShlI8x16 = _BinaryenShlVecI8x16(),
401+
ShrI8x16 = _BinaryenShrSVecI8x16(),
402+
ShrU8x16 = _BinaryenShrUVecI8x16(),
403+
ShlI16x8 = _BinaryenShlVecI16x8(),
404+
ShrI16x8 = _BinaryenShrSVecI16x8(),
405+
ShrU16x8 = _BinaryenShrUVecI16x8(),
406+
ShlI32x4 = _BinaryenShlVecI32x4(),
407+
ShrI32x4 = _BinaryenShrSVecI32x4(),
408+
ShrU32x4 = _BinaryenShrUVecI32x4(),
409+
ShlI64x2 = _BinaryenShlVecI64x2(),
410+
ShrI64x2 = _BinaryenShrSVecI64x2(),
411+
ShrU64x2 = _BinaryenShrUVecI64x2()
400412
}
401413

402414
export enum SIMDTernaryOp {

0 commit comments

Comments
 (0)