#!/usr/bin/env python3
#
# Copyright 2018 WebAssembly Community Group participants
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import sys

if sys.version_info < (3, 10):  # noqa: UP036
    print("python 3.10 required")
    sys.exit(1)


instructions = [
    ("unreachable",    "makeUnreachable()"),
    ("nop",            "makeNop()"),
    ("block",          "makeBlock()"),
    ("loop",           "makeLoop()"),
    ("if",             "makeIf()"),
    ("then",           "makeThenOrElse()"),
    ("else",           "makeThenOrElse()"),
    ("br",             "makeBreak(false)"),
    ("br_if",          "makeBreak(true)"),
    ("br_table",       "makeBreakTable()"),
    ("return",         "makeReturn()"),
    ("call",           "makeCall(/*isReturn=*/false)"),
    ("call_indirect",  "makeCallIndirect(/*isReturn=*/false)"),
    ("return_call",    "makeCall(/*isReturn=*/true)"),
    ("return_call_indirect", "makeCallIndirect(/*isReturn=*/true)"),
    ("drop",           "makeDrop()"),
    ("select",         "makeSelect()"),
    ("local.get",      "makeLocalGet()"),
    ("local.set",      "makeLocalSet()"),
    ("local.tee",      "makeLocalTee()"),
    ("global.get",     "makeGlobalGet()"),
    ("global.set",     "makeGlobalSet()"),
    ("memory.init",    "makeMemoryInit()"),
    ("data.drop",      "makeDataDrop()"),
    ("memory.copy",    "makeMemoryCopy()"),
    ("memory.fill",    "makeMemoryFill()"),
    ("i32.load",       "makeLoad(Type::i32, /*signed=*/false, 4, /*isAtomic=*/false)"),
    ("i64.load",       "makeLoad(Type::i64, /*signed=*/false, 8, /*isAtomic=*/false)"),
    ("f32.load",       "makeLoad(Type::f32, /*signed=*/false, 4, /*isAtomic=*/false)"),
    ("f32.load_f16",   "makeLoad(Type::f32, /*signed=*/false, 2, /*isAtomic=*/false)"),
    ("f64.load",       "makeLoad(Type::f64, /*signed=*/false, 8, /*isAtomic=*/false)"),
    ("i32.load8_s",    "makeLoad(Type::i32, /*signed=*/true, 1, /*isAtomic=*/false)"),
    ("i32.load8_u",    "makeLoad(Type::i32, /*signed=*/false, 1, /*isAtomic=*/false)"),
    ("i32.load16_s",   "makeLoad(Type::i32, /*signed=*/true, 2, /*isAtomic=*/false)"),
    ("i32.load16_u",   "makeLoad(Type::i32, /*signed=*/false, 2, /*isAtomic=*/false)"),
    ("i64.load8_s",    "makeLoad(Type::i64, /*signed=*/true, 1, /*isAtomic=*/false)"),
    ("i64.load8_u",    "makeLoad(Type::i64, /*signed=*/false, 1, /*isAtomic=*/false)"),
    ("i64.load16_s",   "makeLoad(Type::i64, /*signed=*/true, 2, /*isAtomic=*/false)"),
    ("i64.load16_u",   "makeLoad(Type::i64, /*signed=*/false, 2, /*isAtomic=*/false)"),
    ("i64.load32_s",   "makeLoad(Type::i64, /*signed=*/true, 4, /*isAtomic=*/false)"),
    ("i64.load32_u",   "makeLoad(Type::i64, /*signed=*/false, 4, /*isAtomic=*/false)"),
    ("i32.store",      "makeStore(Type::i32, 4, /*isAtomic=*/false)"),
    ("i64.store",      "makeStore(Type::i64, 8, /*isAtomic=*/false)"),
    ("f32.store",      "makeStore(Type::f32, 4, /*isAtomic=*/false)"),
    ("f32.store_f16",  "makeStore(Type::f32, 2, /*isAtomic=*/false)"),
    ("f64.store",      "makeStore(Type::f64, 8, /*isAtomic=*/false)"),
    ("i32.store8",     "makeStore(Type::i32, 1, /*isAtomic=*/false)"),
    ("i32.store16",    "makeStore(Type::i32, 2, /*isAtomic=*/false)"),
    ("i64.store8",     "makeStore(Type::i64, 1, /*isAtomic=*/false)"),
    ("i64.store16",    "makeStore(Type::i64, 2, /*isAtomic=*/false)"),
    ("i64.store32",    "makeStore(Type::i64, 4, /*isAtomic=*/false)"),
    ("memory.size",    "makeMemorySize()"),
    ("memory.grow",    "makeMemoryGrow()"),
    ("i32.const",      "makeConst(Type::i32)"),
    ("i64.const",      "makeConst(Type::i64)"),
    ("f32.const",      "makeConst(Type::f32)"),
    ("f64.const",      "makeConst(Type::f64)"),
    ("i32.eqz",        "makeUnary(UnaryOp::EqZInt32)"),
    ("i32.eq",         "makeBinary(BinaryOp::EqInt32)"),
    ("i32.ne",         "makeBinary(BinaryOp::NeInt32)"),
    ("i32.lt_s",       "makeBinary(BinaryOp::LtSInt32)"),
    ("i32.lt_u",       "makeBinary(BinaryOp::LtUInt32)"),
    ("i32.gt_s",       "makeBinary(BinaryOp::GtSInt32)"),
    ("i32.gt_u",       "makeBinary(BinaryOp::GtUInt32)"),
    ("i32.le_s",       "makeBinary(BinaryOp::LeSInt32)"),
    ("i32.le_u",       "makeBinary(BinaryOp::LeUInt32)"),
    ("i32.ge_s",       "makeBinary(BinaryOp::GeSInt32)"),
    ("i32.ge_u",       "makeBinary(BinaryOp::GeUInt32)"),
    ("i64.eqz",        "makeUnary(UnaryOp::EqZInt64)"),
    ("i64.eq",         "makeBinary(BinaryOp::EqInt64)"),
    ("i64.ne",         "makeBinary(BinaryOp::NeInt64)"),
    ("i64.lt_s",       "makeBinary(BinaryOp::LtSInt64)"),
    ("i64.lt_u",       "makeBinary(BinaryOp::LtUInt64)"),
    ("i64.gt_s",       "makeBinary(BinaryOp::GtSInt64)"),
    ("i64.gt_u",       "makeBinary(BinaryOp::GtUInt64)"),
    ("i64.le_s",       "makeBinary(BinaryOp::LeSInt64)"),
    ("i64.le_u",       "makeBinary(BinaryOp::LeUInt64)"),
    ("i64.ge_s",       "makeBinary(BinaryOp::GeSInt64)"),
    ("i64.ge_u",       "makeBinary(BinaryOp::GeUInt64)"),
    ("f32.eq",         "makeBinary(BinaryOp::EqFloat32)"),
    ("f32.ne",         "makeBinary(BinaryOp::NeFloat32)"),
    ("f32.lt",         "makeBinary(BinaryOp::LtFloat32)"),
    ("f32.gt",         "makeBinary(BinaryOp::GtFloat32)"),
    ("f32.le",         "makeBinary(BinaryOp::LeFloat32)"),
    ("f32.ge",         "makeBinary(BinaryOp::GeFloat32)"),
    ("f64.eq",         "makeBinary(BinaryOp::EqFloat64)"),
    ("f64.ne",         "makeBinary(BinaryOp::NeFloat64)"),
    ("f64.lt",         "makeBinary(BinaryOp::LtFloat64)"),
    ("f64.gt",         "makeBinary(BinaryOp::GtFloat64)"),
    ("f64.le",         "makeBinary(BinaryOp::LeFloat64)"),
    ("f64.ge",         "makeBinary(BinaryOp::GeFloat64)"),
    ("i32.clz",        "makeUnary(UnaryOp::ClzInt32)"),
    ("i32.ctz",        "makeUnary(UnaryOp::CtzInt32)"),
    ("i32.popcnt",     "makeUnary(UnaryOp::PopcntInt32)"),
    ("i32.add",        "makeBinary(BinaryOp::AddInt32)"),
    ("i32.sub",        "makeBinary(BinaryOp::SubInt32)"),
    ("i32.mul",        "makeBinary(BinaryOp::MulInt32)"),
    ("i32.div_s",      "makeBinary(BinaryOp::DivSInt32)"),
    ("i32.div_u",      "makeBinary(BinaryOp::DivUInt32)"),
    ("i32.rem_s",      "makeBinary(BinaryOp::RemSInt32)"),
    ("i32.rem_u",      "makeBinary(BinaryOp::RemUInt32)"),
    ("i32.and",        "makeBinary(BinaryOp::AndInt32)"),
    ("i32.or",         "makeBinary(BinaryOp::OrInt32)"),
    ("i32.xor",        "makeBinary(BinaryOp::XorInt32)"),
    ("i32.shl",        "makeBinary(BinaryOp::ShlInt32)"),
    ("i32.shr_s",      "makeBinary(BinaryOp::ShrSInt32)"),
    ("i32.shr_u",      "makeBinary(BinaryOp::ShrUInt32)"),
    ("i32.rotl",       "makeBinary(BinaryOp::RotLInt32)"),
    ("i32.rotr",       "makeBinary(BinaryOp::RotRInt32)"),
    ("i64.clz",        "makeUnary(UnaryOp::ClzInt64)"),
    ("i64.ctz",        "makeUnary(UnaryOp::CtzInt64)"),
    ("i64.popcnt",     "makeUnary(UnaryOp::PopcntInt64)"),
    ("i64.add",        "makeBinary(BinaryOp::AddInt64)"),
    ("i64.sub",        "makeBinary(BinaryOp::SubInt64)"),
    ("i64.mul",        "makeBinary(BinaryOp::MulInt64)"),
    ("i64.div_s",      "makeBinary(BinaryOp::DivSInt64)"),
    ("i64.div_u",      "makeBinary(BinaryOp::DivUInt64)"),
    ("i64.rem_s",      "makeBinary(BinaryOp::RemSInt64)"),
    ("i64.rem_u",      "makeBinary(BinaryOp::RemUInt64)"),
    ("i64.and",        "makeBinary(BinaryOp::AndInt64)"),
    ("i64.or",         "makeBinary(BinaryOp::OrInt64)"),
    ("i64.xor",        "makeBinary(BinaryOp::XorInt64)"),
    ("i64.shl",        "makeBinary(BinaryOp::ShlInt64)"),
    ("i64.shr_s",      "makeBinary(BinaryOp::ShrSInt64)"),
    ("i64.shr_u",      "makeBinary(BinaryOp::ShrUInt64)"),
    ("i64.rotl",       "makeBinary(BinaryOp::RotLInt64)"),
    ("i64.rotr",       "makeBinary(BinaryOp::RotRInt64)"),
    ("f32.abs",        "makeUnary(UnaryOp::AbsFloat32)"),
    ("f32.neg",        "makeUnary(UnaryOp::NegFloat32)"),
    ("f32.ceil",       "makeUnary(UnaryOp::CeilFloat32)"),
    ("f32.floor",      "makeUnary(UnaryOp::FloorFloat32)"),
    ("f32.trunc",      "makeUnary(UnaryOp::TruncFloat32)"),
    ("f32.nearest",    "makeUnary(UnaryOp::NearestFloat32)"),
    ("f32.sqrt",       "makeUnary(UnaryOp::SqrtFloat32)"),
    ("f32.add",        "makeBinary(BinaryOp::AddFloat32)"),
    ("f32.sub",        "makeBinary(BinaryOp::SubFloat32)"),
    ("f32.mul",        "makeBinary(BinaryOp::MulFloat32)"),
    ("f32.div",        "makeBinary(BinaryOp::DivFloat32)"),
    ("f32.min",        "makeBinary(BinaryOp::MinFloat32)"),
    ("f32.max",        "makeBinary(BinaryOp::MaxFloat32)"),
    ("f32.copysign",   "makeBinary(BinaryOp::CopySignFloat32)"),
    ("f64.abs",        "makeUnary(UnaryOp::AbsFloat64)"),
    ("f64.neg",        "makeUnary(UnaryOp::NegFloat64)"),
    ("f64.ceil",       "makeUnary(UnaryOp::CeilFloat64)"),
    ("f64.floor",      "makeUnary(UnaryOp::FloorFloat64)"),
    ("f64.trunc",      "makeUnary(UnaryOp::TruncFloat64)"),
    ("f64.nearest",    "makeUnary(UnaryOp::NearestFloat64)"),
    ("f64.sqrt",       "makeUnary(UnaryOp::SqrtFloat64)"),
    ("f64.add",        "makeBinary(BinaryOp::AddFloat64)"),
    ("f64.sub",        "makeBinary(BinaryOp::SubFloat64)"),
    ("f64.mul",        "makeBinary(BinaryOp::MulFloat64)"),
    ("f64.div",        "makeBinary(BinaryOp::DivFloat64)"),
    ("f64.min",        "makeBinary(BinaryOp::MinFloat64)"),
    ("f64.max",        "makeBinary(BinaryOp::MaxFloat64)"),
    ("f64.copysign",   "makeBinary(BinaryOp::CopySignFloat64)"),
    ("i32.wrap_i64",   "makeUnary(UnaryOp::WrapInt64)"),
    ("i32.trunc_f32_s",     "makeUnary(UnaryOp::TruncSFloat32ToInt32)"),
    ("i32.trunc_f32_u",     "makeUnary(UnaryOp::TruncUFloat32ToInt32)"),
    ("i32.trunc_f64_s",     "makeUnary(UnaryOp::TruncSFloat64ToInt32)"),
    ("i32.trunc_f64_u",     "makeUnary(UnaryOp::TruncUFloat64ToInt32)"),
    ("i64.extend_i32_s",    "makeUnary(UnaryOp::ExtendSInt32)"),
    ("i64.extend_i32_u",    "makeUnary(UnaryOp::ExtendUInt32)"),
    ("i64.trunc_f32_s",     "makeUnary(UnaryOp::TruncSFloat32ToInt64)"),
    ("i64.trunc_f32_u",     "makeUnary(UnaryOp::TruncUFloat32ToInt64)"),
    ("i64.trunc_f64_s",     "makeUnary(UnaryOp::TruncSFloat64ToInt64)"),
    ("i64.trunc_f64_u",     "makeUnary(UnaryOp::TruncUFloat64ToInt64)"),
    ("f32.convert_i32_s",   "makeUnary(UnaryOp::ConvertSInt32ToFloat32)"),
    ("f32.convert_i32_u",   "makeUnary(UnaryOp::ConvertUInt32ToFloat32)"),
    ("f32.convert_i64_s",   "makeUnary(UnaryOp::ConvertSInt64ToFloat32)"),
    ("f32.convert_i64_u",   "makeUnary(UnaryOp::ConvertUInt64ToFloat32)"),
    ("f32.demote_f64",      "makeUnary(UnaryOp::DemoteFloat64)"),
    ("f64.convert_i32_s",   "makeUnary(UnaryOp::ConvertSInt32ToFloat64)"),
    ("f64.convert_i32_u",   "makeUnary(UnaryOp::ConvertUInt32ToFloat64)"),
    ("f64.convert_i64_s",   "makeUnary(UnaryOp::ConvertSInt64ToFloat64)"),
    ("f64.convert_i64_u",   "makeUnary(UnaryOp::ConvertUInt64ToFloat64)"),
    ("f64.promote_f32",     "makeUnary(UnaryOp::PromoteFloat32)"),
    ("i32.reinterpret_f32", "makeUnary(UnaryOp::ReinterpretFloat32)"),
    ("i64.reinterpret_f64", "makeUnary(UnaryOp::ReinterpretFloat64)"),
    ("f32.reinterpret_i32", "makeUnary(UnaryOp::ReinterpretInt32)"),
    ("f64.reinterpret_i64", "makeUnary(UnaryOp::ReinterpretInt64)"),
    ("i32.extend8_s",       "makeUnary(UnaryOp::ExtendS8Int32)"),
    ("i32.extend16_s",      "makeUnary(UnaryOp::ExtendS16Int32)"),
    ("i64.extend8_s",       "makeUnary(UnaryOp::ExtendS8Int64)"),
    ("i64.extend16_s",      "makeUnary(UnaryOp::ExtendS16Int64)"),
    ("i64.extend32_s",      "makeUnary(UnaryOp::ExtendS32Int64)"),
    # atomic instructions
    ("memory.atomic.notify",    "makeAtomicNotify()"),
    ("memory.atomic.wait32",    "makeAtomicWait(Type::i32)"),
    ("memory.atomic.wait64",    "makeAtomicWait(Type::i64)"),
    ("atomic.fence",            "makeAtomicFence()"),
    ("pause",                   "makePause()"),
    ("i32.atomic.load8_u",      "makeLoad(Type::i32, /*signed=*/false, 1, /*isAtomic=*/true)"),
    ("i32.atomic.load16_u",     "makeLoad(Type::i32, /*signed=*/false, 2, /*isAtomic=*/true)"),
    ("i32.atomic.load",         "makeLoad(Type::i32, /*signed=*/false, 4, /*isAtomic=*/true)"),
    ("i64.atomic.load8_u",      "makeLoad(Type::i64, /*signed=*/false, 1, /*isAtomic=*/true)"),
    ("i64.atomic.load16_u",     "makeLoad(Type::i64, /*signed=*/false, 2, /*isAtomic=*/true)"),
    ("i64.atomic.load32_u",     "makeLoad(Type::i64, /*signed=*/false, 4, /*isAtomic=*/true)"),
    ("i64.atomic.load",         "makeLoad(Type::i64, /*signed=*/false, 8, /*isAtomic=*/true)"),
    ("i32.atomic.store8",       "makeStore(Type::i32, 1, /*isAtomic=*/true)"),
    ("i32.atomic.store16",      "makeStore(Type::i32, 2, /*isAtomic=*/true)"),
    ("i32.atomic.store",        "makeStore(Type::i32, 4, /*isAtomic=*/true)"),
    ("i64.atomic.store8",       "makeStore(Type::i64, 1, /*isAtomic=*/true)"),
    ("i64.atomic.store16",      "makeStore(Type::i64, 2, /*isAtomic=*/true)"),
    ("i64.atomic.store32",      "makeStore(Type::i64, 4, /*isAtomic=*/true)"),
    ("i64.atomic.store",        "makeStore(Type::i64, 8, /*isAtomic=*/true)"),
    ("i32.atomic.rmw8.add_u",   "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i32, 1)"),
    ("i32.atomic.rmw16.add_u",  "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i32, 2)"),
    ("i32.atomic.rmw.add",      "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i32, 4)"),
    ("i64.atomic.rmw8.add_u",   "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i64, 1)"),
    ("i64.atomic.rmw16.add_u",  "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i64, 2)"),
    ("i64.atomic.rmw32.add_u",  "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i64, 4)"),
    ("i64.atomic.rmw.add",      "makeAtomicRMW(AtomicRMWOp::RMWAdd, Type::i64, 8)"),
    ("i32.atomic.rmw8.sub_u",   "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i32, 1)"),
    ("i32.atomic.rmw16.sub_u",  "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i32, 2)"),
    ("i32.atomic.rmw.sub",      "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i32, 4)"),
    ("i64.atomic.rmw8.sub_u",   "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i64, 1)"),
    ("i64.atomic.rmw16.sub_u",  "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i64, 2)"),
    ("i64.atomic.rmw32.sub_u",  "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i64, 4)"),
    ("i64.atomic.rmw.sub",      "makeAtomicRMW(AtomicRMWOp::RMWSub, Type::i64, 8)"),
    ("i32.atomic.rmw8.and_u",   "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i32, 1)"),
    ("i32.atomic.rmw16.and_u",  "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i32, 2)"),
    ("i32.atomic.rmw.and",      "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i32, 4)"),
    ("i64.atomic.rmw8.and_u",   "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i64, 1)"),
    ("i64.atomic.rmw16.and_u",  "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i64, 2)"),
    ("i64.atomic.rmw32.and_u",  "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i64, 4)"),
    ("i64.atomic.rmw.and",      "makeAtomicRMW(AtomicRMWOp::RMWAnd, Type::i64, 8)"),
    ("i32.atomic.rmw8.or_u",    "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i32, 1)"),
    ("i32.atomic.rmw16.or_u",   "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i32, 2)"),
    ("i32.atomic.rmw.or",       "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i32, 4)"),
    ("i64.atomic.rmw8.or_u",    "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i64, 1)"),
    ("i64.atomic.rmw16.or_u",   "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i64, 2)"),
    ("i64.atomic.rmw32.or_u",   "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i64, 4)"),
    ("i64.atomic.rmw.or",       "makeAtomicRMW(AtomicRMWOp::RMWOr, Type::i64, 8)"),
    ("i32.atomic.rmw8.xor_u",   "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i32, 1)"),
    ("i32.atomic.rmw16.xor_u",  "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i32, 2)"),
    ("i32.atomic.rmw.xor",      "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i32, 4)"),
    ("i64.atomic.rmw8.xor_u",   "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i64, 1)"),
    ("i64.atomic.rmw16.xor_u",  "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i64, 2)"),
    ("i64.atomic.rmw32.xor_u",  "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i64, 4)"),
    ("i64.atomic.rmw.xor",      "makeAtomicRMW(AtomicRMWOp::RMWXor, Type::i64, 8)"),
    ("i32.atomic.rmw8.xchg_u",  "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i32, 1)"),
    ("i32.atomic.rmw16.xchg_u", "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i32, 2)"),
    ("i32.atomic.rmw.xchg",     "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i32, 4)"),
    ("i64.atomic.rmw8.xchg_u",  "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i64, 1)"),
    ("i64.atomic.rmw16.xchg_u", "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i64, 2)"),
    ("i64.atomic.rmw32.xchg_u", "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i64, 4)"),
    ("i64.atomic.rmw.xchg",     "makeAtomicRMW(AtomicRMWOp::RMWXchg, Type::i64, 8)"),
    ("i32.atomic.rmw8.cmpxchg_u",  "makeAtomicCmpxchg(Type::i32, 1)"),
    ("i32.atomic.rmw16.cmpxchg_u", "makeAtomicCmpxchg(Type::i32, 2)"),
    ("i32.atomic.rmw.cmpxchg",     "makeAtomicCmpxchg(Type::i32, 4)"),
    ("i64.atomic.rmw8.cmpxchg_u",  "makeAtomicCmpxchg(Type::i64, 1)"),
    ("i64.atomic.rmw16.cmpxchg_u", "makeAtomicCmpxchg(Type::i64, 2)"),
    ("i64.atomic.rmw32.cmpxchg_u", "makeAtomicCmpxchg(Type::i64, 4)"),
    ("i64.atomic.rmw.cmpxchg",     "makeAtomicCmpxchg(Type::i64, 8)"),
    # nontrapping float-to-int instructions
    ("i32.trunc_sat_f32_s", "makeUnary(UnaryOp::TruncSatSFloat32ToInt32)"),
    ("i32.trunc_sat_f32_u", "makeUnary(UnaryOp::TruncSatUFloat32ToInt32)"),
    ("i32.trunc_sat_f64_s", "makeUnary(UnaryOp::TruncSatSFloat64ToInt32)"),
    ("i32.trunc_sat_f64_u", "makeUnary(UnaryOp::TruncSatUFloat64ToInt32)"),
    ("i64.trunc_sat_f32_s", "makeUnary(UnaryOp::TruncSatSFloat32ToInt64)"),
    ("i64.trunc_sat_f32_u", "makeUnary(UnaryOp::TruncSatUFloat32ToInt64)"),
    ("i64.trunc_sat_f64_s", "makeUnary(UnaryOp::TruncSatSFloat64ToInt64)"),
    ("i64.trunc_sat_f64_u", "makeUnary(UnaryOp::TruncSatUFloat64ToInt64)"),
    # SIMD ops
    ("v128.load",            "makeLoad(Type::v128, /*signed=*/false, 16, /*isAtomic=*/false)"),
    ("v128.store",           "makeStore(Type::v128, 16, /*isAtomic=*/false)"),
    ("v128.const",           "makeConst(Type::v128)"),
    ("i8x16.shuffle",        "makeSIMDShuffle()"),
    ("i8x16.splat",          "makeUnary(UnaryOp::SplatVecI8x16)"),
    ("i8x16.extract_lane_s", "makeSIMDExtract(SIMDExtractOp::ExtractLaneSVecI8x16, 16)"),
    ("i8x16.extract_lane_u", "makeSIMDExtract(SIMDExtractOp::ExtractLaneUVecI8x16, 16)"),
    ("i8x16.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecI8x16, 16)"),
    ("i16x8.splat",          "makeUnary(UnaryOp::SplatVecI16x8)"),
    ("i16x8.extract_lane_s", "makeSIMDExtract(SIMDExtractOp::ExtractLaneSVecI16x8, 8)"),
    ("i16x8.extract_lane_u", "makeSIMDExtract(SIMDExtractOp::ExtractLaneUVecI16x8, 8)"),
    ("i16x8.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecI16x8, 8)"),
    ("i32x4.splat",          "makeUnary(UnaryOp::SplatVecI32x4)"),
    ("i32x4.extract_lane",   "makeSIMDExtract(SIMDExtractOp::ExtractLaneVecI32x4, 4)"),
    ("i32x4.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecI32x4, 4)"),
    ("i64x2.splat",          "makeUnary(UnaryOp::SplatVecI64x2)"),
    ("i64x2.extract_lane",   "makeSIMDExtract(SIMDExtractOp::ExtractLaneVecI64x2, 2)"),
    ("i64x2.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecI64x2, 2)"),
    ("f16x8.splat",          "makeUnary(UnaryOp::SplatVecF16x8)"),
    ("f16x8.extract_lane",   "makeSIMDExtract(SIMDExtractOp::ExtractLaneVecF16x8, 8)"),
    ("f16x8.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecF16x8, 8)"),
    ("f32x4.splat",          "makeUnary(UnaryOp::SplatVecF32x4)"),
    ("f32x4.extract_lane",   "makeSIMDExtract(SIMDExtractOp::ExtractLaneVecF32x4, 4)"),
    ("f32x4.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecF32x4, 4)"),
    ("f64x2.splat",          "makeUnary(UnaryOp::SplatVecF64x2)"),
    ("f64x2.extract_lane",   "makeSIMDExtract(SIMDExtractOp::ExtractLaneVecF64x2, 2)"),
    ("f64x2.replace_lane",   "makeSIMDReplace(SIMDReplaceOp::ReplaceLaneVecF64x2, 2)"),
    ("i8x16.eq",             "makeBinary(BinaryOp::EqVecI8x16)"),
    ("i8x16.ne",             "makeBinary(BinaryOp::NeVecI8x16)"),
    ("i8x16.lt_s",           "makeBinary(BinaryOp::LtSVecI8x16)"),
    ("i8x16.lt_u",           "makeBinary(BinaryOp::LtUVecI8x16)"),
    ("i8x16.gt_s",           "makeBinary(BinaryOp::GtSVecI8x16)"),
    ("i8x16.gt_u",           "makeBinary(BinaryOp::GtUVecI8x16)"),
    ("i8x16.le_s",           "makeBinary(BinaryOp::LeSVecI8x16)"),
    ("i8x16.le_u",           "makeBinary(BinaryOp::LeUVecI8x16)"),
    ("i8x16.ge_s",           "makeBinary(BinaryOp::GeSVecI8x16)"),
    ("i8x16.ge_u",           "makeBinary(BinaryOp::GeUVecI8x16)"),
    ("i16x8.eq",             "makeBinary(BinaryOp::EqVecI16x8)"),
    ("i16x8.ne",             "makeBinary(BinaryOp::NeVecI16x8)"),
    ("i16x8.lt_s",           "makeBinary(BinaryOp::LtSVecI16x8)"),
    ("i16x8.lt_u",           "makeBinary(BinaryOp::LtUVecI16x8)"),
    ("i16x8.gt_s",           "makeBinary(BinaryOp::GtSVecI16x8)"),
    ("i16x8.gt_u",           "makeBinary(BinaryOp::GtUVecI16x8)"),
    ("i16x8.le_s",           "makeBinary(BinaryOp::LeSVecI16x8)"),
    ("i16x8.le_u",           "makeBinary(BinaryOp::LeUVecI16x8)"),
    ("i16x8.ge_s",           "makeBinary(BinaryOp::GeSVecI16x8)"),
    ("i16x8.ge_u",           "makeBinary(BinaryOp::GeUVecI16x8)"),
    ("i32x4.eq",             "makeBinary(BinaryOp::EqVecI32x4)"),
    ("i32x4.ne",             "makeBinary(BinaryOp::NeVecI32x4)"),
    ("i32x4.lt_s",           "makeBinary(BinaryOp::LtSVecI32x4)"),
    ("i32x4.lt_u",           "makeBinary(BinaryOp::LtUVecI32x4)"),
    ("i32x4.gt_s",           "makeBinary(BinaryOp::GtSVecI32x4)"),
    ("i32x4.gt_u",           "makeBinary(BinaryOp::GtUVecI32x4)"),
    ("i32x4.le_s",           "makeBinary(BinaryOp::LeSVecI32x4)"),
    ("i32x4.le_u",           "makeBinary(BinaryOp::LeUVecI32x4)"),
    ("i32x4.ge_s",           "makeBinary(BinaryOp::GeSVecI32x4)"),
    ("i32x4.ge_u",           "makeBinary(BinaryOp::GeUVecI32x4)"),
    ("i64x2.eq",             "makeBinary(BinaryOp::EqVecI64x2)"),
    ("i64x2.ne",             "makeBinary(BinaryOp::NeVecI64x2)"),
    ("i64x2.lt_s",           "makeBinary(BinaryOp::LtSVecI64x2)"),
    ("i64x2.gt_s",           "makeBinary(BinaryOp::GtSVecI64x2)"),
    ("i64x2.le_s",           "makeBinary(BinaryOp::LeSVecI64x2)"),
    ("i64x2.ge_s",           "makeBinary(BinaryOp::GeSVecI64x2)"),
    ("f16x8.eq",             "makeBinary(BinaryOp::EqVecF16x8)"),
    ("f16x8.ne",             "makeBinary(BinaryOp::NeVecF16x8)"),
    ("f16x8.lt",             "makeBinary(BinaryOp::LtVecF16x8)"),
    ("f16x8.gt",             "makeBinary(BinaryOp::GtVecF16x8)"),
    ("f16x8.le",             "makeBinary(BinaryOp::LeVecF16x8)"),
    ("f16x8.ge",             "makeBinary(BinaryOp::GeVecF16x8)"),
    ("f32x4.eq",             "makeBinary(BinaryOp::EqVecF32x4)"),
    ("f32x4.ne",             "makeBinary(BinaryOp::NeVecF32x4)"),
    ("f32x4.lt",             "makeBinary(BinaryOp::LtVecF32x4)"),
    ("f32x4.gt",             "makeBinary(BinaryOp::GtVecF32x4)"),
    ("f32x4.le",             "makeBinary(BinaryOp::LeVecF32x4)"),
    ("f32x4.ge",             "makeBinary(BinaryOp::GeVecF32x4)"),
    ("f64x2.eq",             "makeBinary(BinaryOp::EqVecF64x2)"),
    ("f64x2.ne",             "makeBinary(BinaryOp::NeVecF64x2)"),
    ("f64x2.lt",             "makeBinary(BinaryOp::LtVecF64x2)"),
    ("f64x2.gt",             "makeBinary(BinaryOp::GtVecF64x2)"),
    ("f64x2.le",             "makeBinary(BinaryOp::LeVecF64x2)"),
    ("f64x2.ge",             "makeBinary(BinaryOp::GeVecF64x2)"),
    ("v128.not",             "makeUnary(UnaryOp::NotVec128)"),
    ("v128.and",             "makeBinary(BinaryOp::AndVec128)"),
    ("v128.or",              "makeBinary(BinaryOp::OrVec128)"),
    ("v128.xor",             "makeBinary(BinaryOp::XorVec128)"),
    ("v128.andnot",          "makeBinary(BinaryOp::AndNotVec128)"),
    ("v128.any_true",        "makeUnary(UnaryOp::AnyTrueVec128)"),
    ("v128.bitselect",       "makeSIMDTernary(SIMDTernaryOp::Bitselect)"),
    ("v128.load8_lane",      "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Load8LaneVec128, 1)"),
    ("v128.load16_lane",     "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Load16LaneVec128, 2)"),
    ("v128.load32_lane",     "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Load32LaneVec128, 4)"),
    ("v128.load64_lane",     "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Load64LaneVec128, 8)"),
    ("v128.store8_lane",     "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Store8LaneVec128, 1)"),
    ("v128.store16_lane",    "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Store16LaneVec128, 2)"),
    ("v128.store32_lane",    "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Store32LaneVec128, 4)"),
    ("v128.store64_lane",    "makeSIMDLoadStoreLane(SIMDLoadStoreLaneOp::Store64LaneVec128, 8)"),
    ("i8x16.popcnt",         "makeUnary(UnaryOp::PopcntVecI8x16)"),
    ("i8x16.abs",            "makeUnary(UnaryOp::AbsVecI8x16)"),
    ("i8x16.neg",            "makeUnary(UnaryOp::NegVecI8x16)"),
    ("i8x16.all_true",       "makeUnary(UnaryOp::AllTrueVecI8x16)"),
    ("i8x16.bitmask",        "makeUnary(UnaryOp::BitmaskVecI8x16)"),
    ("i8x16.shl",            "makeSIMDShift(SIMDShiftOp::ShlVecI8x16)"),
    ("i8x16.shr_s",          "makeSIMDShift(SIMDShiftOp::ShrSVecI8x16)"),
    ("i8x16.shr_u",          "makeSIMDShift(SIMDShiftOp::ShrUVecI8x16)"),
    ("i8x16.add",            "makeBinary(BinaryOp::AddVecI8x16)"),
    ("i8x16.add_sat_s",      "makeBinary(BinaryOp::AddSatSVecI8x16)"),
    ("i8x16.add_sat_u",      "makeBinary(BinaryOp::AddSatUVecI8x16)"),
    ("i8x16.sub",            "makeBinary(BinaryOp::SubVecI8x16)"),
    ("i8x16.sub_sat_s",      "makeBinary(BinaryOp::SubSatSVecI8x16)"),
    ("i8x16.sub_sat_u",      "makeBinary(BinaryOp::SubSatUVecI8x16)"),
    ("i8x16.min_s",          "makeBinary(BinaryOp::MinSVecI8x16)"),
    ("i8x16.min_u",          "makeBinary(BinaryOp::MinUVecI8x16)"),
    ("i8x16.max_s",          "makeBinary(BinaryOp::MaxSVecI8x16)"),
    ("i8x16.max_u",          "makeBinary(BinaryOp::MaxUVecI8x16)"),
    ("i8x16.avgr_u",         "makeBinary(BinaryOp::AvgrUVecI8x16)"),
    ("i16x8.abs",            "makeUnary(UnaryOp::AbsVecI16x8)"),
    ("i16x8.neg",            "makeUnary(UnaryOp::NegVecI16x8)"),
    ("i16x8.all_true",       "makeUnary(UnaryOp::AllTrueVecI16x8)"),
    ("i16x8.bitmask",        "makeUnary(UnaryOp::BitmaskVecI16x8)"),
    ("i16x8.shl",            "makeSIMDShift(SIMDShiftOp::ShlVecI16x8)"),
    ("i16x8.shr_s",          "makeSIMDShift(SIMDShiftOp::ShrSVecI16x8)"),
    ("i16x8.shr_u",          "makeSIMDShift(SIMDShiftOp::ShrUVecI16x8)"),
    ("i16x8.add",            "makeBinary(BinaryOp::AddVecI16x8)"),
    ("i16x8.add_sat_s",      "makeBinary(BinaryOp::AddSatSVecI16x8)"),
    ("i16x8.add_sat_u",      "makeBinary(BinaryOp::AddSatUVecI16x8)"),
    ("i16x8.sub",            "makeBinary(BinaryOp::SubVecI16x8)"),
    ("i16x8.sub_sat_s",      "makeBinary(BinaryOp::SubSatSVecI16x8)"),
    ("i16x8.sub_sat_u",      "makeBinary(BinaryOp::SubSatUVecI16x8)"),
    ("i16x8.mul",            "makeBinary(BinaryOp::MulVecI16x8)"),
    ("i16x8.min_s",          "makeBinary(BinaryOp::MinSVecI16x8)"),
    ("i16x8.min_u",          "makeBinary(BinaryOp::MinUVecI16x8)"),
    ("i16x8.max_s",          "makeBinary(BinaryOp::MaxSVecI16x8)"),
    ("i16x8.max_u",          "makeBinary(BinaryOp::MaxUVecI16x8)"),
    ("i16x8.avgr_u",         "makeBinary(BinaryOp::AvgrUVecI16x8)"),
    ("i16x8.q15mulr_sat_s",  "makeBinary(BinaryOp::Q15MulrSatSVecI16x8)"),
    ("i16x8.extmul_low_i8x16_s", "makeBinary(BinaryOp::ExtMulLowSVecI16x8)"),
    ("i16x8.extmul_high_i8x16_s", "makeBinary(BinaryOp::ExtMulHighSVecI16x8)"),
    ("i16x8.extmul_low_i8x16_u", "makeBinary(BinaryOp::ExtMulLowUVecI16x8)"),
    ("i16x8.extmul_high_i8x16_u", "makeBinary(BinaryOp::ExtMulHighUVecI16x8)"),
    ("i32x4.abs",            "makeUnary(UnaryOp::AbsVecI32x4)"),
    ("i32x4.neg",            "makeUnary(UnaryOp::NegVecI32x4)"),
    ("i32x4.all_true",       "makeUnary(UnaryOp::AllTrueVecI32x4)"),
    ("i32x4.bitmask",        "makeUnary(UnaryOp::BitmaskVecI32x4)"),
    ("i32x4.shl",            "makeSIMDShift(SIMDShiftOp::ShlVecI32x4)"),
    ("i32x4.shr_s",          "makeSIMDShift(SIMDShiftOp::ShrSVecI32x4)"),
    ("i32x4.shr_u",          "makeSIMDShift(SIMDShiftOp::ShrUVecI32x4)"),
    ("i32x4.add",            "makeBinary(BinaryOp::AddVecI32x4)"),
    ("i32x4.sub",            "makeBinary(BinaryOp::SubVecI32x4)"),
    ("i32x4.mul",            "makeBinary(BinaryOp::MulVecI32x4)"),
    ("i32x4.min_s",          "makeBinary(BinaryOp::MinSVecI32x4)"),
    ("i32x4.min_u",          "makeBinary(BinaryOp::MinUVecI32x4)"),
    ("i32x4.max_s",          "makeBinary(BinaryOp::MaxSVecI32x4)"),
    ("i32x4.max_u",          "makeBinary(BinaryOp::MaxUVecI32x4)"),
    ("i32x4.dot_i16x8_s",    "makeBinary(BinaryOp::DotSVecI16x8ToVecI32x4)"),
    ("i32x4.extmul_low_i16x8_s", "makeBinary(BinaryOp::ExtMulLowSVecI32x4)"),
    ("i32x4.extmul_high_i16x8_s", "makeBinary(BinaryOp::ExtMulHighSVecI32x4)"),
    ("i32x4.extmul_low_i16x8_u", "makeBinary(BinaryOp::ExtMulLowUVecI32x4)"),
    ("i32x4.extmul_high_i16x8_u", "makeBinary(BinaryOp::ExtMulHighUVecI32x4)"),
    ("i64x2.abs",            "makeUnary(UnaryOp::AbsVecI64x2)"),
    ("i64x2.neg",            "makeUnary(UnaryOp::NegVecI64x2)"),
    ("i64x2.all_true",       "makeUnary(UnaryOp::AllTrueVecI64x2)"),
    ("i64x2.bitmask",        "makeUnary(UnaryOp::BitmaskVecI64x2)"),
    ("i64x2.shl",            "makeSIMDShift(SIMDShiftOp::ShlVecI64x2)"),
    ("i64x2.shr_s",          "makeSIMDShift(SIMDShiftOp::ShrSVecI64x2)"),
    ("i64x2.shr_u",          "makeSIMDShift(SIMDShiftOp::ShrUVecI64x2)"),
    ("i64x2.add",            "makeBinary(BinaryOp::AddVecI64x2)"),
    ("i64x2.sub",            "makeBinary(BinaryOp::SubVecI64x2)"),
    ("i64x2.mul",            "makeBinary(BinaryOp::MulVecI64x2)"),
    ("i64x2.extmul_low_i32x4_s", "makeBinary(BinaryOp::ExtMulLowSVecI64x2)"),
    ("i64x2.extmul_high_i32x4_s", "makeBinary(BinaryOp::ExtMulHighSVecI64x2)"),
    ("i64x2.extmul_low_i32x4_u", "makeBinary(BinaryOp::ExtMulLowUVecI64x2)"),
    ("i64x2.extmul_high_i32x4_u", "makeBinary(BinaryOp::ExtMulHighUVecI64x2)"),
    ("f16x8.abs",            "makeUnary(UnaryOp::AbsVecF16x8)"),
    ("f16x8.neg",            "makeUnary(UnaryOp::NegVecF16x8)"),
    ("f16x8.sqrt",           "makeUnary(UnaryOp::SqrtVecF16x8)"),
    ("f16x8.add",            "makeBinary(BinaryOp::AddVecF16x8)"),
    ("f16x8.sub",            "makeBinary(BinaryOp::SubVecF16x8)"),
    ("f16x8.mul",            "makeBinary(BinaryOp::MulVecF16x8)"),
    ("f16x8.div",            "makeBinary(BinaryOp::DivVecF16x8)"),
    ("f16x8.min",            "makeBinary(BinaryOp::MinVecF16x8)"),
    ("f16x8.max",            "makeBinary(BinaryOp::MaxVecF16x8)"),
    ("f16x8.pmin",           "makeBinary(BinaryOp::PMinVecF16x8)"),
    ("f16x8.pmax",           "makeBinary(BinaryOp::PMaxVecF16x8)"),
    ("f16x8.ceil",           "makeUnary(UnaryOp::CeilVecF16x8)"),
    ("f16x8.floor",          "makeUnary(UnaryOp::FloorVecF16x8)"),
    ("f16x8.trunc",          "makeUnary(UnaryOp::TruncVecF16x8)"),
    ("f16x8.nearest",        "makeUnary(UnaryOp::NearestVecF16x8)"),
    ("f32x4.abs",            "makeUnary(UnaryOp::AbsVecF32x4)"),
    ("f32x4.neg",            "makeUnary(UnaryOp::NegVecF32x4)"),
    ("f32x4.sqrt",           "makeUnary(UnaryOp::SqrtVecF32x4)"),
    ("f32x4.add",            "makeBinary(BinaryOp::AddVecF32x4)"),
    ("f32x4.sub",            "makeBinary(BinaryOp::SubVecF32x4)"),
    ("f32x4.mul",            "makeBinary(BinaryOp::MulVecF32x4)"),
    ("f32x4.div",            "makeBinary(BinaryOp::DivVecF32x4)"),
    ("f32x4.min",            "makeBinary(BinaryOp::MinVecF32x4)"),
    ("f32x4.max",            "makeBinary(BinaryOp::MaxVecF32x4)"),
    ("f32x4.pmin",           "makeBinary(BinaryOp::PMinVecF32x4)"),
    ("f32x4.pmax",           "makeBinary(BinaryOp::PMaxVecF32x4)"),
    ("f32x4.ceil",           "makeUnary(UnaryOp::CeilVecF32x4)"),
    ("f32x4.floor",          "makeUnary(UnaryOp::FloorVecF32x4)"),
    ("f32x4.trunc",          "makeUnary(UnaryOp::TruncVecF32x4)"),
    ("f32x4.nearest",        "makeUnary(UnaryOp::NearestVecF32x4)"),
    ("f64x2.abs",            "makeUnary(UnaryOp::AbsVecF64x2)"),
    ("f64x2.neg",            "makeUnary(UnaryOp::NegVecF64x2)"),
    ("f64x2.sqrt",           "makeUnary(UnaryOp::SqrtVecF64x2)"),
    ("f64x2.add",            "makeBinary(BinaryOp::AddVecF64x2)"),
    ("f64x2.sub",            "makeBinary(BinaryOp::SubVecF64x2)"),
    ("f64x2.mul",            "makeBinary(BinaryOp::MulVecF64x2)"),
    ("f64x2.div",            "makeBinary(BinaryOp::DivVecF64x2)"),
    ("f64x2.min",            "makeBinary(BinaryOp::MinVecF64x2)"),
    ("f64x2.max",            "makeBinary(BinaryOp::MaxVecF64x2)"),
    ("f64x2.pmin",           "makeBinary(BinaryOp::PMinVecF64x2)"),
    ("f64x2.pmax",           "makeBinary(BinaryOp::PMaxVecF64x2)"),
    ("f64x2.ceil",           "makeUnary(UnaryOp::CeilVecF64x2)"),
    ("f64x2.floor",          "makeUnary(UnaryOp::FloorVecF64x2)"),
    ("f64x2.trunc",          "makeUnary(UnaryOp::TruncVecF64x2)"),
    ("f64x2.nearest",        "makeUnary(UnaryOp::NearestVecF64x2)"),
    ("i32x4.trunc_sat_f32x4_s",  "makeUnary(UnaryOp::TruncSatSVecF32x4ToVecI32x4)"),
    ("i32x4.trunc_sat_f32x4_u",  "makeUnary(UnaryOp::TruncSatUVecF32x4ToVecI32x4)"),
    ("f32x4.convert_i32x4_s",    "makeUnary(UnaryOp::ConvertSVecI32x4ToVecF32x4)"),
    ("f32x4.convert_i32x4_u",    "makeUnary(UnaryOp::ConvertUVecI32x4ToVecF32x4)"),
    ("v128.load8_splat",         "makeSIMDLoad(SIMDLoadOp::Load8SplatVec128, 1)"),
    ("v128.load16_splat",        "makeSIMDLoad(SIMDLoadOp::Load16SplatVec128, 2)"),
    ("v128.load32_splat",        "makeSIMDLoad(SIMDLoadOp::Load32SplatVec128, 4)"),
    ("v128.load64_splat",        "makeSIMDLoad(SIMDLoadOp::Load64SplatVec128, 8)"),
    ("v128.load8x8_s",           "makeSIMDLoad(SIMDLoadOp::Load8x8SVec128, 8)"),
    ("v128.load8x8_u",           "makeSIMDLoad(SIMDLoadOp::Load8x8UVec128, 8)"),
    ("v128.load16x4_s",          "makeSIMDLoad(SIMDLoadOp::Load16x4SVec128, 8)"),
    ("v128.load16x4_u",          "makeSIMDLoad(SIMDLoadOp::Load16x4UVec128, 8)"),
    ("v128.load32x2_s",          "makeSIMDLoad(SIMDLoadOp::Load32x2SVec128, 8)"),
    ("v128.load32x2_u",          "makeSIMDLoad(SIMDLoadOp::Load32x2UVec128, 8)"),
    ("v128.load32_zero",         "makeSIMDLoad(SIMDLoadOp::Load32ZeroVec128, 4)"),
    ("v128.load64_zero",         "makeSIMDLoad(SIMDLoadOp::Load64ZeroVec128, 8)"),
    ("i8x16.narrow_i16x8_s",     "makeBinary(BinaryOp::NarrowSVecI16x8ToVecI8x16)"),
    ("i8x16.narrow_i16x8_u",     "makeBinary(BinaryOp::NarrowUVecI16x8ToVecI8x16)"),
    ("i16x8.narrow_i32x4_s",     "makeBinary(BinaryOp::NarrowSVecI32x4ToVecI16x8)"),
    ("i16x8.narrow_i32x4_u",     "makeBinary(BinaryOp::NarrowUVecI32x4ToVecI16x8)"),
    ("i16x8.extend_low_i8x16_s",  "makeUnary(UnaryOp::ExtendLowSVecI8x16ToVecI16x8)"),
    ("i16x8.extend_high_i8x16_s", "makeUnary(UnaryOp::ExtendHighSVecI8x16ToVecI16x8)"),
    ("i16x8.extend_low_i8x16_u",  "makeUnary(UnaryOp::ExtendLowUVecI8x16ToVecI16x8)"),
    ("i16x8.extend_high_i8x16_u", "makeUnary(UnaryOp::ExtendHighUVecI8x16ToVecI16x8)"),
    ("i32x4.extend_low_i16x8_s",  "makeUnary(UnaryOp::ExtendLowSVecI16x8ToVecI32x4)"),
    ("i32x4.extend_high_i16x8_s", "makeUnary(UnaryOp::ExtendHighSVecI16x8ToVecI32x4)"),
    ("i32x4.extend_low_i16x8_u",  "makeUnary(UnaryOp::ExtendLowUVecI16x8ToVecI32x4)"),
    ("i32x4.extend_high_i16x8_u", "makeUnary(UnaryOp::ExtendHighUVecI16x8ToVecI32x4)"),
    ("i64x2.extend_low_i32x4_s",  "makeUnary(UnaryOp::ExtendLowSVecI32x4ToVecI64x2)"),
    ("i64x2.extend_high_i32x4_s", "makeUnary(UnaryOp::ExtendHighSVecI32x4ToVecI64x2)"),
    ("i64x2.extend_low_i32x4_u",  "makeUnary(UnaryOp::ExtendLowUVecI32x4ToVecI64x2)"),
    ("i64x2.extend_high_i32x4_u", "makeUnary(UnaryOp::ExtendHighUVecI32x4ToVecI64x2)"),
    ("i8x16.swizzle",             "makeBinary(BinaryOp::SwizzleVecI8x16)"),
    ("i16x8.extadd_pairwise_i8x16_s", "makeUnary(UnaryOp::ExtAddPairwiseSVecI8x16ToI16x8)"),
    ("i16x8.extadd_pairwise_i8x16_u", "makeUnary(UnaryOp::ExtAddPairwiseUVecI8x16ToI16x8)"),
    ("i32x4.extadd_pairwise_i16x8_s", "makeUnary(UnaryOp::ExtAddPairwiseSVecI16x8ToI32x4)"),
    ("i32x4.extadd_pairwise_i16x8_u", "makeUnary(UnaryOp::ExtAddPairwiseUVecI16x8ToI32x4)"),
    ("f64x2.convert_low_i32x4_s",     "makeUnary(UnaryOp::ConvertLowSVecI32x4ToVecF64x2)"),
    ("f64x2.convert_low_i32x4_u",     "makeUnary(UnaryOp::ConvertLowUVecI32x4ToVecF64x2)"),
    ("i32x4.trunc_sat_f64x2_s_zero",  "makeUnary(UnaryOp::TruncSatZeroSVecF64x2ToVecI32x4)"),
    ("i32x4.trunc_sat_f64x2_u_zero",  "makeUnary(UnaryOp::TruncSatZeroUVecF64x2ToVecI32x4)"),
    ("f32x4.demote_f64x2_zero",       "makeUnary(UnaryOp::DemoteZeroVecF64x2ToVecF32x4)"),
    ("f64x2.promote_low_f32x4",       "makeUnary(UnaryOp::PromoteLowVecF32x4ToVecF64x2)"),
    ("i16x8.trunc_sat_f16x8_s",  "makeUnary(UnaryOp::TruncSatSVecF16x8ToVecI16x8)"),
    ("i16x8.trunc_sat_f16x8_u",  "makeUnary(UnaryOp::TruncSatUVecF16x8ToVecI16x8)"),
    ("f16x8.convert_i16x8_s",    "makeUnary(UnaryOp::ConvertSVecI16x8ToVecF16x8)"),
    ("f16x8.convert_i16x8_u",    "makeUnary(UnaryOp::ConvertUVecI16x8ToVecF16x8)"),

    # relaxed SIMD ops
    ("i8x16.relaxed_swizzle", "makeBinary(BinaryOp::RelaxedSwizzleVecI8x16)"),
    ("i32x4.relaxed_trunc_f32x4_s", "makeUnary(UnaryOp::RelaxedTruncSVecF32x4ToVecI32x4)"),
    ("i32x4.relaxed_trunc_f32x4_u", "makeUnary(UnaryOp::RelaxedTruncUVecF32x4ToVecI32x4)"),
    ("i32x4.relaxed_trunc_f64x2_s_zero", "makeUnary(UnaryOp::RelaxedTruncZeroSVecF64x2ToVecI32x4)"),
    ("i32x4.relaxed_trunc_f64x2_u_zero", "makeUnary(UnaryOp::RelaxedTruncZeroUVecF64x2ToVecI32x4)"),
    ("f16x8.relaxed_madd", "makeSIMDTernary(SIMDTernaryOp::RelaxedMaddVecF16x8)"),
    ("f16x8.relaxed_nmadd", "makeSIMDTernary(SIMDTernaryOp::RelaxedNmaddVecF16x8)"),
    ("f32x4.relaxed_madd", "makeSIMDTernary(SIMDTernaryOp::RelaxedMaddVecF32x4)"),
    ("f32x4.relaxed_nmadd", "makeSIMDTernary(SIMDTernaryOp::RelaxedNmaddVecF32x4)"),
    ("f64x2.relaxed_madd", "makeSIMDTernary(SIMDTernaryOp::RelaxedMaddVecF64x2)"),
    ("f64x2.relaxed_nmadd", "makeSIMDTernary(SIMDTernaryOp::RelaxedNmaddVecF64x2)"),
    ("i8x16.laneselect", "makeSIMDTernary(SIMDTernaryOp::LaneselectI8x16)"),
    ("i16x8.laneselect", "makeSIMDTernary(SIMDTernaryOp::LaneselectI16x8)"),
    ("i32x4.laneselect", "makeSIMDTernary(SIMDTernaryOp::LaneselectI32x4)"),
    ("i64x2.laneselect", "makeSIMDTernary(SIMDTernaryOp::LaneselectI64x2)"),
    ("f32x4.relaxed_min", "makeBinary(BinaryOp::RelaxedMinVecF32x4)"),
    ("f32x4.relaxed_max", "makeBinary(BinaryOp::RelaxedMaxVecF32x4)"),
    ("f64x2.relaxed_min", "makeBinary(BinaryOp::RelaxedMinVecF64x2)"),
    ("f64x2.relaxed_max", "makeBinary(BinaryOp::RelaxedMaxVecF64x2)"),
    ("i16x8.relaxed_q15mulr_s", "makeBinary(BinaryOp::RelaxedQ15MulrSVecI16x8)"),
    ("i16x8.dot_i8x16_i7x16_s", "makeBinary(BinaryOp::DotI8x16I7x16SToVecI16x8)"),
    ("i32x4.dot_i8x16_i7x16_add_s", "makeSIMDTernary(SIMDTernaryOp::DotI8x16I7x16AddSToVecI32x4)"),

    # reference types instructions
    ("ref.null",             "makeRefNull()"),
    ("ref.is_null",          "makeRefIsNull()"),
    ("ref.func",             "makeRefFunc()"),
    ("ref.eq",               "makeRefEq()"),
    # table instructions
    ("table.get",            "makeTableGet()"),
    ("table.set",            "makeTableSet()"),
    ("table.size",           "makeTableSize()"),
    ("table.grow",           "makeTableGrow()"),
    ("table.fill",           "makeTableFill()"),
    ("table.copy",           "makeTableCopy()"),
    ("table.init",           "makeTableInit()"),
    ("elem.drop",            "makeElemDrop()"),
    # exception handling instructions
    ("try",                  "makeTry()"),
    ("try_table",            "makeTryTable()"),
    ("throw",                "makeThrow()"),
    ("rethrow",              "makeRethrow()"),
    ("throw_ref",            "makeThrowRef()"),
    # Multivalue pseudoinstructions
    ("tuple.make",           "makeTupleMake()"),
    ("tuple.extract",        "makeTupleExtract()"),
    ("tuple.drop",           "makeTupleDrop()"),
    ("pop",                  "makePop()"),
    # Typed function references instructions
    ("call_ref",             "makeCallRef(/*isReturn=*/false)"),
    ("return_call_ref",      "makeCallRef(/*isReturn=*/true)"),
    # Stack switching instructions
    ("cont.new",             "makeContNew()"),
    ("cont.bind",            "makeContBind()"),
    ("suspend",              "makeSuspend()"),
    ("resume",               "makeResume()"),
    ("resume_throw",         "makeResumeThrow()"),
    ("resume_throw_ref",     "makeResumeThrowRef()"),
    ("switch",               "makeStackSwitch()"),
    # GC
    ("ref.i31",              "makeRefI31(Unshared)"),
    ("ref.i31_shared",       "makeRefI31(Shared)"),
    ("i31.get_s",            "makeI31Get(true)"),
    ("i31.get_u",            "makeI31Get(false)"),
    ("ref.test",             "makeRefTest()"),
    ("ref.cast",             "makeRefCast(false)"),
    ("ref.cast_desc",        "makeRefCast(true)"),  # Deprecated
    ("ref.cast_desc_eq",     "makeRefCast(true)"),
    ("ref.get_desc",         "makeRefGetDesc()"),
    ("br_on_null",           "makeBrOnNull()"),
    ("br_on_non_null",       "makeBrOnNull(true)"),
    ("br_on_cast",           "makeBrOnCast(BrOnCast)"),
    ("br_on_cast_fail",      "makeBrOnCast(BrOnCastFail)"),
    ("br_on_cast_desc",      "makeBrOnCast(BrOnCastDescEq)"),  # Deprecated
    ("br_on_cast_desc_fail", "makeBrOnCast(BrOnCastDescEqFail)"),  # Deprecated
    ("br_on_cast_desc_eq",      "makeBrOnCast(BrOnCastDescEq)"),
    ("br_on_cast_desc_eq_fail", "makeBrOnCast(BrOnCastDescEqFail)"),
    ("struct.new",           "makeStructNew(false, false)"),
    ("struct.new_default",   "makeStructNew(true, false)"),
    ("struct.new_desc",      "makeStructNew(false, true)"),
    ("struct.new_default_desc", "makeStructNew(true, true)"),
    ("struct.get",           "makeStructGet()"),
    ("struct.get_s",         "makeStructGet(true)"),
    ("struct.get_u",         "makeStructGet(false)"),
    ("struct.atomic.get",    "makeAtomicStructGet()"),
    ("struct.atomic.get_s",  "makeAtomicStructGet(true)"),
    ("struct.atomic.get_u",  "makeAtomicStructGet(false)"),
    ("struct.set",           "makeStructSet()"),
    ("struct.atomic.set",    "makeAtomicStructSet()"),
    ("struct.atomic.rmw.add", "makeStructRMW(RMWAdd)"),
    ("struct.atomic.rmw.sub", "makeStructRMW(RMWSub)"),
    ("struct.atomic.rmw.and", "makeStructRMW(RMWAnd)"),
    ("struct.atomic.rmw.or", "makeStructRMW(RMWOr)"),
    ("struct.atomic.rmw.xor", "makeStructRMW(RMWXor)"),
    ("struct.atomic.rmw.xchg", "makeStructRMW(RMWXchg)"),
    ("struct.atomic.rmw.cmpxchg", "makeStructCmpxchg()"),
    ("array.new",            "makeArrayNew(false)"),
    ("array.new_default",    "makeArrayNew(true)"),
    ("array.new_data",       "makeArrayNewData()"),
    ("array.new_elem",       "makeArrayNewElem()"),
    ("array.new_fixed",      "makeArrayNewFixed()"),
    ("array.get",            "makeArrayGet()"),
    ("array.get_s",          "makeArrayGet(true)"),
    ("array.get_u",          "makeArrayGet(false)"),
    ("array.atomic.get",     "makeAtomicArrayGet()"),
    ("array.atomic.get_s",   "makeAtomicArrayGet(true)"),
    ("array.atomic.get_u",   "makeAtomicArrayGet(false)"),
    ("array.set",            "makeArraySet()"),
    ("array.atomic.set",     "makeAtomicArraySet()"),
    ("array.len",            "makeArrayLen()"),
    ("array.copy",           "makeArrayCopy()"),
    ("array.fill",           "makeArrayFill()"),
    ("array.init_data",      "makeArrayInitData()"),
    ("array.init_elem",      "makeArrayInitElem()"),
    ("array.atomic.rmw.add", "makeArrayRMW(RMWAdd)"),
    ("array.atomic.rmw.sub", "makeArrayRMW(RMWSub)"),
    ("array.atomic.rmw.and", "makeArrayRMW(RMWAnd)"),
    ("array.atomic.rmw.or",  "makeArrayRMW(RMWOr)"),
    ("array.atomic.rmw.xor", "makeArrayRMW(RMWXor)"),
    ("array.atomic.rmw.xchg", "makeArrayRMW(RMWXchg)"),
    ("array.atomic.rmw.cmpxchg", "makeArrayCmpxchg()"),
    ("ref.as_non_null",      "makeRefAs(RefAsNonNull)"),
    ("extern.internalize",   "makeRefAs(AnyConvertExtern)"),  # Deprecated
    ("extern.externalize",   "makeRefAs(ExternConvertAny)"),  # Deprecated
    ("any.convert_extern",   "makeRefAs(AnyConvertExtern)"),
    ("extern.convert_any",   "makeRefAs(ExternConvertAny)"),
    ("string.new_lossy_utf8_array",  "makeStringNew(StringNewLossyUTF8Array)"),
    ("string.new_wtf16_array", "makeStringNew(StringNewWTF16Array)"),
    ("string.from_code_point", "makeStringNew(StringNewFromCodePoint)"),
    ("string.const",         "makeStringConst()"),
    ("string.measure_utf8",  "makeStringMeasure(StringMeasureUTF8)"),
    ("string.measure_wtf16", "makeStringMeasure(StringMeasureWTF16)"),
    ("stringview_wtf16.length", "makeStringMeasure(StringMeasureWTF16)"),
    ("string.encode_lossy_utf8_array",   "makeStringEncode(StringEncodeLossyUTF8Array)"),
    ("string.encode_wtf16_array",  "makeStringEncode(StringEncodeWTF16Array)"),
    ("string.concat",        "makeStringConcat()"),
    ("string.eq",            "makeStringEq(StringEqEqual)"),
    ("string.compare",       "makeStringEq(StringEqCompare)"),
    ("string.test",          "makeStringTest()"),
    ("stringview_wtf16.get_codeunit", "makeStringWTF16Get()"),
    ("stringview_wtf16.slice",        "makeStringSliceWTF()"),
    # Ignored in input
    ("string.as_wtf16",               "ignore()"),
]


