@@ -2312,38 +2312,49 @@ switch (op[0]) {
2312
2312
default : goto parse_error;
2313
2313
}
2314
2314
}
2315
+ case ' b' :
2316
+ if (strcmp (op, " i64x2.bitmask" ) == 0 ) { return makeUnary (s, UnaryOp::BitmaskVecI64x2); }
2317
+ goto parse_error;
2315
2318
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
+ }
2338
2349
default : goto parse_error;
2339
2350
}
2340
2351
}
2352
+ case ' r' :
2353
+ if (strcmp (op, " i64x2.extract_lane" ) == 0 ) { return makeSIMDExtract (s, SIMDExtractOp::ExtractLaneVecI64x2, 2 ); }
2354
+ goto parse_error;
2341
2355
default : goto parse_error;
2342
2356
}
2343
2357
}
2344
- case ' r' :
2345
- if (strcmp (op, " i64x2.extract_lane" ) == 0 ) { return makeSIMDExtract (s, SIMDExtractOp::ExtractLaneVecI64x2, 2 ); }
2346
- goto parse_error;
2347
2358
default : goto parse_error;
2348
2359
}
2349
2360
}
@@ -2408,6 +2419,33 @@ switch (op[0]) {
2408
2419
default : goto parse_error;
2409
2420
}
2410
2421
}
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
+ }
2411
2449
default : goto parse_error;
2412
2450
}
2413
2451
}
@@ -2962,18 +3000,42 @@ switch (op[0]) {
2962
3000
default : goto parse_error;
2963
3001
}
2964
3002
}
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); }
2967
3035
goto parse_error;
2968
3036
default : goto parse_error;
2969
3037
}
2970
3038
}
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;
2977
3039
case ' 8' : {
2978
3040
switch (op[6 ]) {
2979
3041
case ' l' :
@@ -2984,6 +3046,9 @@ switch (op[0]) {
2984
3046
case ' h' :
2985
3047
if (strcmp (op, " v8x16.shuffle" ) == 0 ) { return makeSIMDShuffle (s); }
2986
3048
goto parse_error;
3049
+ case ' i' :
3050
+ if (strcmp (op, " v8x16.signselect" ) == 0 ) { return makeSIMDTernary (s, SIMDTernaryOp::SignSelectVec8x16); }
3051
+ goto parse_error;
2987
3052
case ' w' :
2988
3053
if (strcmp (op, " v8x16.swizzle" ) == 0 ) { return makeBinary (s, BinaryOp::SwizzleVec8x16); }
2989
3054
goto parse_error;
0 commit comments