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(u16, Box<[u32]>),
}

Variants

Nop
Undef

Fields

result_type
result_id
SourceContinued

Fields

src
Source

Fields

src_lang
version
file
src
SourceExtension

Fields

extension
Name

Fields

id
name
MemberName

Fields

type_id
member
name
String

Fields

result_id
string
Line

Fields

file
line
col
NoLine
Decorate

Fields

target
decoration
MemberDecorate

Fields

target
member
decoration
DecorationGroup

Fields

result_id
GroupDecorate

Fields

grp
targets
GroupMemberDecorate

Fields

grp
targets
Extension

Fields

name
ExtInstImport

Fields

result_id
name
ExtInst

Fields

result_type
result_id
set
instruction
operands
MemoryModel

Fields

addressing_model
memory_model
EntryPoint

Fields

execution_model
func
name
interface
ExecutionMode

Fields

execution_mode
Capability

Fields

capability
TypeVoid

Fields

result_type
TypeBool

Fields

result_type
TypeInt

Fields

result_type
width
signed
TypeFloat

Fields

result_type
width
TypeVector

Fields

result_type
type_id
len
TypeMatrix

Fields

result_type
type_id
cols
TypeImage

Fields

result_type
type_id
dim
depth
arrayed
multisampled
sampled
image_format
access_qualifier
TypeSampler

Fields

result_type
TypeSampledImage

Fields

result_type
image
TypeArray

Fields

result_type
element
len
TypeRuntimeArray

Fields

result_type
element
TypeStruct

Fields

result_type
fields
TypeOpaque

Fields

result_type
name
TypePointer

Fields

result_type
storage_class
pointee
TypeFunction

Fields

result_type
return_ty
params
TypeEvent

Fields

result_type
TypeDeviceEvent

Fields

result_type
TypeReserveId

Fields

result_type
TypeQueue

Fields

result_type
TypePipe

Fields

result_type
TypeForwardPointer

Fields

type_id
storage_class
ConstantTrue

Fields

result_type
result_id
ConstantFalse

Fields

result_type
result_id
Constant

Fields

result_type
result_id
val
ConstantComposite

Fields

result_type
result_id
flds
ConstantSampler

Fields

result_type
result_id
sampler_addressing_mode
normalized
sampler_filter_mode
ConstantNull

Fields

result_type
result_id
SpecConstantTrue

Fields

result_type
result_id
SpecConstantFalse

Fields

result_type
result_id
SpecConstant

Fields

result_type
result_id
val
SpecConstantComposite

Fields

result_type
result_id
flds
SpecConstantOp

Fields

result_type
result_id
num
operands
Variable

Fields

result_type
result_id
storage_class
init
ImageTexelPointer

Fields

result_type
result_id
image
coord
sample
Load

Fields

result_type
result_id
value_id
memory_access
Store

Fields

ptr
obj
memory_access
CopyMemory

Fields

target
src
memory_access
CopyMemorySized

Fields

target
src
size
memory_access
AccessChain

Fields

result_type
result_id
base
indices
InBoundsAccessChain

Fields

result_type
result_id
base
indices
PtrAccessChain

Fields

result_type
result_id
base
element
indices
ArrayLength

Fields

result_type
result_id
obj
member
GenericPtrMemSemantics

Fields

result_type
result_id
ptr
InBoundsPtrAccessChain

Fields

result_type
result_id
base
element
indices
Function

Fields

result_type
result_id
function_control
fn_ty
FunctionParameter

Fields

result_type
result_id
FunctionEnd
FunctionCall

Fields

result_type
result_id
func
args
SampledImage

Fields

result_type
result_id
image
sampler
ImageSampleImplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSampleExplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSampleDrefImplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSampleDrefExplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSampleProjImplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSampleProjExplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSampleProjDrefImplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSampleProjDrefExplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageFetch

Fields

result_type
result_id
image
coord
image_operands
ImageGather

Fields

result_type
result_id
image
coord
component
image_operands
ImageDrefGather

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageRead

Fields

result_type
result_id
image
coord
image_operands
ImageWrite

Fields

image
coord
texel
image_operands
Image

Fields

result_type
result_id
image
ImageQueryFormat

Fields

result_type
result_id
image
ImageQueryOrder

Fields

result_type
result_id
image
ImageQuerySizeLod

Fields

result_type
result_id
image
lod
ImageQuerySize

Fields

result_type
result_id
image
ImageQueryLod

Fields

result_type
result_id
image
coord
ImageQueryLevels