class CodePrinter:
    indents = 0

    def __enter__(self):
        CodePrinter.indents += 1

    def __exit__(self, *args):
        CodePrinter.indents -= 1

    def indent(self):
        # call in a 'with' statement
        return self

    def print_line(self, line):
        print("  " * CodePrinter.indents + line)


class Node:
    def __init__(self, expr=None, children=None, inst=None):
        # the expression to return if this is the string has ended
        self.expr = expr
        # map unique strings to children nodes
        self.children = children if children else {}
        # full instruction leading to this node
        self.inst = inst

    def _common_prefix(a, b):
        """Return the common prefix of two strings."""
        prefix = []
        while a and b and a[0] == b[0]:
            prefix.append(a[0])
            a = a[1:]
            b = b[1:]
        return "".join(prefix)

    def do_insert(self, full_inst, inst, expr):
        if not inst:
            assert self.expr is None, "Repeated instruction " + full_inst
            self.expr = expr
            self.inst = full_inst
            return
        # find key with shared prefix
        prefix, key = "", None
        for k in self.children:
            prefix = Node._common_prefix(inst, k)
            if prefix:
                key = k
                break
        if key is None:
            # unique prefix, insert and stop
            self.children[inst] = Node(expr, inst=full_inst)
            return
        key_remainder = key[len(prefix):]
        if key_remainder:
            # split key and move everything after the prefix to a new node
            child = self.children.pop(key)
            self.children[prefix] = Node(children={key_remainder: child})
            # update key for recursive insert
            key = prefix
        # chop off prefix and recurse
        self.children[key].do_insert(full_inst, inst[len(key):], expr)

    def insert(self, inst, expr):
        self.do_insert(inst, inst, expr)


