@@ -570,12 +570,23 @@ switch (buf[0]) {
570570 }
571571 case ' m' : {
572572 switch (buf[7 ]) {
573- case ' a' :
574- if (op == " f16x8.max" sv) {
575- CHECK_ERR (makeBinary (ctx, pos, annotations, BinaryOp::MaxVecF16x8));
576- return Ok{};
573+ case ' a' : {
574+ switch (buf[8 ]) {
575+ case ' d' :
576+ if (op == " f16x8.madd" sv) {
577+ CHECK_ERR (makeSIMDTernary (ctx, pos, annotations, SIMDTernaryOp::MaddVecF16x8));
578+ return Ok{};
579+ }
580+ goto parse_error;
581+ case ' x' :
582+ if (op == " f16x8.max" sv) {
583+ CHECK_ERR (makeBinary (ctx, pos, annotations, BinaryOp::MaxVecF16x8));
584+ return Ok{};
585+ }
586+ goto parse_error;
587+ default : goto parse_error;
577588 }
578- goto parse_error;
589+ }
579590 case ' i' :
580591 if (op == " f16x8.min" sv) {
581592 CHECK_ERR (makeBinary (ctx, pos, annotations, BinaryOp::MinVecF16x8));
@@ -592,22 +603,33 @@ switch (buf[0]) {
592603 }
593604 }
594605 case ' n' : {
595- switch (buf[8 ]) {
596- case ' \0 ' :
597- if (op == " f16x8.ne" sv) {
598- CHECK_ERR (makeBinary (ctx, pos, annotations, BinaryOp::NeVecF16x8));
599- return Ok{};
600- }
601- goto parse_error;
602- case ' a' :
603- if (op == " f16x8.nearest" sv) {
604- CHECK_ERR (makeUnary (ctx, pos, annotations, UnaryOp::NearestVecF16x8));
605- return Ok{};
606+ switch (buf[7 ]) {
607+ case ' e' : {
608+ switch (buf[8 ]) {
609+ case ' \0 ' :
610+ if (op == " f16x8.ne" sv) {
611+ CHECK_ERR (makeBinary (ctx, pos, annotations, BinaryOp::NeVecF16x8));
612+ return Ok{};
613+ }
614+ goto parse_error;
615+ case ' a' :
616+ if (op == " f16x8.nearest" sv) {
617+ CHECK_ERR (makeUnary (ctx, pos, annotations, UnaryOp::NearestVecF16x8));
618+ return Ok{};
619+ }
620+ goto parse_error;
621+ case ' g' :
622+ if (op == " f16x8.neg" sv) {
623+ CHECK_ERR (makeUnary (ctx, pos, annotations, UnaryOp::NegVecF16x8));
624+ return Ok{};
625+ }
626+ goto parse_error;
627+ default : goto parse_error;
606628 }
607- goto parse_error;
608- case ' g ' :
609- if (op == " f16x8.neg " sv) {
610- CHECK_ERR (makeUnary (ctx, pos, annotations, UnaryOp::NegVecF16x8 ));
629+ }
630+ case ' m ' :
631+ if (op == " f16x8.nmadd " sv) {
632+ CHECK_ERR (makeSIMDTernary (ctx, pos, annotations, SIMDTernaryOp::NmaddVecF16x8 ));
611633 return Ok{};
612634 }
613635 goto parse_error;
@@ -631,34 +653,12 @@ switch (buf[0]) {
631653 default : goto parse_error;
632654 }
633655 }
634- case ' r' : {
635- switch (buf[8 ]) {
636- case ' l' : {
637- switch (buf[14 ]) {
638- case ' m' :
639- if (op == " f16x8.relaxed_madd" sv) {
640- CHECK_ERR (makeSIMDTernary (ctx, pos, annotations, SIMDTernaryOp::RelaxedMaddVecF16x8));
641- return Ok{};
642- }
643- goto parse_error;
644- case ' n' :
645- if (op == " f16x8.relaxed_nmadd" sv) {
646- CHECK_ERR (makeSIMDTernary (ctx, pos, annotations, SIMDTernaryOp::RelaxedNmaddVecF16x8));
647- return Ok{};
648- }
649- goto parse_error;
650- default : goto parse_error;
651- }
652- }
653- case ' p' :
654- if (op == " f16x8.replace_lane" sv) {
655- CHECK_ERR (makeSIMDReplace (ctx, pos, annotations, SIMDReplaceOp::ReplaceLaneVecF16x8, 8 ));
656- return Ok{};
657- }
658- goto parse_error;
659- default : goto parse_error;
656+ case ' r' :
657+ if (op == " f16x8.replace_lane" sv) {
658+ CHECK_ERR (makeSIMDReplace (ctx, pos, annotations, SIMDReplaceOp::ReplaceLaneVecF16x8, 8 ));
659+ return Ok{};
660660 }
661- }
661+ goto parse_error;
662662 case ' s' : {
663663 switch (buf[7 ]) {
664664 case ' p' :
0 commit comments