Fields

result_type
result_id
image
ImageQuerySamples

Fields

result_type
result_id
image
ImageSparseSampleImplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSparseSampleExplicitLod

Fields

result_type
result_id
image
coord
image_operands
ImageSparseSampleDrefImplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSparseSampleDrefExplicitLod

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSparseFetch

Fields

result_type
result_id
image
coord
image_operands
ImageSparseGather

Fields

result_type
result_id
image
coord
component
image_operands
ImageSparseDrefGather

Fields

result_type
result_id
image
coord
d_ref
image_operands
ImageSparseTexelsResident

Fields

result_type
result_id
resident_code
ImageSparseRead

Fields

result_type
result_id
image
coord
image_operands
ConvertFToU

Fields

result_type
result_id
value_id
ConvertFToS

Fields

result_type
result_id
value_id
ConvertSToF

Fields

result_type
result_id
value_id
ConvertUToF

Fields

result_type
result_id
value_id
UConvert

Fields

result_type
result_id
value_id
SConvert

Fields

result_type
result_id
value_id
FConvert

Fields

result_type
result_id
value_id
QuantizeToF16

Fields

result_type
result_id
value_id
ConvertPtrToU

Fields

result_type
result_id
value_id
SatConvertSToU

Fields

result_type
result_id
value_id
SatConvertUToS

Fields

result_type
result_id
value_id
ConvertUToPtr

Fields

result_type
result_id
value_id
PtrCastToGeneric

Fields

result_type
result_id
value_id
GenericCastToPtr

Fields

result_type
result_id
value_id
GenericCastToPtrExplicit

Fields

result_type
result_id
value_id
storage_class
Bitcast

Fields

result_type
result_id
value_id
VectorExtractDynamic

Fields

result_type
result_id
vector
index
VectorInsertDynamic

Fields

result_type
result_id
vector
component
index
VectorShuffle

Fields

result_type
result_id
vector_1
vector_2
components
CompositeConstruct

Fields

result_type
result_id
fields
CompositeExtract

Fields

result_type
result_id
obj
indices
CompositeInsert

Fields

result_type
result_id
obj
composite
indices
CopyObject

Fields

result_type
result_id
value_id
Transpose

Fields

result_type
result_id
value_id
SNegate

Fields

result_type
result_id
value_id
FNegate

Fields

result_type
result_id
value_id
IAdd

Fields

result_type
result_id
lhs
rhs
FAdd

Fields

result_type
result_id
lhs
rhs
ISub

Fields

result_type
result_id
lhs
rhs
FSub

Fields

result_type
result_id
lhs
rhs
IMul

Fields

result_type
result_id
lhs
rhs
FMul

Fields

result_type
result_id
lhs
rhs
UDiv

Fields

result_type
result_id
lhs
rhs
SDiv

Fields

result_type
result_id
lhs
rhs
FDiv

Fields

result_type
result_id
lhs
rhs
UMod

Fields

result_type
result_id
lhs
rhs
SRem

Fields

result_type
result_id
lhs
rhs
SMod

Fields

result_type
result_id
lhs
rhs
FRem

Fields

result_type
result_id
lhs
rhs
FMod

Fields

result_type
result_id
lhs
rhs
VectorTimesScalar

Fields

result_type
result_id
vector
scalar
MatrixTimesScalar

Fields

result_type
result_id
matrix
scalar
VectorTimesMatrix

Fields

result_type
result_id
vector
matrix
MatrixTimesVector

Fields

result_type
result_id
matrix
vector
MatrixTimesMatrix

Fields

result_type
result_id
lhs
rhs
OuterProduct

Fields

result_type
result_id
lhs
rhs
Dot

Fields

result_type
result_id
lhs
rhs
IAddCarry

Fields

result_type
result_id
lhs
rhs
ISubBorrow

Fields

result_type
result_id
lhs
rhs
UMulExtended

Fields

result_type
result_id
lhs
rhs
SMulExtended

Fields

result_type
result_id
lhs
rhs
ShiftRightLogical

Fields

result_type
result_id
base
shift
ShiftRightArithmetic

Fields

result_type
result_id
base
shift
ShiftLeftLogical

Fields

result_type
result_id
base
shift
BitwiseOr

Fields

result_type
result_id
lhs
rhs
BitwiseXor

Fields

result_type
result_id
lhs
rhs
BitwiseAnd

Fields

result_type
result_id
lhs
rhs
Not

Fields

result_type
result_id
value_id
BitFieldInsert

