Enum spirv_utils::instruction::Instruction [] [src]

pub enum Instruction {
    Nop,
    Undef {
        result_type: TypeId,
        result_id: ResultId,
    },
    SourceContinued {
        src: String,
    },
    Source {
        src_lang: SrcLang,
        version: u32,
        file: ValueId,
        src: Option<String>,
    },
    SourceExtension {
        extension: String,
    },
    Name {
        id: Id,
        name: String,
    },
    MemberName {
        type_id: TypeId,
        member: u32,
        name: String,
    },
    String {
        result_id: ResultId,
        string: String,
    },
    Line {
        file: ValueId,
        line: u32,
        col: u32,
    },
    NoLine,
    Decorate {
        target: Id,
        decoration: Decoration,
    },
    MemberDecorate {
        target: TypeId,
        member: u32,
        decoration: Decoration,
    },
    DecorationGroup {
        result_id: ResultId,
    },
    GroupDecorate {
        grp: ValueId,
        targets: Box<[Id]>,
    },
    GroupMemberDecorate {
        grp: ValueId,
        targets: Box<[(TypeId, u32)]>,
    },
    Extension {
        name: String,
    },
    ExtInstImport {
        result_id: ResultId,
        name: String,
    },
    ExtInst {
        result_type: TypeId,
        result_id: ResultId,
        set: ValueId,
        instruction: u32,
        operands: Box<[Id]>,
    },
    MemoryModel {
        addressing_model: AddressingModel,
        memory_model: MemoryModel,
    },
    EntryPoint {
        execution_model: ExecutionModel,
        func: ValueId,
        name: String,
        interface: Box<[Id]>,
    },
    ExecutionMode {
        execution_mode: ExecutionMode,
    },
    Capability {
        capability: Capability,
    },
    TypeVoid {
        result_type: TypeId,
    },
    TypeBool {
        result_type: TypeId,
    },
    TypeInt {
        result_type: TypeId,
        width: u32,
        signed: bool,
    },
    TypeFloat {
        result_type: TypeId,
        width: u32,
    },
    TypeVector {
        result_type: TypeId,
        type_id: TypeId,
        len: u32,
    },
    TypeMatrix {
        result_type: TypeId,
        type_id: TypeId,
        cols: u32,
    },
    TypeImage {
        result_type: TypeId,
        type_id: TypeId,
        dim: Dim,
        depth: u32,
        arrayed: bool,
        multisampled: bool,
        sampled: u32,
        image_format: ImageFormat,
        access_qualifier: Option<AccessQualifier>,
    },
    TypeSampler {
        result_type: TypeId,
    },
    TypeSampledImage {
        result_type: TypeId,
        image: TypeId,
    },
    TypeArray {
        result_type: TypeId,
        element: TypeId,
        len: ValueId,
    },
    TypeRuntimeArray {
        result_type: TypeId,
        element: TypeId,
    },
    TypeStruct {
        result_type: TypeId,
        fields: Box<[TypeId]>,
    },
    TypeOpaque {
        result_type: TypeId,
        name: String,
    },
    TypePointer {
        result_type: TypeId,
        storage_class: StorageClass,
        pointee: TypeId,
    },
    TypeFunction {
        result_type: TypeId,
        return_ty: TypeId,
        params: Box<[TypeId]>,
    },
    TypeEvent {
        result_type: TypeId,
    },
    TypeDeviceEvent {
        result_type: TypeId,
    },
    TypeReserveId {
        result_type: TypeId,
    },
    TypeQueue {
        result_type: TypeId,
    },
    TypePipe {
        result_type: TypeId,
    },
    TypeForwardPointer {
        type_id: TypeId,
        storage_class: StorageClass,
    },
    ConstantTrue {
        result_type: TypeId,
        result_id: ResultId,
    },
    ConstantFalse {
        result_type: TypeId,
        result_id: ResultId,
    },
    Constant {
        result_type: TypeId,
        result_id: ResultId,
        val: Box<[u32]>,
    },
    ConstantComposite {
        result_type: TypeId,
        result_id: ResultId,
        flds: Box<[ValueId]>,
    },
    ConstantSampler {
        result_type: TypeId,
        result_id: ResultId,
        sampler_addressing_mode: SamplerAddressingMode,
        normalized: bool,
        sampler_filter_mode: SamplerFilterMode,
    },
    ConstantNull {
        result_type: TypeId,
        result_id: ResultId,
    },
    SpecConstantTrue {
        result_type: TypeId,
        result_id: ResultId,
    },
    SpecConstantFalse {
        result_type: TypeId,
        result_id: ResultId,
    },
    SpecConstant {
        result_type: TypeId,
        result_id: ResultId,
        val: Box<[u32]>,
    },
    SpecConstantComposite {
        result_type: TypeId,
        result_id: ResultId,
        flds: Box<[ValueId]>,
    },
    SpecConstantOp {
        result_type: TypeId,
        result_id: ResultId,
        num: u32,
        operands: Box<[ValueId]>,
    },
    Variable {
        result_type: TypeId,
        result_id: ResultId,
        storage_class: StorageClass,
        init: ValueId,
    },
    ImageTexelPointer {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        sample: ValueId,
    },
    Load {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
        memory_access: MemoryAccess,
    },
    Store {
        ptr: ValueId,
        obj: ValueId,
        memory_access: MemoryAccess,
    },
    CopyMemory {
        target: ValueId,
        src: ValueId,
        memory_access: MemoryAccess,
    },
    CopyMemorySized {
        target: ValueId,
        src: ValueId,
        size: ValueId,
        memory_access: MemoryAccess,
    },
    AccessChain {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        indices: Box<[ValueId]>,
    },
    InBoundsAccessChain {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        indices: Box<[ValueId]>,
    },
    PtrAccessChain {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        element: ValueId,
        indices: Box<[ValueId]>,
    },
    ArrayLength {
        result_type: TypeId,
        result_id: ResultId,
        obj: ValueId,
        member: u32,
    },
    GenericPtrMemSemantics {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
    },
    InBoundsPtrAccessChain {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        element: ValueId,
        indices: Box<[ValueId]>,
    },
    Function {
        result_type: TypeId,
        result_id: ResultId,
        function_control: FunctionControl,
        fn_ty: TypeId,
    },
    FunctionParameter {
        result_type: TypeId,
        result_id: ResultId,
    },
    FunctionEnd,
    FunctionCall {
        result_type: TypeId,
        result_id: ResultId,
        func: ValueId,
        args: Box<[ValueId]>,
    },
    SampledImage {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        sampler: ValueId,
    },
    ImageSampleImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleDrefImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleDrefExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleProjImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleProjExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleProjDrefImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSampleProjDrefExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageFetch {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageGather {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        component: ValueId,
        image_operands: ImageOperands,
    },
    ImageDrefGather {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageRead {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageWrite {
        image: ValueId,
        coord: ValueId,
        texel: ValueId,
        image_operands: ImageOperands,
    },
    Image {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageQueryFormat {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageQueryOrder {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageQuerySizeLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        lod: ValueId,
    },
    ImageQuerySize {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageQueryLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
    },
    ImageQueryLevels {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageQuerySamples {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
    },
    ImageSparseSampleImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseSampleExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseSampleDrefImplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseSampleDrefExplicitLod {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseFetch {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseGather {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        component: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseDrefGather {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        d_ref: ValueId,
        image_operands: ImageOperands,
    },
    ImageSparseTexelsResident {
        result_type: TypeId,
        result_id: ResultId,
        resident_code: ValueId,
    },
    ImageSparseRead {
        result_type: TypeId,
        result_id: ResultId,
        image: ValueId,
        coord: ValueId,
        image_operands: ImageOperands,
    },
    ConvertFToU {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    ConvertFToS {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    ConvertSToF {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    ConvertUToF {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    UConvert {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    SConvert {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    FConvert {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    QuantizeToF16 {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    ConvertPtrToU {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    SatConvertSToU {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    SatConvertUToS {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    ConvertUToPtr {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    PtrCastToGeneric {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    GenericCastToPtr {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    GenericCastToPtrExplicit {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
        storage_class: StorageClass,
    },
    Bitcast {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    VectorExtractDynamic {
        result_type: TypeId,
        result_id: ResultId,
        vector: ValueId,
        index: ValueId,
    },
    VectorInsertDynamic {
        result_type: TypeId,
        result_id: ResultId,
        vector: ValueId,
        component: ValueId,
        index: ValueId,
    },
    VectorShuffle {
        result_type: TypeId,
        result_id: ResultId,
        vector_1: ValueId,
        vector_2: ValueId,
        components: Box<[u32]>,
    },
    CompositeConstruct {
        result_type: TypeId,
        result_id: ResultId,
        fields: Box<[ValueId]>,
    },
    CompositeExtract {
        result_type: TypeId,
        result_id: ResultId,
        obj: ValueId,
        indices: Box<[u32]>,
    },
    CompositeInsert {
        result_type: TypeId,
        result_id: ResultId,
        obj: ValueId,
        composite: ValueId,
        indices: Box<[u32]>,
    },
    CopyObject {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    Transpose {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    SNegate {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    FNegate {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    IAdd {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FAdd {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    ISub {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FSub {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    IMul {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FMul {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    UDiv {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SDiv {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FDiv {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    UMod {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SRem {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SMod {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FRem {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FMod {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    VectorTimesScalar {
        result_type: TypeId,
        result_id: ResultId,
        vector: ValueId,
        scalar: ValueId,
    },
    MatrixTimesScalar {
        result_type: TypeId,
        result_id: ResultId,
        matrix: ValueId,
        scalar: ValueId,
    },
    VectorTimesMatrix {
        result_type: TypeId,
        result_id: ResultId,
        vector: ValueId,
        matrix: ValueId,
    },
    MatrixTimesVector {
        result_type: TypeId,
        result_id: ResultId,
        matrix: ValueId,
        vector: ValueId,
    },
    MatrixTimesMatrix {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    OuterProduct {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    Dot {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    IAddCarry {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    ISubBorrow {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    UMulExtended {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SMulExtended {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    ShiftRightLogical {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        shift: ValueId,
    },
    ShiftRightArithmetic {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        shift: ValueId,
    },
    ShiftLeftLogical {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        shift: ValueId,
    },
    BitwiseOr {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    BitwiseXor {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    BitwiseAnd {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    Not {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    BitFieldInsert {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        insert: ValueId,
        offset: ValueId,
        count: ValueId,
    },
    BitFieldSExtract {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        offset: ValueId,
        count: ValueId,
    },
    BitFieldUExtract {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
        offset: ValueId,
        count: ValueId,
    },
    BitReverse {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
    },
    BitCount {
        result_type: TypeId,
        result_id: ResultId,
        base: ValueId,
    },
    Any {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    All {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    IsNan {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    IsInf {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    IsFinite {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    IsNormal {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    SignBitSet {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    LessOrGreater {
        result_type: TypeId,
        result_id: ResultId,
        x: ValueId,
        y: ValueId,
    },
    Ordered {
        result_type: TypeId,
        result_id: ResultId,
        x: ValueId,
        y: ValueId,
    },
    Unordered {
        result_type: TypeId,
        result_id: ResultId,
        x: ValueId,
        y: ValueId,
    },
    LogicalEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    LogicalNotEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    LogicalOr {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    LogicalAnd {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    LogicalNot {
        result_type: TypeId,
        result_id: ResultId,
        value_id: ValueId,
    },
    Select {
        result_type: TypeId,
        result_id: ResultId,
        condition: ValueId,
        obj_1: ValueId,
        obj_2: ValueId,
    },
    IEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    INotEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    UGreaterThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SGreaterThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    UGreaterThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SGreaterThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    ULessThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SLessThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    ULessThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    SLessThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdNotEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordNotEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdLessThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordLessThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdGreaterThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordGreaterThan {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdLessThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordLessThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FOrdGreaterThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    FUnordGreaterThanEqual {
        result_type: TypeId,
        result_id: ResultId,
        lhs: ValueId,
        rhs: ValueId,
    },
    DPdx {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    DPdy {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    Fwidth {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    DPdxFine {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    DPdyFine {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    FwidthFine {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    DPdxCoarse {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    DPdyCoarse {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    FwidthCoarse {
        result_type: TypeId,
        result_id: ResultId,
        p: ValueId,
    },
    Phi {
        result_type: TypeId,
        result_id: ResultId,
        values: Box<[(ValueId, ValueId)]>,
    },
    LoopMerge {
        merge: ValueId,
        cont: ValueId,
        loop_control: LoopControl,
    },
    SelectionMerge {
        merge: ValueId,
        selection_control: SelectionControl,
    },
    Label {
        result_id: ResultId,
    },
    Branch {
        target: ValueId,
    },
    BranchConditional {
        cond: ValueId,
        then: ValueId,
        els: ValueId,
        true_weight: Option<u32>,
        false_weight: Option<u32>,
    },
    Switch {
        selector: ValueId,
        default: ValueId,
        targets: Box<[u32]>,
    },
    Kill,
    Return,
    ReturnValue {
        value_id: ValueId,
    },
    Unreachable,
    LifetimeStart {
        ptr: ValueId,
        size: u32,
    },
    LifetimeStop {
        ptr: ValueId,
        size: u32,
    },
    AtomicLoad {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
    },
    AtomicStore {
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicExchange {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicCompareExchange {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        eq_semantics: ValueId,
        not_eq_semantics: ValueId,
        value_id: ValueId,
        comparator: ValueId,
    },
    AtomicCompareExchangeWeak {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        eq_semantics: ValueId,
        not_eq_semantics: ValueId,
        value_id: ValueId,
        comparator: ValueId,
    },
    AtomicIIncrement {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
    },
    AtomicIDecrement {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
    },
    AtomicIAdd {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicISub {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicSMin {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicUMin {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicSMax {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicUMax {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicAnd {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicOr {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicXor {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
        value_id: ValueId,
    },
    AtomicFlagTestAndSet {
        result_type: TypeId,
        result_id: ResultId,
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
    },
    AtomicFlagClear {
        ptr: ValueId,
        scope: ValueId,
        semantics: ValueId,
    },
    EmitVertex,
    EndPrimitive,
    EmitStreamVertex {
        stream: ValueId,
    },
    EndStreamPrimitive {
        stream: ValueId,
    },
    ControlBarrier {
        execution: ValueId,
        memory: ValueId,
        semantics: ValueId,
    },
    MemoryBarrier {
        memory: ValueId,
        semantics: ValueId,
    },
    GroupAsyncCopy {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        dest: ValueId,
        src: ValueId,
        num_elements: ValueId,
        stride: ValueId,
        event: ValueId,
    },
    GroupWaitEvents {
        execution: ValueId,
        num_events: ValueId,
        events: ValueId,
    },
    GroupAll {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        predicate: ValueId,
    },
    GroupAny {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        predicate: ValueId,
    },
    GroupBroadcast {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        value: ValueId,
        local_id: ValueId,
    },
    GroupIAdd {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupFAdd {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupFMin {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupUMin {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupSMin {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupFMax {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupUMax {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    GroupSMax {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        group_operation: GroupOperation,
        x: ValueId,
    },
    EnqueueMarker {
        result_type: TypeId,
        result_id: ResultId,
        queue: ValueId,
        num_events: ValueId,
        wait_events: ValueId,
        ret_event: ValueId,
    },
    EnqueueKernel {
        result_type: TypeId,
        result_id: ResultId,
        queue: ValueId,
        flags: ValueId,
        range: ValueId,
        num_events: ValueId,
        wait_event: ValueId,
        ret_event: ValueId,
        invoke: ValueId,
        param: ValueId,
        param_size: ValueId,
        param_align: ValueId,
        local_size: Box<[ValueId]>,
    },
    GetKernelNDrangeSubGroupCount {
        result_type: TypeId,
        result_id: ResultId,
        range: ValueId,
        invoke: ValueId,
        param: ValueId,
        param_size: ValueId,
        param_align: ValueId,
    },
    GetKernelNDrangeMaxSubGroupSize {
        result_type: TypeId,
        result_id: ResultId,
        range: ValueId,
        invoke: ValueId,
        param: ValueId,
        param_size: ValueId,
        param_align: ValueId,
    },
    GetKernelWorkGroupSize {
        result_type: TypeId,
        result_id: ResultId,
        invoke: ValueId,
        param: ValueId,
        param_size: ValueId,
        param_align: ValueId,
    },
    GetKernelPreferredWorkGroupSizeMultiple {
        result_type: TypeId,
        result_id: ResultId,
        invoke: ValueId,
        param: ValueId,
        param_size: ValueId,
        param_align: ValueId,
    },
    RetainEvent {
        event: ValueId,
    },
    ReleaseEvent {
        event: ValueId,
    },
    CreateUserEvent {
        result_type: TypeId,
        result_id: ResultId,
    },
    IsValidEvent {
        result_type: TypeId,
        result_id: ResultId,
        event: ValueId,
    },
    SetUserEventStatus {
        event: ValueId,
        status: ValueId,
    },
    CaptureEventProfilingInfo {
        event: ValueId,
        profiling_info: ValueId,
        value: ValueId,
    },
    GetDefaultQueue {
        result_type: TypeId,
        result_id: ResultId,
    },
    BuildNDRange {
        result_type: TypeId,
        result_id: ResultId,
        global_work_size: ValueId,
        local_work_size: ValueId,
        global_work_offset: ValueId,
    },
    ReadPipe {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        ptr: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    WritePipe {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        ptr: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    ReservedReadPipe {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        reserve_id: ValueId,
        index: ValueId,
        ptr: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    ReservedWritePipe {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        reserve_id: ValueId,
        index: ValueId,
        ptr: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    ReserveReadPipePackets {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        num_packets: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    ReserveWritePipePackets {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        num_packets: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    CommitReadPipe {
        pipe: ValueId,
        reserve_id: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    CommitWritePipe {
        pipe: ValueId,
        reserve_id: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    IsValidReserveId {
        result_type: TypeId,
        result_id: ResultId,
        reserve_id: ValueId,
    },
    GetNumPipePackets {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    GetMaxPipePackets {
        result_type: TypeId,
        result_id: ResultId,
        pipe: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    GroupReserveReadPipePackets {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        pipe: ValueId,
        num_packets: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    GroupReserveWritePipePackets {
        result_type: TypeId,
        result_id: ResultId,
        execution: ValueId,
        pipe: ValueId,
        num_packets: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    GroupCommitReadPipe {
        execution: ValueId,
        pipe: ValueId,
        reserve_id: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    GroupCommitWritePipe {
        execution: ValueId,
        pipe: ValueId,
        reserve_id: ValueId,
        packet_size: ValueId,
        packet_alignment: ValueId,
    },
    Unknown(u16Box<[u32]>),
}

Variants

NopUndef

Fields

result_type: TypeId
result_id: ResultId
SourceContinued

Fields

src: String
Source

Fields

src_lang: SrcLang
version: u32
file: ValueId
src: Option<String>
SourceExtension

Fields

extension: String
Name

Fields

id: Id
name: String
MemberName

Fields

type_id: TypeId
member: u32
name: String
String

Fields

result_id: ResultId
string: String
Line

Fields

file: ValueId
line: u32
col: u32
NoLineDecorate

Fields

target: Id
decoration: Decoration
MemberDecorate

Fields

target: TypeId
member: u32
decoration: Decoration
DecorationGroup

Fields

result_id: ResultId
GroupDecorate

Fields

grp: ValueId
targets: Box<[Id]>
GroupMemberDecorate

Fields

grp: ValueId
targets: Box<[(TypeId, u32)]>
Extension

Fields

name: String
ExtInstImport

Fields

result_id: ResultId
name: String
ExtInst

Fields

result_type: TypeId
result_id: ResultId
set: ValueId
instruction: u32
operands: Box<[Id]>
MemoryModel

Fields

addressing_model: AddressingModel
memory_model: MemoryModel
EntryPoint

Fields

execution_model: ExecutionModel
func: ValueId
name: String
interface: Box<[Id]>
ExecutionMode

Fields

execution_mode: ExecutionMode
Capability

Fields

capability: Capability
TypeVoid

Fields

result_type: TypeId
TypeBool

Fields

result_type: TypeId
TypeInt

Fields

result_type: TypeId
width: u32
signed: bool
TypeFloat

Fields

result_type: TypeId
width: u32
TypeVector

Fields

result_type: TypeId
type_id: TypeId
len: u32
TypeMatrix

Fields

result_type: TypeId
type_id: TypeId
cols: u32
TypeImage

Fields

result_type: TypeId
type_id: TypeId
dim: Dim
depth: u32
arrayed: bool
multisampled: bool
sampled: u32
image_format: ImageFormat
access_qualifier: Option<AccessQualifier>
TypeSampler

Fields

result_type: TypeId
TypeSampledImage

Fields

result_type: TypeId
image: TypeId
TypeArray

Fields

result_type: TypeId
element: TypeId
len: ValueId
TypeRuntimeArray

Fields

result_type: TypeId
element: TypeId
TypeStruct

Fields

result_type: TypeId
fields: Box<[TypeId]>
TypeOpaque

Fields

result_type: TypeId
name: String
TypePointer

Fields

result_type: TypeId
storage_class: StorageClass
pointee: TypeId
TypeFunction

Fields

result_type: TypeId
return_ty: TypeId
params: Box<[TypeId]>
TypeEvent

Fields

result_type: TypeId
TypeDeviceEvent

Fields

result_type: TypeId
TypeReserveId

Fields

result_type: TypeId
TypeQueue

Fields

result_type: TypeId
TypePipe

Fields

result_type: TypeId
TypeForwardPointer

Fields

type_id: TypeId
storage_class: StorageClass
ConstantTrue

Fields

result_type: TypeId
result_id: ResultId
ConstantFalse

Fields

result_type: TypeId
result_id: ResultId
Constant

Fields

result_type: TypeId
result_id: ResultId
val: Box<[u32]>
ConstantComposite

Fields

result_type: TypeId
result_id: ResultId
flds: Box<[ValueId]>
ConstantSampler

Fields

result_type: TypeId
result_id: ResultId
sampler_addressing_mode: SamplerAddressingMode
normalized: bool
sampler_filter_mode: SamplerFilterMode
ConstantNull

Fields

result_type: TypeId
result_id: ResultId
SpecConstantTrue

Fields

result_type: TypeId
result_id: ResultId
SpecConstantFalse

Fields

result_type: TypeId
result_id: ResultId
SpecConstant

Fields

result_type: TypeId
result_id: ResultId
val: Box<[u32]>
SpecConstantComposite

Fields

result_type: TypeId
result_id: ResultId
flds: Box<[ValueId]>
SpecConstantOp

Fields

result_type: TypeId
result_id: ResultId
num: u32
operands: Box<[ValueId]>
Variable

Fields

result_type: TypeId
result_id: ResultId
storage_class: StorageClass
init: ValueId
ImageTexelPointer

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
sample: ValueId
Load

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
memory_access: MemoryAccess
Store

Fields

ptr: ValueId
obj: ValueId
memory_access: MemoryAccess
CopyMemory

Fields

target: ValueId
src: ValueId
memory_access: MemoryAccess
CopyMemorySized

Fields

target: ValueId
src: ValueId
size: ValueId
memory_access: MemoryAccess
AccessChain

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
indices: Box<[ValueId]>
InBoundsAccessChain

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
indices: Box<[ValueId]>
PtrAccessChain

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
element: ValueId
indices: Box<[ValueId]>
ArrayLength

Fields

result_type: TypeId
result_id: ResultId
obj: ValueId
member: u32
GenericPtrMemSemantics

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
InBoundsPtrAccessChain

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
element: ValueId
indices: Box<[ValueId]>
Function

Fields

result_type: TypeId
result_id: ResultId
function_control: FunctionControl
fn_ty: TypeId
FunctionParameter

Fields

result_type: TypeId
result_id: ResultId
FunctionEndFunctionCall

Fields

result_type: TypeId
result_id: ResultId
func: ValueId
args: Box<[ValueId]>
SampledImage

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
sampler: ValueId
ImageSampleImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSampleExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSampleDrefImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSampleDrefExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSampleProjImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSampleProjExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSampleProjDrefImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSampleProjDrefExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageFetch

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageGather

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
component: ValueId
image_operands: ImageOperands
ImageDrefGather

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageRead

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageWrite

Fields

image: ValueId
coord: ValueId
texel: ValueId
image_operands: ImageOperands
Image

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageQueryFormat

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageQueryOrder

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageQuerySizeLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
lod: ValueId
ImageQuerySize

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageQueryLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
ImageQueryLevels

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageQuerySamples

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
ImageSparseSampleImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSparseSampleExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSparseSampleDrefImplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSparseSampleDrefExplicitLod

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSparseFetch

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ImageSparseGather

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
component: ValueId
image_operands: ImageOperands
ImageSparseDrefGather

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
d_ref: ValueId
image_operands: ImageOperands
ImageSparseTexelsResident

Fields

result_type: TypeId
result_id: ResultId
resident_code: ValueId
ImageSparseRead

Fields

result_type: TypeId
result_id: ResultId
image: ValueId
coord: ValueId
image_operands: ImageOperands
ConvertFToU

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
ConvertFToS

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
ConvertSToF

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
ConvertUToF

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
UConvert

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
SConvert

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
FConvert

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
QuantizeToF16

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
ConvertPtrToU

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
SatConvertSToU

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
SatConvertUToS

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
ConvertUToPtr

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
PtrCastToGeneric

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
GenericCastToPtr

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
GenericCastToPtrExplicit

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
storage_class: StorageClass
Bitcast

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
VectorExtractDynamic

Fields

result_type: TypeId
result_id: ResultId
vector: ValueId
index: ValueId
VectorInsertDynamic

Fields

result_type: TypeId
result_id: ResultId
vector: ValueId
component: ValueId
index: ValueId
VectorShuffle

Fields

result_type: TypeId
result_id: ResultId
vector_1: ValueId
vector_2: ValueId
components: Box<[u32]>
CompositeConstruct

Fields

result_type: TypeId
result_id: ResultId
fields: Box<[ValueId]>
CompositeExtract

Fields

result_type: TypeId
result_id: ResultId
obj: ValueId
indices: Box<[u32]>
CompositeInsert

Fields

result_type: TypeId
result_id: ResultId
obj: ValueId
composite: ValueId
indices: Box<[u32]>
CopyObject

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
Transpose

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
SNegate

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
FNegate

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
IAdd

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FAdd

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
ISub

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FSub

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
IMul

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FMul

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
UDiv

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SDiv

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FDiv

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
UMod

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SRem

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SMod

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FRem

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FMod

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
VectorTimesScalar

Fields

result_type: TypeId
result_id: ResultId
vector: ValueId
scalar: ValueId
MatrixTimesScalar

Fields

result_type: TypeId
result_id: ResultId
matrix: ValueId
scalar: ValueId
VectorTimesMatrix

Fields

result_type: TypeId
result_id: ResultId
vector: ValueId
matrix: ValueId
MatrixTimesVector

Fields

result_type: TypeId
result_id: ResultId
matrix: ValueId
vector: ValueId
MatrixTimesMatrix

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
OuterProduct

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
Dot

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
IAddCarry

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
ISubBorrow

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
UMulExtended

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SMulExtended

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
ShiftRightLogical

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
shift: ValueId
ShiftRightArithmetic

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
shift: ValueId
ShiftLeftLogical

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
shift: ValueId
BitwiseOr

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
BitwiseXor

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
BitwiseAnd

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
Not

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
BitFieldInsert

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
insert: ValueId
offset: ValueId
count: ValueId
BitFieldSExtract

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
offset: ValueId
count: ValueId
BitFieldUExtract

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
offset: ValueId
count: ValueId
BitReverse

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
BitCount

Fields

result_type: TypeId
result_id: ResultId
base: ValueId
Any

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
All

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
IsNan

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
IsInf

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
IsFinite

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
IsNormal

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
SignBitSet

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
LessOrGreater

Fields

result_type: TypeId
result_id: ResultId
x: ValueId
y: ValueId
Ordered

Fields

result_type: TypeId
result_id: ResultId
x: ValueId
y: ValueId
Unordered

Fields

result_type: TypeId
result_id: ResultId
x: ValueId
y: ValueId
LogicalEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
LogicalNotEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
LogicalOr

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
LogicalAnd

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
LogicalNot

Fields

result_type: TypeId
result_id: ResultId
value_id: ValueId
Select

Fields

result_type: TypeId
result_id: ResultId
condition: ValueId
obj_1: ValueId
obj_2: ValueId
IEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
INotEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
UGreaterThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SGreaterThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
UGreaterThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SGreaterThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
ULessThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SLessThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
ULessThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
SLessThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdNotEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordNotEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdLessThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordLessThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdGreaterThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordGreaterThan

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdLessThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordLessThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FOrdGreaterThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
FUnordGreaterThanEqual

Fields

result_type: TypeId
result_id: ResultId
lhs: ValueId
rhs: ValueId
DPdx

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
DPdy

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
Fwidth

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
DPdxFine

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
DPdyFine

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
FwidthFine

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
DPdxCoarse

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
DPdyCoarse

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
FwidthCoarse

Fields

result_type: TypeId
result_id: ResultId
p: ValueId
Phi

Fields

result_type: TypeId
result_id: ResultId
values: Box<[(ValueId, ValueId)]>
LoopMerge

Fields

merge: ValueId
cont: ValueId
loop_control: LoopControl
SelectionMerge

Fields

merge: ValueId
selection_control: SelectionControl
Label

Fields

result_id: ResultId
Branch

Fields

target: ValueId
BranchConditional

Fields

cond: ValueId
then: ValueId
els: ValueId
true_weight: Option<u32>
false_weight: Option<u32>
Switch

Fields

selector: ValueId
default: ValueId
targets: Box<[u32]>
KillReturnReturnValue

Fields

value_id: ValueId
UnreachableLifetimeStart

Fields

ptr: ValueId
size: u32
LifetimeStop

Fields

ptr: ValueId
size: u32
AtomicLoad

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
AtomicStore

Fields

ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicExchange

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicCompareExchange

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
eq_semantics: ValueId
not_eq_semantics: ValueId
value_id: ValueId
comparator: ValueId
AtomicCompareExchangeWeak

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
eq_semantics: ValueId
not_eq_semantics: ValueId
value_id: ValueId
comparator: ValueId
AtomicIIncrement

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
AtomicIDecrement

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
AtomicIAdd

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicISub

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicSMin

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicUMin

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicSMax

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicUMax

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicAnd

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicOr

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicXor

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
value_id: ValueId
AtomicFlagTestAndSet

Fields

result_type: TypeId
result_id: ResultId
ptr: ValueId
scope: ValueId
semantics: ValueId
AtomicFlagClear

Fields

ptr: ValueId
scope: ValueId
semantics: ValueId
EmitVertexEndPrimitiveEmitStreamVertex

Fields

stream: ValueId
EndStreamPrimitive

Fields

stream: ValueId
ControlBarrier

Fields

execution: ValueId
memory: ValueId
semantics: ValueId
MemoryBarrier

Fields

memory: ValueId
semantics: ValueId
GroupAsyncCopy

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
dest: ValueId
src: ValueId
num_elements: ValueId
stride: ValueId
event: ValueId
GroupWaitEvents

Fields

execution: ValueId
num_events: ValueId
events: ValueId
GroupAll

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
predicate: ValueId
GroupAny

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
predicate: ValueId
GroupBroadcast

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
value: ValueId
local_id: ValueId
GroupIAdd

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupFAdd

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupFMin

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupUMin

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupSMin

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupFMax

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupUMax

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
GroupSMax

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
group_operation: GroupOperation
x: ValueId
EnqueueMarker

Fields

result_type: TypeId
result_id: ResultId
queue: ValueId
num_events: ValueId
wait_events: ValueId
ret_event: ValueId
EnqueueKernel

Fields

result_type: TypeId
result_id: ResultId
queue: ValueId
flags: ValueId
range: ValueId
num_events: ValueId
wait_event: ValueId
ret_event: ValueId
invoke: ValueId
param: ValueId
param_size: ValueId
param_align: ValueId
local_size: Box<[ValueId]>
GetKernelNDrangeSubGroupCount

Fields

result_type: TypeId
result_id: ResultId
range: ValueId
invoke: ValueId
param: ValueId
param_size: ValueId
param_align: ValueId
GetKernelNDrangeMaxSubGroupSize

Fields

result_type: TypeId
result_id: ResultId
range: ValueId
invoke: ValueId
param: ValueId
param_size: ValueId
param_align: ValueId
GetKernelWorkGroupSize

Fields

result_type: TypeId
result_id: ResultId
invoke: ValueId
param: ValueId
param_size: ValueId
param_align: ValueId
GetKernelPreferredWorkGroupSizeMultiple

Fields

result_type: TypeId
result_id: ResultId
invoke: ValueId
param: ValueId
param_size: ValueId
param_align: ValueId
RetainEvent

Fields

event: ValueId
ReleaseEvent

Fields

event: ValueId
CreateUserEvent

Fields

result_type: TypeId
result_id: ResultId
IsValidEvent

Fields

result_type: TypeId
result_id: ResultId
event: ValueId
SetUserEventStatus

Fields

event: ValueId
status: ValueId
CaptureEventProfilingInfo

Fields

event: ValueId
profiling_info: ValueId
value: ValueId
GetDefaultQueue

Fields

result_type: TypeId
result_id: ResultId
BuildNDRange

Fields

result_type: TypeId
result_id: ResultId
global_work_size: ValueId
local_work_size: ValueId
global_work_offset: ValueId
ReadPipe

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
ptr: ValueId
packet_size: ValueId
packet_alignment: ValueId
WritePipe

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
ptr: ValueId
packet_size: ValueId
packet_alignment: ValueId
ReservedReadPipe

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
reserve_id: ValueId
index: ValueId
ptr: ValueId
packet_size: ValueId
packet_alignment: ValueId
ReservedWritePipe

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
reserve_id: ValueId
index: ValueId
ptr: ValueId
packet_size: ValueId
packet_alignment: ValueId
ReserveReadPipePackets

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
num_packets: ValueId
packet_size: ValueId
packet_alignment: ValueId
ReserveWritePipePackets

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
num_packets: ValueId
packet_size: ValueId
packet_alignment: ValueId
CommitReadPipe

Fields

pipe: ValueId
reserve_id: ValueId
packet_size: ValueId
packet_alignment: ValueId
CommitWritePipe

Fields

pipe: ValueId
reserve_id: ValueId
packet_size: ValueId
packet_alignment: ValueId
IsValidReserveId

Fields

result_type: TypeId
result_id: ResultId
reserve_id: ValueId
GetNumPipePackets

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
packet_size: ValueId
packet_alignment: ValueId
GetMaxPipePackets

Fields

result_type: TypeId
result_id: ResultId
pipe: ValueId
packet_size: ValueId
packet_alignment: ValueId
GroupReserveReadPipePackets

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
pipe: ValueId
num_packets: ValueId
packet_size: ValueId
packet_alignment: ValueId
GroupReserveWritePipePackets

Fields

result_type: TypeId
result_id: ResultId
execution: ValueId
pipe: ValueId
num_packets: ValueId
packet_size: ValueId
packet_alignment: ValueId
GroupCommitReadPipe

Fields

execution: ValueId
pipe: ValueId
reserve_id: ValueId
packet_size: ValueId
packet_alignment: ValueId
GroupCommitWritePipe

Fields

execution: ValueId
pipe: ValueId
reserve_id: ValueId
packet_size: ValueId
packet_alignment: ValueId
Unknown(u16Box<[u32]>)

Methods

impl Instruction
[src]

fn type_id_of(&self) -> Option<TypeId>

fn defines_type(&self) -> Option<TypeId>

fn uses(&self) -> Vec<Id>

impl Instruction
[src]

Trait Implementations

impl Debug for Instruction
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Clone for Instruction
[src]

fn clone(&self) -> Instruction

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more