def instruction_parser():
    """Build a trie out of all the instructions, then emit it as C++ code."""
    trie = Node()
    inst_length = 0
    for inst, expr in instructions:
        if inst in {"block", "loop", "if", "try", "then",
                    "else", "try_table"}:
            # These are either control flow handled manually or not real
            # instructions. Skip them.
            continue
        inst_length = max(inst_length, len(inst))
        trie.insert(inst, expr)

    printer = CodePrinter()

    printer.print_line("auto op = *keyword;")
    printer.print_line(f"char buf[{inst_length + 1}] = {{}};")
    printer.print_line("// Ensure we do not copy more than the buffer can hold")
    printer.print_line("if (op.size() >= sizeof(buf)) {")
    printer.print_line("  goto parse_error;")
    printer.print_line("}")
    printer.print_line("memcpy(buf, op.data(), op.size());")

    def print_leaf(expr, inst):
        if "()" in expr:
            expr = expr.replace("()", "(ctx, pos, annotations)")
        else:
            expr = expr.replace("(", "(ctx, pos, annotations, ")
        printer.print_line(f"if (op == \"{inst}\"sv) {{")
        with printer.indent():
            printer.print_line(f"CHECK_ERR({expr});")
            printer.print_line("return Ok{};")
        printer.print_line("}")
        printer.print_line("goto parse_error;")

    def emit(node, idx=0):
        assert node.children
        printer.print_line(f"switch (buf[{idx}]) {{")
        with printer.indent():
            if node.expr:
                printer.print_line("case '\\0':")
                with printer.indent():
                    print_leaf(node.expr, node.inst)
            children = sorted(node.children.items(), key=lambda pair: pair[0])
            for prefix, child in children:
                if child.children:
                    printer.print_line(f"case '{prefix[0]}': {{")
                    with printer.indent():
                        emit(child, idx + len(prefix))
                    printer.print_line("}")
                else:
                    assert child.expr
                    printer.print_line(f"case '{prefix[0]}':")
                    with printer.indent():
                        print_leaf(child.expr, child.inst)
            printer.print_line("default: goto parse_error;")
        printer.print_line("}")

    emit(trie)
    printer.print_line("parse_error:")
    with printer.indent():
        printer.print_line("return ctx.in.err(pos, \"unrecognized instruction\");")


def print_header():
    print("// DO NOT EDIT! This file generated by scripts/gen-s-parser.py\n")
    print("// clang-format off\n")
    print("// NOLINTBEGIN\n")


def print_footer():
    print("\n// NOLINTEND")
    print("\n// clang-format on")


def main():
    print_header()
    instruction_parser()
    print_footer()


if __name__ == "__main__":
    main()