Fields

result_type
result_id
base
insert
offset
count
BitFieldSExtract

Fields

result_type
result_id
base
offset
count
BitFieldUExtract

Fields

result_type
result_id
base
offset
count
BitReverse

Fields

result_type
result_id
base
BitCount

Fields

result_type
result_id
base
Any

Fields

result_type
result_id
value_id
All

Fields

result_type
result_id
value_id
IsNan

Fields

result_type
result_id
value_id
IsInf

Fields

result_type
result_id
value_id
IsFinite

Fields

result_type
result_id
value_id
IsNormal

Fields

result_type
result_id
value_id
SignBitSet

Fields

result_type
result_id
value_id
LessOrGreater

Fields

result_type
result_id
x
y
Ordered

Fields

result_type
result_id
x
y
Unordered

Fields

result_type
result_id
x
y
LogicalEqual

Fields

result_type
result_id
lhs
rhs
LogicalNotEqual

Fields

result_type
result_id
lhs
rhs
LogicalOr

Fields

result_type
result_id
lhs
rhs
LogicalAnd

Fields

result_type
result_id
lhs
rhs
LogicalNot

Fields

result_type
result_id
value_id
Select

Fields

result_type
result_id
condition
obj_1
obj_2
IEqual

Fields

result_type
result_id
lhs
rhs
INotEqual

Fields

result_type
result_id
lhs
rhs
UGreaterThan

Fields

result_type
result_id
lhs
rhs
SGreaterThan

Fields

result_type
result_id
lhs
rhs
UGreaterThanEqual

Fields

result_type
result_id
lhs
rhs
SGreaterThanEqual

Fields

result_type
result_id
lhs
rhs
ULessThan

Fields

result_type
result_id
lhs
rhs
SLessThan

Fields

result_type
result_id
lhs
rhs
ULessThanEqual

Fields

result_type
result_id
lhs
rhs
SLessThanEqual

Fields

result_type
result_id
lhs
rhs
FOrdEqual

Fields

result_type
result_id
lhs
rhs
FUnordEqual

Fields

result_type
result_id
lhs
rhs
FOrdNotEqual

Fields

result_type
result_id
lhs
rhs
FUnordNotEqual

Fields

result_type
result_id
lhs
rhs
FOrdLessThan

Fields

result_type
result_id
lhs
rhs
FUnordLessThan

Fields

result_type
result_id
lhs
rhs
FOrdGreaterThan

Fields

result_type
result_id
lhs
rhs
FUnordGreaterThan

Fields

result_type
result_id
lhs
rhs
FOrdLessThanEqual

Fields

result_type
result_id
lhs
rhs
FUnordLessThanEqual

Fields

result_type
result_id
lhs
rhs
FOrdGreaterThanEqual

Fields

result_type
result_id
lhs
rhs
FUnordGreaterThanEqual

Fields

result_type
result_id
lhs
rhs
DPdx

Fields

result_type
result_id
p
DPdy

Fields

result_type
result_id
p
Fwidth

Fields

result_type
result_id
p
DPdxFine

Fields

result_type
result_id
p
DPdyFine

Fields

result_type
result_id
p
FwidthFine

Fields

result_type
result_id
p
DPdxCoarse

Fields

result_type
result_id
p
DPdyCoarse

Fields

result_type
result_id
p
FwidthCoarse

Fields

result_type
result_id
p
Phi

Fields

result_type
result_id
values
LoopMerge

Fields

merge
cont
loop_control
SelectionMerge

Fields

merge
selection_control
Label

Fields

result_id
Branch

Fields

target
BranchConditional

Fields

cond
then
els
true_weight
false_weight
Switch

Fields

selector
default
targets
Kill
Return
ReturnValue

Fields

value_id
Unreachable
LifetimeStart

Fields

ptr
size
LifetimeStop

Fields

ptr
size
AtomicLoad

Fields

result_type
result_id
ptr
scope
semantics
AtomicStore

Fields

ptr
scope
semantics
value_id
AtomicExchange

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicCompareExchange

Fields

result_type
result_id
ptr
scope
eq_semantics
not_eq_semantics
value_id
comparator
AtomicCompareExchangeWeak

Fields

result_type
result_id
ptr
scope
eq_semantics
not_eq_semantics
value_id
comparator
AtomicIIncrement

Fields

result_type
result_id
ptr
scope
semantics
AtomicIDecrement

Fields

result_type
result_id
ptr
scope
semantics
AtomicIAdd

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicISub

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicSMin

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicUMin

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicSMax

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicUMax

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicAnd

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicOr

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicXor

