Skip to content

Commit 1e2de99

Browse files
authoredFeb 3, 2023
Add relaxed SIMD constants (#2639)
1 parent 810b8e6 commit 1e2de99

File tree

1 file changed

+52
-3
lines changed

1 file changed

+52
-3
lines changed
 

‎src/module.ts

+52-3
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,18 @@ export const enum UnaryOp {
590590
/** f64x2.promote_low_f32x4 */
591591
PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */,
592592

593-
_last = PromoteLowF32x4ToF64x2,
593+
// see: https://github.com/WebAssembly/relaxed-simd
594+
595+
/** i32x4.relaxed_trunc_f32x4_s */
596+
RelaxedTruncF32x4ToI32x4 = 125 /* TODO_BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */,
597+
/** i32x4.relaxed_trunc_f32x4_u */
598+
RelaxedTruncF32x4ToU32x4 = 126 /* TODO_BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */,
599+
/** i32x4.relaxed_trunc_f64x2_s_zero */
600+
RelaxedTruncF64x2ToI32x4Zero = 127 /* TODO_BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */,
601+
/** i32x4.relaxed_trunc_f64x2_u_zero */
602+
RelaxedTruncF64x2ToU32x4Zero = 128 /* TODO_BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */,
603+
604+
_last = RelaxedTruncF64x2ToU32x4Zero,
594605

595606
// Target dependent
596607

@@ -1002,7 +1013,24 @@ export const enum BinaryOp {
10021013
/** i8x16.swizzle */
10031014
SwizzleI8x16 = 195 /* _BinaryenSwizzleVecI8x16 */,
10041015

1005-
_last = SwizzleI8x16,
1016+
// see: https://github.com/WebAssembly/relaxed-simd
1017+
1018+
/** i8x16.relaxed_swizzle */
1019+
RelaxedSwizzleI8x16 = 196 /* TODO_BinaryenRelaxedSwizzleVecI8x16 */,
1020+
/** f32x4.relaxed_min */
1021+
RelaxedMinF32x4 = 197 /* TODO_BinaryenRelaxedMinVecF32x4 */,
1022+
/** f32x4.relaxed_max */
1023+
RelaxedMaxF32x4 = 198 /* TODO_BinaryenRelaxedMaxVecF32x4 */,
1024+
/** f64x2.relaxed_min */
1025+
RelaxedMinF64x2 = 199 /* TODO_BinaryenRelaxedMinVecF64x2 */,
1026+
/** f64x2.relaxed_max */
1027+
RelaxedMaxF64x2 = 200 /* TODO_BinaryenRelaxedMaxVecF64x2 */,
1028+
/** i16x8.relaxed_q15mulr_s */
1029+
RelaxedQ15MulrI16x8 = 201 /* TODO_BinaryenRelaxedQ15MulrSVecI16x8 */,
1030+
/** i16x8.relaxed_dot_i8x16_i7x16_s */
1031+
RelaxedDotI8x16I7x16ToI16x8 = 202 /* TODO_BinaryenDotI8x16I7x16SToVecI16x8 */,
1032+
1033+
_last = RelaxedDotI8x16I7x16ToI16x8,
10061034

10071035
// Target dependent
10081036

@@ -1189,7 +1217,28 @@ export const enum SIMDLoadStoreLaneOp {
11891217
/** Binaryen SIMD ternary operation constants. */
11901218
export const enum SIMDTernaryOp {
11911219
/** v128.bitselect */
1192-
Bitselect = 0 /* _BinaryenBitselectVec128 */
1220+
Bitselect = 0 /* _BinaryenBitselectVec128 */,
1221+
1222+
// see: https://github.com/WebAssembly/relaxed-simd
1223+
1224+
/** f32x4.relaxed_madd */
1225+
RelaxedMaddF32x4 = 1 /* TODO_BinaryenRelaxedFmaVecF32x4 */,
1226+
/** f32x4.relaxed_nmadd */
1227+
RelaxedNmaddF32x4 = 2 /* TODO_BinaryenRelaxedFmsVecF32x4 */,
1228+
/** f64x2.relaxed_madd */
1229+
RelaxedMaddF64x2 = 3 /* TODO_BinaryenRelaxedFmaVecF64x2 */,
1230+
/** f64x2.relaxed_nmadd */
1231+
RelaxedNmaddF64x2 = 4 /* TODO_BinaryenRelaxedFmsVecF64x2 */,
1232+
/** i8x16.relaxed_laneselect */
1233+
RelaxedLaneselectI8x16 = 5 /* TODO_BinaryenLaneselectI8x16 */,
1234+
/** i16x8.relaxed_laneselect */
1235+
RelaxedLaneselectI16x8 = 6 /* TODO_BinaryenLaneselectI16x8 */,
1236+
/** i32x4.relaxed_laneselect */
1237+
RelaxedLaneselectI32x4 = 7 /* TODO_BinaryenLaneselectI32x4 */,
1238+
/** i64x2.relaxed_laneselect */
1239+
RelaxedLaneselectI64x2 = 8 /* TODO_BinaryenLaneselectI64x2 */,
1240+
/** i32x4.relaxed_dot_i8x16_i7x16_add_s */
1241+
RelaxedDotI8x16I7x16AddToI32x4 = 9 /* TODO_BinaryenDotI8x16I7x16AddSToVecI32x4 */,
11931242
}
11941243

11951244
/** Binaryen RefAs operation constants. */

0 commit comments

Comments
 (0)
Please sign in to comment.