@@ -2312,38 +2312,49 @@ switch (op[0]) {
23122312 default : goto parse_error;
23132313 }
23142314 }
2315+ case ' b' :
2316+ if (strcmp (op, " i64x2.bitmask" ) == 0 ) { return makeUnary (s, UnaryOp::BitmaskVecI64x2); }
2317+ goto parse_error;
23152318 case ' e' : {
2316- switch (op[9 ]) {
2317- case ' m' : {
2318- switch (op[13 ]) {
2319- case ' h' : {
2320- switch (op[24 ]) {
2321- case ' s' :
2322- if (strcmp (op, " i64x2.extmul_high_i32x4_s" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulHighSVecI64x2); }
2323- goto parse_error;
2324- case ' u' :
2325- if (strcmp (op, " i64x2.extmul_high_i32x4_u" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulHighUVecI64x2); }
2326- goto parse_error;
2327- default : goto parse_error;
2328- }
2329- }
2330- case ' l' : {
2331- switch (op[23 ]) {
2332- case ' s' :
2333- if (strcmp (op, " i64x2.extmul_low_i32x4_s" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulLowSVecI64x2); }
2334- goto parse_error;
2335- case ' u' :
2336- if (strcmp (op, " i64x2.extmul_low_i32x4_u" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulLowUVecI64x2); }
2337- goto parse_error;
2319+ switch (op[7 ]) {
2320+ case ' q' :
2321+ if (strcmp (op, " i64x2.eq" ) == 0 ) { return makeBinary (s, BinaryOp::EqVecI64x2); }
2322+ goto parse_error;
2323+ case ' x' : {
2324+ switch (op[9 ]) {
2325+ case ' m' : {
2326+ switch (op[13 ]) {
2327+ case ' h' : {
2328+ switch (op[24 ]) {
2329+ case ' s' :
2330+ if (strcmp (op, " i64x2.extmul_high_i32x4_s" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulHighSVecI64x2); }
2331+ goto parse_error;
2332+ case ' u' :
2333+ if (strcmp (op, " i64x2.extmul_high_i32x4_u" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulHighUVecI64x2); }
2334+ goto parse_error;
2335+ default : goto parse_error;
2336+ }
2337+ }
2338+ case ' l' : {
2339+ switch (op[23 ]) {
2340+ case ' s' :
2341+ if (strcmp (op, " i64x2.extmul_low_i32x4_s" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulLowSVecI64x2); }
2342+ goto parse_error;
2343+ case ' u' :
2344+ if (strcmp (op, " i64x2.extmul_low_i32x4_u" ) == 0 ) { return makeBinary (s, BinaryOp::ExtMulLowUVecI64x2); }
2345+ goto parse_error;
2346+ default : goto parse_error;
2347+ }
2348+ }
23382349 default : goto parse_error;
23392350 }
23402351 }
2352+ case ' r' :
2353+ if (strcmp (op, " i64x2.extract_lane" ) == 0 ) { return makeSIMDExtract (s, SIMDExtractOp::ExtractLaneVecI64x2, 2 ); }
2354+ goto parse_error;
23412355 default : goto parse_error;
23422356 }
23432357 }
2344- case ' r' :
2345- if (strcmp (op, " i64x2.extract_lane" ) == 0 ) { return makeSIMDExtract (s, SIMDExtractOp::ExtractLaneVecI64x2, 2 ); }
2346- goto parse_error;
23472358 default : goto parse_error;
23482359 }
23492360 }
@@ -2408,6 +2419,33 @@ switch (op[0]) {
24082419 default : goto parse_error;
24092420 }
24102421 }
2422+ case ' w' : {
2423+ switch (op[12 ]) {
2424+ case ' h' : {
2425+ switch (op[23 ]) {
2426+ case ' s' :
2427+ if (strcmp (op, " i64x2.widen_high_i32x4_s" ) == 0 ) { return makeUnary (s, UnaryOp::WidenHighSVecI32x4ToVecI64x2); }
2428+ goto parse_error;
2429+ case ' u' :
2430+ if (strcmp (op, " i64x2.widen_high_i32x4_u" ) == 0 ) { return makeUnary (s, UnaryOp::WidenHighUVecI32x4ToVecI64x2); }
2431+ goto parse_error;
2432+ default : goto parse_error;
2433+ }
2434+ }
2435+ case ' l' : {
2436+ switch (op[22 ]) {
2437+ case ' s' :
2438+ if (strcmp (op, " i64x2.widen_low_i32x4_s" ) == 0 ) { return makeUnary (s, UnaryOp::WidenLowSVecI32x4ToVecI64x2); }
2439+ goto parse_error;
2440+ case ' u' :
2441+ if (strcmp (op, " i64x2.widen_low_i32x4_u" ) == 0 ) { return makeUnary (s, UnaryOp::WidenLowUVecI32x4ToVecI64x2); }
2442+ goto parse_error;
2443+ default : goto parse_error;
2444+ }
2445+ }
2446+ default : goto parse_error;
2447+ }
2448+ }
24112449 default : goto parse_error;
24122450 }
24132451 }
@@ -2962,18 +3000,42 @@ switch (op[0]) {
29623000 default : goto parse_error;
29633001 }
29643002 }
2965- case ' 6' :
2966- if (strcmp (op, " v16x8.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec16x8); }
3003+ case ' 6' : {
3004+ switch (op[6 ]) {
3005+ case ' l' :
3006+ if (strcmp (op, " v16x8.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec16x8); }
3007+ goto parse_error;
3008+ case ' s' :
3009+ if (strcmp (op, " v16x8.signselect" ) == 0 ) { return makeSIMDTernary (s, SIMDTernaryOp::SignSelectVec16x8); }
3010+ goto parse_error;
3011+ default : goto parse_error;
3012+ }
3013+ }
3014+ default : goto parse_error;
3015+ }
3016+ }
3017+ case ' 3' : {
3018+ switch (op[6 ]) {
3019+ case ' l' :
3020+ if (strcmp (op, " v32x4.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec32x4); }
3021+ goto parse_error;
3022+ case ' s' :
3023+ if (strcmp (op, " v32x4.signselect" ) == 0 ) { return makeSIMDTernary (s, SIMDTernaryOp::SignSelectVec32x4); }
3024+ goto parse_error;
3025+ default : goto parse_error;
3026+ }
3027+ }
3028+ case ' 6' : {
3029+ switch (op[6 ]) {
3030+ case ' l' :
3031+ if (strcmp (op, " v64x2.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec64x2); }
3032+ goto parse_error;
3033+ case ' s' :
3034+ if (strcmp (op, " v64x2.signselect" ) == 0 ) { return makeSIMDTernary (s, SIMDTernaryOp::SignSelectVec64x2); }
29673035 goto parse_error;
29683036 default : goto parse_error;
29693037 }
29703038 }
2971- case ' 3' :
2972- if (strcmp (op, " v32x4.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec32x4); }
2973- goto parse_error;
2974- case ' 6' :
2975- if (strcmp (op, " v64x2.load_splat" ) == 0 ) { return makeSIMDLoad (s, SIMDLoadOp::LoadSplatVec64x2); }
2976- goto parse_error;
29773039 case ' 8' : {
29783040 switch (op[6 ]) {
29793041 case ' l' :
@@ -2984,6 +3046,9 @@ switch (op[0]) {
29843046 case ' h' :
29853047 if (strcmp (op, " v8x16.shuffle" ) == 0 ) { return makeSIMDShuffle (s); }
29863048 goto parse_error;
3049+ case ' i' :
3050+ if (strcmp (op, " v8x16.signselect" ) == 0 ) { return makeSIMDTernary (s, SIMDTernaryOp::SignSelectVec8x16); }
3051+ goto parse_error;
29873052 case ' w' :
29883053 if (strcmp (op, " v8x16.swizzle" ) == 0 ) { return makeBinary (s, BinaryOp::SwizzleVec8x16); }
29893054 goto parse_error;
0 commit comments