Milky2018/vcode/native_lowering does not have a README file

    DirectLoweringError

    pub suberror DirectLoweringError {
    InvalidCallAbi(message~ : String)
    } derive(Eq,
    Debug
    )

    DirectLoweringError::equal

    DirectLoweringError::not_equal

    DirectLoweringError::output

    fn DirectLoweringError::output(self : DirectLoweringError, logger : &Logger) -> Unit

    DirectLoweringError::to_string

    fn DirectLoweringError::to_string(self : DirectLoweringError) -> String

    AtomicRmwOp

    pub(all) enum AtomicRmwOp {
    Add
    Sub
    And
    Or
    Xor
    Exchange
    } derive(Eq, Hash,
    Debug
    )

    AtomicRmwOp::equal

    fn AtomicRmwOp::equal(AtomicRmwOp, AtomicRmwOp) -> Bool

    AtomicRmwOp::hash

    fn AtomicRmwOp::hash(self : AtomicRmwOp) -> Int

    AtomicRmwOp::hash_combine

    fn AtomicRmwOp::hash_combine(AtomicRmwOp, Hasher) -> Unit

    AtomicRmwOp::not_equal

    fn AtomicRmwOp::not_equal(x : AtomicRmwOp, y : AtomicRmwOp) -> Bool

    AtomicSpec

    A sequentially consistent atomic memory access. Weaker memory orders are not part of the current native-lowering contract.

    AtomicSpec::equal

    fn AtomicSpec::equal(AtomicSpec, AtomicSpec) -> Bool

    AtomicSpec::hash

    fn AtomicSpec::hash(self : AtomicSpec) -> Int

    AtomicSpec::hash_combine

    fn AtomicSpec::hash_combine(AtomicSpec, Hasher) -> Unit

    AtomicSpec::not_equal

    fn AtomicSpec::not_equal(x : AtomicSpec, y : AtomicSpec) -> Bool

    Block

    pub(all) struct Block {
    id : Int
    } derive(Eq, Hash,
    Debug
    )

    Block::equal

    fn Block::equal(Block, Block) -> Bool

    Block::hash

    fn Block::hash(self : Block) -> Int

    Block::hash_combine

    fn Block::hash_combine(Block, Hasher) -> Unit

    Block::not_equal

    fn Block::not_equal(x : Block, y : Block) -> Bool

    Block::to_repr

    CallAbiElaboration

    pub struct CallAbiElaboration {
    // private fields
    }

    CallAbiElaboration::new

    fn CallAbiElaboration::new(root_scope? : CallerRootScopeAbi, hidden_safepoints? : Array[HiddenSafepointAbi]) -> CallAbiElaboration

    CallerRootScopeAbi

    pub struct CallerRootScopeAbi {
    // private fields
    }

    DirectBuilder

    pub struct DirectBuilder {
    // private fields
    }

    Streaming construction state. It tracks handle types and one pending terminator, but never stores instructions, uses, CFG edges, or SSA definitions.

    DirectBuilder::block_parameters

    fn DirectBuilder::block_parameters(self : DirectBuilder, block : Block) -> Array[Value]

    DirectBuilder::branch

    fn DirectBuilder::branch(self : DirectBuilder, condition : Value, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

    DirectBuilder::branch_int_compare

    fn DirectBuilder::branch_int_compare(self : DirectBuilder, comparison : IntComparison, left : Value, right : Value, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

    DirectBuilder::branch_int_compare_immediate

    fn DirectBuilder::branch_int_compare_immediate(self : DirectBuilder, comparison : IntComparison, input : Value, bits : UInt64, true_target : Block, true_arguments : Array[Value], false_target : Block, false_arguments : Array[Value]) -> Unit

    DirectBuilder::create_block

    DirectBuilder::create_stack_object

    fn DirectBuilder::create_stack_object(self : DirectBuilder, size : Int, alignment : Int) ->
    StackObject

    DirectBuilder::emit_with_metadata

    fn DirectBuilder::emit_with_metadata(self : DirectBuilder, operation : Operation, operands : Array[Value], result_types : Array[
    ValueType
    ], metadata : InstructionMetadata) -> Array[Value]

    DirectBuilder::entry_block

    fn DirectBuilder::entry_block(self : DirectBuilder) -> Block

    DirectBuilder::finish

    fn DirectBuilder::finish(self : DirectBuilder) -> Unit raise DirectLoweringError

    DirectBuilder::jump

    fn DirectBuilder::jump(self : DirectBuilder, target : Block, arguments : Array[Value]) -> Unit

    DirectBuilder::new

    fn DirectBuilder::new(parameter_types : Array[
    ValueType
    ], sink : TargetSink, call_abi? : CallAbiElaboration, root_scope_capacity? : Int) -> DirectBuilder

    DirectBuilder::noreturn_call_with_metadata

    fn DirectBuilder::noreturn_call_with_metadata(self : DirectBuilder, call :
    NativeCall
    , operands : Array[Value], metadata : TerminatorMetadata) -> Unit

    DirectBuilder::parameters

    fn DirectBuilder::parameters(self : DirectBuilder) -> Array[Value]

    DirectBuilder::return_

    fn DirectBuilder::return_(self : DirectBuilder, values : Array[Value]) -> Unit

    DirectBuilder::set_terminator_source

    DirectBuilder::switch

    fn DirectBuilder::switch(self : DirectBuilder, value : Value, cases : Array[(UInt64, Block, Array[Value])], default_target : Block, default_arguments : Array[Value]) -> Unit

    DirectBuilder::switch_to_block

    fn DirectBuilder::switch_to_block(self : DirectBuilder, block : Block) -> Unit

    DirectBuilder::tail_call_with_metadata

    fn DirectBuilder::tail_call_with_metadata(self : DirectBuilder, call :
    NativeCall
    , operands : Array[Value], metadata : TerminatorMetadata) -> Unit

    DirectBuilder::trap

    DirectBuilder::value_type

    FloatBinaryOp

    pub(all) enum FloatBinaryOp {
    Add
    Sub
    Mul
    Div
    Min
    Max
    CopySign
    } derive(Eq, Hash,
    Debug
    )

    FloatBinaryOp::equal

    FloatBinaryOp::hash

    fn FloatBinaryOp::hash(self : FloatBinaryOp) -> Int

    FloatBinaryOp::hash_combine

    fn FloatBinaryOp::hash_combine(FloatBinaryOp, Hasher) -> Unit

    FloatBinaryOp::not_equal

    fn FloatBinaryOp::not_equal(x : FloatBinaryOp, y : FloatBinaryOp) -> Bool

    FloatComparison

    pub(all) enum FloatComparison {
    Equal
    NotEqual
    LessThan
    LessOrEqual
    GreaterThan
    GreaterOrEqual
    Ordered
    Unordered
    } derive(Eq, Hash,
    Debug
    )

    FloatComparison::equal

    FloatComparison::hash

    fn FloatComparison::hash(self : FloatComparison) -> Int

    FloatComparison::hash_combine

    fn FloatComparison::hash_combine(FloatComparison, Hasher) -> Unit

    FloatComparison::not_equal

    fn FloatComparison::not_equal(x : FloatComparison, y : FloatComparison) -> Bool

    FloatTernaryOp

    pub(all) enum FloatTernaryOp {
    FusedMultiplyAdd
    FusedNegatedMultiplyAdd
    FusedMultiplySubtract
    FusedNegatedMultiplySubtract
    } derive(Eq, Hash,
    Debug
    )

    FloatTernaryOp::equal

    FloatTernaryOp::hash

    fn FloatTernaryOp::hash(self : FloatTernaryOp) -> Int

    FloatTernaryOp::hash_combine

    fn FloatTernaryOp::hash_combine(FloatTernaryOp, Hasher) -> Unit

    FloatTernaryOp::not_equal

    fn FloatTernaryOp::not_equal(x : FloatTernaryOp, y : FloatTernaryOp) -> Bool

    FloatUnaryOp

    pub(all) enum FloatUnaryOp {
    Negate
    Absolute
    SquareRoot
    Ceil
    Floor
    Truncate
    Nearest
    } derive(Eq, Hash,
    Debug
    )

    FloatUnaryOp::equal

    FloatUnaryOp::hash

    fn FloatUnaryOp::hash(self : FloatUnaryOp) -> Int

    FloatUnaryOp::hash_combine

    fn FloatUnaryOp::hash_combine(FloatUnaryOp, Hasher) -> Unit

    FloatUnaryOp::not_equal

    fn FloatUnaryOp::not_equal(x : FloatUnaryOp, y : FloatUnaryOp) -> Bool

    HiddenSafepointAbi

    pub struct HiddenSafepointAbi {
    // private fields
    }

    InstructionMetadata

    InstructionMetadata::empty

    InstructionMetadata::equal

    InstructionMetadata::not_equal

    IntBinaryOp

    pub(all) enum IntBinaryOp {
    Add
    Sub
    Mul
    SignedDiv
    UnsignedDiv
    SignedRem
    UnsignedRem
    And
    Or
    Xor
    ShiftLeft
    SignedShiftRight
    UnsignedShiftRight
    RotateLeft
    RotateRight
    } derive(Eq, Hash,
    Debug
    )

    IntBinaryOp::equal

    fn IntBinaryOp::equal(IntBinaryOp, IntBinaryOp) -> Bool

    IntBinaryOp::hash

    fn IntBinaryOp::hash(self : IntBinaryOp) -> Int

    IntBinaryOp::hash_combine

    fn IntBinaryOp::hash_combine(IntBinaryOp, Hasher) -> Unit

    IntBinaryOp::not_equal

    fn IntBinaryOp::not_equal(x : IntBinaryOp, y : IntBinaryOp) -> Bool

    IntComparison

    pub(all) enum IntComparison {
    Equal
    NotEqual
    SignedLessThan
    SignedLessOrEqual
    SignedGreaterThan
    SignedGreaterOrEqual
    UnsignedLessThan
    UnsignedLessOrEqual
    UnsignedGreaterThan
    UnsignedGreaterOrEqual
    } derive(Eq, Hash,
    Debug
    )

    IntComparison::equal

    IntComparison::hash

    fn IntComparison::hash(self : IntComparison) -> Int

    IntComparison::hash_combine

    fn IntComparison::hash_combine(IntComparison, Hasher) -> Unit

    IntComparison::not_equal

    fn IntComparison::not_equal(x : IntComparison, y : IntComparison) -> Bool

    IntOverflowOp

    IntOverflowOp::equal

    IntOverflowOp::hash

    fn IntOverflowOp::hash(self : IntOverflowOp) -> Int

    IntOverflowOp::hash_combine

    fn IntOverflowOp::hash_combine(IntOverflowOp, Hasher) -> Unit

    IntOverflowOp::not_equal

    fn IntOverflowOp::not_equal(x : IntOverflowOp, y : IntOverflowOp) -> Bool

    IntUnaryOp

    pub(all) enum IntUnaryOp {
    Not
    CountLeadingZeros
    CountTrailingZeros
    PopulationCount
    } derive(Eq, Hash,
    Debug
    )

    IntUnaryOp::equal

    fn IntUnaryOp::equal(IntUnaryOp, IntUnaryOp) -> Bool

    IntUnaryOp::hash

    fn IntUnaryOp::hash(self : IntUnaryOp) -> Int

    IntUnaryOp::hash_combine

    fn IntUnaryOp::hash_combine(IntUnaryOp, Hasher) -> Unit

    IntUnaryOp::not_equal

    fn IntUnaryOp::not_equal(x : IntUnaryOp, y : IntUnaryOp) -> Bool

    Operation

    pub(all) enum Operation {
    I32Const(UInt)
    I64Const(UInt64)
    F32Const(UInt)
    F64Const(UInt64)
    V128Const(UInt64, UInt64)
    NullPtr
    NullGcRef
    CodeAddress(
    CodeSymbol
    )
    ExternalAddress(
    ExternalSymbol
    )
    DataAddress(
    DataSymbol
    )
    EnvironmentField(
    EnvironmentField
    ,
    EnvironmentFieldStability
    )
    StackAddress(
    StackObject
    )
    Copy
    Select
    SpectreGuard
    GcRefAddress
    GcRefFromBits
    PointerOffset
    ReferenceCompare(ReferenceComparison)
    IntUnary(IntUnaryOp)
    IntBinary(IntBinaryOp)
    IntBinaryImmediate(IntBinaryOp, UInt64)
    IntShiftImmediate(IntBinaryOp, Int)
    IntMultiplyAdd
    IntAddShiftedLeft(Int)
    IntHighMultiply(
    Signedness
    )
    IntWithOverflow(IntOverflowOp)
    IntCompare(IntComparison)
    FloatUnary(FloatUnaryOp)
    FloatBinary(FloatBinaryOp)
    FloatTernary(FloatTernaryOp)
    FloatCompare(FloatComparison)
    Convert(ConversionOp)
    Load(LoadSpec)
    LoadIndexed(LoadSpec, Int)
    Store(StoreSpec)
    StoreIndexed(StoreSpec, Int)
    AtomicLoad(AtomicSpec)
    AtomicStore(AtomicSpec)
    AtomicRmw(AtomicSpec, AtomicRmwOp)
    AtomicCompareExchange(AtomicSpec)
    AtomicFence
    Vector(VectorOp)
    VectorLoad(VectorLoadSpec)
    VectorStoreLane(VectorStoreLaneSpec)
    Call(
    NativeCall
    )
    Safepoint(
    SafepointKind
    )
    } derive(Eq,
    Debug
    )

    Operation::copy

    fn Operation::copy(self : Operation) -> Operation

    Operation::equal

    fn Operation::equal(Operation, Operation) -> Bool

    Operation::not_equal

    fn Operation::not_equal(x : Operation, y : Operation) -> Bool

    ReferenceComparison

    pub(all) enum ReferenceComparison {
    Equal
    NotEqual
    } derive(Eq, Hash,
    Debug
    )

    ReferenceComparison::equal

    ReferenceComparison::hash

    ReferenceComparison::hash_combine

    ReferenceComparison::not_equal

    StackMapArgumentRoots

    pub(all) enum StackMapArgumentRoots {
    Fixed(Int)
    I32ConstantOperand(Int)
    AllocationOperands
    } derive(Eq,
    Debug
    )

    How a hidden safepoint describes GC roots already present in its arguments.

    StackMapArgumentRoots::equal

    StackMapArgumentRoots::not_equal

    SwitchCase

    pub(all) struct SwitchCase {
    bits : UInt64
    target : Block
    arguments : Array[Value]
    } derive(Eq,
    Debug
    )

    SwitchCase::equal

    fn SwitchCase::equal(SwitchCase, SwitchCase) -> Bool

    SwitchCase::not_equal

    fn SwitchCase::not_equal(x : SwitchCase, y : SwitchCase) -> Bool

    TargetSink

    pub struct TargetSink {
    // private fields
    }

    Target-owned callbacks. Integer ids refer to target VCode values, blocks, and stack-object requests; DirectBuilder is the only component that exposes typed transient handles to legalization code.

    TargetSink::folds_unsigned_index_into_memory

    fn TargetSink::folds_unsigned_index_into_memory(self : TargetSink) -> Bool

    Whether an indexed memory operation consumes an unsigned 32-bit index without materializing a separate extension and address addition.

    TargetSink::new

    fn TargetSink::new(parameters : () -> Array[Int], entry_block : () -> Int, create_block : (Array[
    ValueType
    ]) -> (Int, Array[Int]), create_stack_object : (Int, Int) -> Int, switch_to_block : (Int) -> Unit, emit : (Int, Operation, Array[Int], Array[
    ValueType
    ],
    SourceLocation
    ?, Array[Int],
    StackMapMetadata
    ?) -> Array[Int], terminate : (Int, TargetTerminator, TargetTerminatorMetadata) -> Unit, finish : () -> Unit, folds_unsigned_index_into_memory? : Bool) -> TargetSink

    TargetSwitchCase

    pub(all) struct TargetSwitchCase {
    bits : UInt64
    target : Int
    arguments : Array[Int]
    }

    TargetTerminator

    pub(all) enum TargetTerminator {
    Jump(Int, Array[Int])
    Branch(Int, Int, Array[Int], Int, Array[Int])
    BranchIntCompare(IntComparison, Int, Int, Int, Array[Int], Int, Array[Int])
    BranchIntCompareImmediate(IntComparison, Int, UInt64, Int, Array[Int], Int, Array[Int])
    Switch(Int, Array[TargetSwitchCase], Int, Array[Int])
    Return(Array[Int])
    TailCall(
    NativeCall
    , Array[Int])
    NoReturnCall(
    NativeCall
    , Array[Int])
    Trap(
    TrapReason
    )
    }

    TargetTerminatorMetadata

    pub(all) struct TargetTerminatorMetadata {
    source :
    SourceLocation
    ?
    live_gc_roots : Array[Int]
    }

    Terminator

    Terminator::equal

    fn Terminator::equal(Terminator, Terminator) -> Bool

    Terminator::not_equal

    fn Terminator::not_equal(x : Terminator, y : Terminator) -> Bool

    TerminatorMetadata

    pub(all) struct TerminatorMetadata {
    source :
    SourceLocation
    ?
    live_gc_roots : Array[Value]
    } derive(Eq,
    Debug
    )

    TerminatorMetadata::equal

    TerminatorMetadata::not_equal

    Value

    pub(all) struct Value {
    id : Int
    } derive(Eq, Hash,
    Debug
    )

    Opaque handles used only while one MilkIR function is streamed into a target selector. They do not own an SSA graph.

    Value::equal

    fn Value::equal(Value, Value) -> Bool

    Value::hash

    fn Value::hash(self : Value) -> Int

    Value::hash_combine

    fn Value::hash_combine(Value, Hasher) -> Unit

    Value::not_equal

    fn Value::not_equal(x : Value, y : Value) -> Bool

    Value::to_repr

    VectorBitwiseOp

    pub(all) enum VectorBitwiseOp {
    Not
    And
    Or
    Xor
    AndNot
    BitSelect
    } derive(Eq, Hash,
    Debug
    )

    VectorBitwiseOp::equal

    VectorBitwiseOp::hash

    fn VectorBitwiseOp::hash(self : VectorBitwiseOp) -> Int

    VectorBitwiseOp::hash_combine

    fn VectorBitwiseOp::hash_combine(VectorBitwiseOp, Hasher) -> Unit

    VectorBitwiseOp::not_equal

    fn VectorBitwiseOp::not_equal(x : VectorBitwiseOp, y : VectorBitwiseOp) -> Bool

    VectorFloatBinaryOp

    pub(all) enum VectorFloatBinaryOp {
    Add
    Sub
    Mul
    Div
    Min
    Max
    PseudoMin
    PseudoMax
    } derive(Eq, Hash,
    Debug
    )

    VectorFloatBinaryOp::equal

    VectorFloatBinaryOp::hash

    VectorFloatBinaryOp::hash_combine

    VectorFloatBinaryOp::not_equal

    VectorFloatComparison

    pub(all) enum VectorFloatComparison {
    Equal
    NotEqual
    LessThan
    LessOrEqual
    GreaterThan
    GreaterOrEqual
    } derive(Eq, Hash,
    Debug
    )

    VectorFloatComparison::equal

    VectorFloatComparison::hash

    VectorFloatComparison::hash_combine

    VectorFloatComparison::not_equal

    VectorFloatUnaryOp

    pub(all) enum VectorFloatUnaryOp {
    Absolute
    Negate
    SquareRoot
    Ceil
    Floor
    Truncate
    Nearest
    } derive(Eq, Hash,
    Debug
    )

    VectorFloatUnaryOp::equal

    VectorFloatUnaryOp::hash

    fn VectorFloatUnaryOp::hash(self : VectorFloatUnaryOp) -> Int

    VectorFloatUnaryOp::hash_combine

    fn VectorFloatUnaryOp::hash_combine(VectorFloatUnaryOp, Hasher) -> Unit

    VectorFloatUnaryOp::not_equal

    VectorHalf

    pub(all) enum VectorHalf {
    Low
    High
    } derive(Eq, Hash,
    Debug
    )

    VectorHalf::equal

    fn VectorHalf::equal(VectorHalf, VectorHalf) -> Bool

    VectorHalf::hash

    fn VectorHalf::hash(self : VectorHalf) -> Int

    VectorHalf::hash_combine

    fn VectorHalf::hash_combine(VectorHalf, Hasher) -> Unit

    VectorHalf::not_equal

    fn VectorHalf::not_equal(x : VectorHalf, y : VectorHalf) -> Bool

    VectorIntBinaryOp

    VectorIntBinaryOp::equal

    VectorIntBinaryOp::hash

    fn VectorIntBinaryOp::hash(self : VectorIntBinaryOp) -> Int

    VectorIntBinaryOp::hash_combine

    fn VectorIntBinaryOp::hash_combine(VectorIntBinaryOp, Hasher) -> Unit

    VectorIntBinaryOp::not_equal

    fn VectorIntBinaryOp::not_equal(x : VectorIntBinaryOp, y : VectorIntBinaryOp) -> Bool

    VectorIntComparison

    VectorIntComparison::equal

    VectorIntComparison::hash

    VectorIntComparison::hash_combine

    VectorIntComparison::not_equal

    VectorIntShiftOp

    VectorIntShiftOp::equal

    VectorIntShiftOp::hash

    fn VectorIntShiftOp::hash(self : VectorIntShiftOp) -> Int

    VectorIntShiftOp::hash_combine

    fn VectorIntShiftOp::hash_combine(VectorIntShiftOp, Hasher) -> Unit

    VectorIntShiftOp::not_equal

    fn VectorIntShiftOp::not_equal(x : VectorIntShiftOp, y : VectorIntShiftOp) -> Bool

    VectorIntUnaryOp

    pub(all) enum VectorIntUnaryOp {
    Absolute
    Negate
    PopulationCount
    ExtendAddPairwise(
    Signedness
    )
    } derive(Eq, Hash,
    Debug
    )

    VectorIntUnaryOp::equal

    VectorIntUnaryOp::hash

    fn VectorIntUnaryOp::hash(self : VectorIntUnaryOp) -> Int

    VectorIntUnaryOp::hash_combine

    fn VectorIntUnaryOp::hash_combine(VectorIntUnaryOp, Hasher) -> Unit

    VectorIntUnaryOp::not_equal

    fn VectorIntUnaryOp::not_equal(x : VectorIntUnaryOp, y : VectorIntUnaryOp) -> Bool

    VectorLane

    pub(all) enum VectorLane {
    I8x16
    I16x8
    I32x4
    I64x2
    F32x4
    F64x2
    } derive(Eq, Hash,
    Debug
    )

    VectorLane::equal

    fn VectorLane::equal(VectorLane, VectorLane) -> Bool

    VectorLane::hash

    fn VectorLane::hash(self : VectorLane) -> Int

    VectorLane::hash_combine

    fn VectorLane::hash_combine(VectorLane, Hasher) -> Unit

    VectorLane::not_equal

    fn VectorLane::not_equal(x : VectorLane, y : VectorLane) -> Bool

    VectorLoadKind

    VectorLoadKind::equal

    VectorLoadKind::hash

    fn VectorLoadKind::hash(self : VectorLoadKind) -> Int

    VectorLoadKind::hash_combine

    fn VectorLoadKind::hash_combine(VectorLoadKind, Hasher) -> Unit

    VectorLoadKind::not_equal

    fn VectorLoadKind::not_equal(x : VectorLoadKind, y : VectorLoadKind) -> Bool

    VectorLoadSpec

    VectorLoadSpec::equal

    VectorLoadSpec::hash

    fn VectorLoadSpec::hash(self : VectorLoadSpec) -> Int

    VectorLoadSpec::hash_combine

    fn VectorLoadSpec::hash_combine(VectorLoadSpec, Hasher) -> Unit

    VectorLoadSpec::not_equal

    fn VectorLoadSpec::not_equal(x : VectorLoadSpec, y : VectorLoadSpec) -> Bool

    VectorOp

    pub(all) enum VectorOp {
    Splat(VectorLane)
    ExtractLane(VectorLane, Int,
    Signedness
    ?)
    ReplaceLane(VectorLane, Int)
    Shuffle(FixedArray[Int])
    Swizzle
    Bitwise(VectorBitwiseOp)
    IntUnary(VectorLane, VectorIntUnaryOp)
    IntBinary(VectorLane, VectorIntBinaryOp)
    IntShift(VectorLane, VectorIntShiftOp)
    IntCompare(VectorLane, VectorIntComparison)
    FloatUnary(VectorLane, VectorFloatUnaryOp)
    FloatBinary(VectorLane, VectorFloatBinaryOp)
    FloatTernary(VectorLane, FloatTernaryOp)
    FloatCompare(VectorLane, VectorFloatComparison)
    Predicate(VectorPredicateOp)
    Convert(VectorConversionOp)
    Relaxed(VectorRelaxedOp)
    } derive(Eq,
    Debug
    )

    VectorOp::equal

    fn VectorOp::equal(VectorOp, VectorOp) -> Bool

    VectorOp::not_equal

    fn VectorOp::not_equal(x : VectorOp, y : VectorOp) -> Bool

    VectorOp::to_repr

    VectorPredicateOp

    pub(all) enum VectorPredicateOp {
    AnyTrue
    AllTrue(VectorLane)
    BitMask(VectorLane)
    } derive(Eq, Hash,
    Debug
    )

    VectorPredicateOp::equal

    VectorPredicateOp::hash

    fn VectorPredicateOp::hash(self : VectorPredicateOp) -> Int

    VectorPredicateOp::hash_combine

    fn VectorPredicateOp::hash_combine(VectorPredicateOp, Hasher) -> Unit

    VectorPredicateOp::not_equal

    fn VectorPredicateOp::not_equal(x : VectorPredicateOp, y : VectorPredicateOp) -> Bool

    VectorRelaxedOp

    pub(all) enum VectorRelaxedOp {
    Swizzle
    FloatToInt(VectorLane, VectorLane,
    Signedness
    )
    FusedMultiplyAdd(VectorLane, FloatTernaryOp)
    LaneSelect(VectorLane)
    Min(VectorLane)
    Max(VectorLane)
    Q15MultiplyRoundedSigned
    Dot8To16Signed
    Dot8To32AddSigned
    } derive(Eq, Hash,
    Debug
    )

    VectorRelaxedOp::equal

    VectorRelaxedOp::hash

    fn VectorRelaxedOp::hash(self : VectorRelaxedOp) -> Int

    VectorRelaxedOp::hash_combine

    fn VectorRelaxedOp::hash_combine(VectorRelaxedOp, Hasher) -> Unit

    VectorRelaxedOp::not_equal

    fn VectorRelaxedOp::not_equal(x : VectorRelaxedOp, y : VectorRelaxedOp) -> Bool

    VectorStoreLaneSpec

    pub struct VectorStoreLaneSpec {
    lane : VectorLane
    lane_index : Int
    offset : UInt64
    endianness :
    Endianness

    trap :
    TrapReason
    ?
    } derive(Eq, Hash,
    Debug
    )

    VectorStoreLaneSpec::equal

    VectorStoreLaneSpec::hash

    VectorStoreLaneSpec::hash_combine

    VectorStoreLaneSpec::new

    VectorStoreLaneSpec::not_equal

    verify_call_operands

    fn verify_call_operands(call :
    NativeCall
    , operands : Array[
    ValueType
    ], context : String) -> String?

    verify_operation_contract