Ast.Make_instructionsSourcemodule X : sig ... endtype nonrec float_un_op = float_un_op = | Neg| Abs| Ceil| Floor| Trunc| Nearest| Sqrt| Convert of [ `I32 | `I64 ] * signage| Reinterprettype nonrec vec_un_op = vec_un_op = | VecNeg of vec_shape| VecAbs of vec_shape| VecSqrt of [ `F32 | `F64 ]| VecNot| VecTruncSat of [ `F32 | `F64 ] * signage| VecConvert of [ `F32 | `F64 ] * signage| VecExtend of [ `Low | `High ] * [ `_8 | `_16 | `_32 ] * signage| VecPromote| VecDemote| VecCeil of [ `F32 | `F64 ]| VecFloor of [ `F32 | `F64 ]| VecTrunc of [ `F32 | `F64 ]| VecNearest of [ `F32 | `F64 ]| VecPopcnt| VecExtAddPairwise of signage * [ `I8 | `I16 ]| VecRelaxedTrunc of signage| VecRelaxedTruncZero of signagetype nonrec vec_bin_op = vec_bin_op = | VecAdd of vec_shape| VecSub of vec_shape| VecMul of vec_shape| VecDiv of [ `F32 | `F64 ]| VecMin of signage option * vec_shape| VecMax of signage option * vec_shape| VecPMin of [ `F32 | `F64 ]| VecPMax of [ `F32 | `F64 ]| VecAvgr of [ `I8 | `I16 ]| VecQ15MulrSat| VecAddSat of signage * [ `I8 | `I16 ]| VecSubSat of signage * [ `I8 | `I16 ]| VecDot| VecEq of vec_shape| VecNe of vec_shape| VecLt of signage option * vec_shape| VecGt of signage option * vec_shape| VecLe of signage option * vec_shape| VecGe of signage option * vec_shape| VecAnd| VecOr| VecXor| VecAndNot| VecNarrow of signage * [ `I8 | `I16 ]| VecSwizzle| VecExtMulLow of signage * [ `_8 | `_16 | `_32 ]| VecExtMulHigh of signage * [ `_8 | `_16 | `_32 ]| VecRelaxedSwizzle| VecRelaxedMin of vec_shape| VecRelaxedMax of vec_shape| VecRelaxedQ15Mulr| VecRelaxedDottype nonrec vec_tern_op = vec_tern_op = | VecRelaxedMAdd of [ `F32 | `F64 ]| VecRelaxedNMAdd of [ `F32 | `F64 ]| VecRelaxedLaneSelect of vec_shape| VecRelaxedDotAddtype 'info instr_desc = | Block of {}| Loop of {}| If of {label : X.label;typ : blocktype option;if_block : ('info instr list, location) annotated;else_block : ('info instr list, location) annotated;}| TryTable of {label : X.label;typ : blocktype option;catches : catch list;block : ('info instr list, location) annotated;}| Try of {label : X.label;typ : blocktype option;block : ('info instr list, location) annotated;catches : (X.idx * ('info instr list, location) annotated) list;catch_all : ('info instr list, location) annotated option;}| Unreachable| Nop| Throw of X.idx| ThrowRef| ContNew of X.idx| ContBind of X.idx * X.idx| Suspend of X.idx| Resume of X.idx * on_clause list| ResumeThrow of X.idx * X.idx * on_clause list| ResumeThrowRef of X.idx * on_clause list| Switch of X.idx * X.idx| Br of X.idx| Br_if of X.idx| Br_table of X.idx list * X.idx| Br_on_null of X.idx| Br_on_non_null of X.idx| Br_on_cast of X.idx * X.reftype * X.reftype| Br_on_cast_fail of X.idx * X.reftype * X.reftype| Br_on_cast_desc_eq of X.idx * X.reftype * X.reftype| Br_on_cast_desc_eq_fail of X.idx * X.reftype * X.reftype| Hinted of bool * 'info instr| Return| Call of X.idx| CallRef of X.idx| CallIndirect of X.idx * X.typeuse| ReturnCall of X.idx| ReturnCallRef of X.idx| ReturnCallIndirect of X.idx * X.typeuse| Drop| Select of X.valtype list option| LocalGet of X.idx| LocalSet of X.idx| LocalTee of X.idx| GlobalGet of X.idx| GlobalSet of X.idx| Load of X.idx * memarg * num_type| LoadS of X.idx * memarg * [ `I32 | `I64 ] * [ `I8 | `I16 | `I32 ] * signage| Store of X.idx * memarg * num_type| StoreS of X.idx * memarg * [ `I32 | `I64 ] * [ `I8 | `I16 | `I32 ]| Atomic of X.idx * atomicop * memarg| AtomicFence| MemorySize of X.idx| MemoryGrow of X.idx| MemoryFill of X.idx| MemoryCopy of X.idx * X.idx| MemoryInit of X.idx * X.idx| DataDrop of X.idx| TableGet of X.idx| TableSet of X.idx| TableSize of X.idx| TableGrow of X.idx| TableFill of X.idx| TableCopy of X.idx * X.idx| TableInit of X.idx * X.idx| ElemDrop of X.idx| RefNull of X.heaptype| RefFunc of X.idx| RefIsNull| RefAsNonNull| RefEq| RefTest of X.reftype| RefCast of X.reftype| RefCastDescEq of X.reftype| RefGetDesc of X.idx| StructNew of X.idx| StructNewDefault of X.idx| StructNewDesc of X.idx| StructNewDefaultDesc of X.idx| StructGet of signage option * X.idx * X.idx| StructSet of X.idx * X.idx| ArrayNew of X.idx| ArrayNewDefault of X.idx| ArrayNewFixed of X.idx * Uint32.t| ArrayNewData of X.idx * X.idx| ArrayNewElem of X.idx * X.idx| ArrayGet of signage option * X.idx| ArraySet of X.idx| ArrayLen| ArrayFill of X.idx| ArrayCopy of X.idx * X.idx| ArrayInitData of X.idx * X.idx| ArrayInitElem of X.idx * X.idx| RefI31| I31Get of signage| Const of (X.int32_t, X.int64_t, X.f32_t, X.float_t) op| BinOp of (int_bin_op, int_bin_op, float_bin_op, float_bin_op) op| UnOp of (int_un_op, int_un_op, float_un_op, float_un_op) op| Add128| Sub128| MulWide of signage| VecConst of X.v128_t| VecUnOp of vec_un_op| VecBinOp of vec_bin_op| VecTest of vec_test_op| VecShift of vec_shift_op| VecBitmask of vec_bitmask_op| VecTernOp of vec_tern_op| VecBitselect| VecLoad of X.idx * vec_load_op * memarg| VecStore of X.idx * memarg| VecLoadLane of X.idx * [ `I8 | `I16 | `I32 | `I64 ] * memarg * int| VecStoreLane of X.idx * [ `I8 | `I16 | `I32 | `I64 ] * memarg * int| VecLoadSplat of X.idx * [ `I8 | `I16 | `I32 | `I64 ] * memarg| VecExtract of vec_shape * signage option * int| VecReplace of vec_shape * int| VecSplat of vec_shape| VecShuffle of string| I32WrapI64| I64ExtendI32 of signage| F32DemoteF64| F64PromoteF32| ExternConvertAny| AnyConvertExtern| Folded of 'info instr * 'info instr list| String of X.idx option * (string, location) annotated list| Char of Uchar.t| If_annotation of {cond : cond;then_body : ('info instr list, location) annotated;else_body : ('info instr list, location) annotated option;}