Fields

result_type
result_id
ptr
scope
semantics
value_id
AtomicFlagTestAndSet

Fields

result_type
result_id
ptr
scope
semantics
AtomicFlagClear

Fields

ptr
scope
semantics
EmitVertex
EndPrimitive
EmitStreamVertex

Fields

stream
EndStreamPrimitive

Fields

stream
ControlBarrier

Fields

execution
memory
semantics
MemoryBarrier

Fields

memory
semantics
GroupAsyncCopy

Fields

result_type
result_id
execution
dest
src
num_elements
stride
event
GroupWaitEvents

Fields

execution
num_events
events
GroupAll

Fields

result_type
result_id
execution
predicate
GroupAny

Fields

result_type
result_id
execution
predicate
GroupBroadcast

Fields

result_type
result_id
execution
value
local_id
GroupIAdd

Fields

result_type
result_id
execution
group_operation
x
GroupFAdd

Fields

result_type
result_id
execution
group_operation
x
GroupFMin

Fields

result_type
result_id
execution
group_operation
x
GroupUMin

Fields

result_type
result_id
execution
group_operation
x
GroupSMin

Fields

result_type
result_id
execution
group_operation
x
GroupFMax

Fields

result_type
result_id
execution
group_operation
x
GroupUMax

Fields

result_type
result_id
execution
group_operation
x
GroupSMax

Fields

result_type
result_id
execution
group_operation
x
EnqueueMarker

Fields

result_type
result_id
queue
num_events
wait_events
ret_event
EnqueueKernel

Fields

result_type
result_id
queue
flags
range
num_events
wait_event
ret_event
invoke
param
param_size
param_align
local_size
GetKernelNDrangeSubGroupCount

Fields

result_type
result_id
range
invoke
param
param_size
param_align
GetKernelNDrangeMaxSubGroupSize

Fields

result_type
result_id
range
invoke
param
param_size
param_align
GetKernelWorkGroupSize

Fields

result_type
result_id
invoke
param
param_size
param_align
GetKernelPreferredWorkGroupSizeMultiple

Fields

result_type
result_id
invoke
param
param_size
param_align
RetainEvent

Fields

event
ReleaseEvent

Fields

event
CreateUserEvent

Fields

result_type
result_id
IsValidEvent

Fields

result_type
result_id
event
SetUserEventStatus

Fields

event
status
CaptureEventProfilingInfo

Fields

event
profiling_info
value
GetDefaultQueue

Fields

result_type
result_id
BuildNDRange

Fields

result_type
result_id
global_work_size
local_work_size
global_work_offset
ReadPipe

Fields

result_type
result_id
pipe
ptr
packet_size
packet_alignment
WritePipe

Fields

result_type
result_id
pipe
ptr
packet_size
packet_alignment
ReservedReadPipe

Fields

result_type
result_id
pipe
reserve_id
index
ptr
packet_size
packet_alignment
ReservedWritePipe

Fields

result_type
result_id
pipe
reserve_id
index
ptr
packet_size
packet_alignment
ReserveReadPipePackets

Fields

result_type
result_id
pipe
num_packets
packet_size
packet_alignment
ReserveWritePipePackets

Fields

result_type
result_id
pipe
num_packets
packet_size
packet_alignment
CommitReadPipe

Fields

pipe
reserve_id
packet_size
packet_alignment
CommitWritePipe

Fields

pipe
reserve_id
packet_size
packet_alignment
IsValidReserveId

Fields

result_type
result_id
reserve_id
GetNumPipePackets

Fields

result_type
result_id
pipe
packet_size
packet_alignment
GetMaxPipePackets

Fields

result_type
result_id
pipe
packet_size
packet_alignment
GroupReserveReadPipePackets

Fields

result_type
result_id
execution
pipe
num_packets
packet_size
packet_alignment
GroupReserveWritePipePackets

Fields

result_type
result_id
execution
pipe
num_packets
packet_size
packet_alignment
GroupCommitReadPipe

Fields

execution
pipe
reserve_id
packet_size
packet_alignment
GroupCommitWritePipe

Fields

execution
pipe
reserve_id
packet_size
packet_alignment
Unknown

Methods

impl Instruction

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

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

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

impl Instruction

fn defines_value(&self) -> Option<ValueId>

Trait Implementations

Derived Implementations

impl Debug for Instruction

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

impl Clone for Instruction

fn clone(&self) -> Instruction

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