diff options
Diffstat (limited to 'out/spirv_parse.rs')
-rw-r--r-- | out/spirv_parse.rs | 11909 |
1 files changed, 11909 insertions, 0 deletions
diff --git a/out/spirv_parse.rs b/out/spirv_parse.rs new file mode 100644 index 0000000..5ae19f9 --- /dev/null +++ b/out/spirv_parse.rs @@ -0,0 +1,11909 @@ +// This file is auto-generated by vulkano autogen from SPIR-V grammar version 1.6.1. +// It should not be edited manually. Changes should be made by editing autogen. + +#[derive(Clone, Debug, PartialEq, Eq)] +#[doc = "A parsed SPIR-V instruction."] +pub enum Instruction { + Nop, + Undef { + result_type_id: Id, + result_id: Id, + }, + SourceContinued { + continued_source: String, + }, + Source { + source_language: SourceLanguage, + version: u32, + file: Option<Id>, + source: Option<String>, + }, + SourceExtension { + extension: String, + }, + Name { + target: Id, + name: String, + }, + MemberName { + ty: Id, + member: u32, + name: String, + }, + String { + result_id: Id, + string: String, + }, + Line { + file: Id, + line: u32, + column: u32, + }, + Extension { + name: String, + }, + ExtInstImport { + result_id: Id, + name: String, + }, + ExtInst { + result_type_id: Id, + result_id: Id, + set: Id, + instruction: u32, + operands: Vec<Id>, + }, + MemoryModel { + addressing_model: AddressingModel, + memory_model: MemoryModel, + }, + EntryPoint { + execution_model: ExecutionModel, + entry_point: Id, + name: String, + interface: Vec<Id>, + }, + ExecutionMode { + entry_point: Id, + mode: ExecutionMode, + }, + Capability { + capability: Capability, + }, + TypeVoid { + result_id: Id, + }, + TypeBool { + result_id: Id, + }, + TypeInt { + result_id: Id, + width: u32, + signedness: u32, + }, + TypeFloat { + result_id: Id, + width: u32, + }, + TypeVector { + result_id: Id, + component_type: Id, + component_count: u32, + }, + TypeMatrix { + result_id: Id, + column_type: Id, + column_count: u32, + }, + TypeImage { + result_id: Id, + sampled_type: Id, + dim: Dim, + depth: u32, + arrayed: u32, + ms: u32, + sampled: u32, + image_format: ImageFormat, + access_qualifier: Option<AccessQualifier>, + }, + TypeSampler { + result_id: Id, + }, + TypeSampledImage { + result_id: Id, + image_type: Id, + }, + TypeArray { + result_id: Id, + element_type: Id, + length: Id, + }, + TypeRuntimeArray { + result_id: Id, + element_type: Id, + }, + TypeStruct { + result_id: Id, + member_types: Vec<Id>, + }, + TypeOpaque { + result_id: Id, + name: String, + }, + TypePointer { + result_id: Id, + storage_class: StorageClass, + ty: Id, + }, + TypeFunction { + result_id: Id, + return_type: Id, + parameter_types: Vec<Id>, + }, + TypeEvent { + result_id: Id, + }, + TypeDeviceEvent { + result_id: Id, + }, + TypeReserveId { + result_id: Id, + }, + TypeQueue { + result_id: Id, + }, + TypePipe { + result_id: Id, + qualifier: AccessQualifier, + }, + TypeForwardPointer { + pointer_type: Id, + storage_class: StorageClass, + }, + ConstantTrue { + result_type_id: Id, + result_id: Id, + }, + ConstantFalse { + result_type_id: Id, + result_id: Id, + }, + Constant { + result_type_id: Id, + result_id: Id, + value: Vec<u32>, + }, + ConstantComposite { + result_type_id: Id, + result_id: Id, + constituents: Vec<Id>, + }, + ConstantSampler { + result_type_id: Id, + result_id: Id, + sampler_addressing_mode: SamplerAddressingMode, + param: u32, + sampler_filter_mode: SamplerFilterMode, + }, + ConstantNull { + result_type_id: Id, + result_id: Id, + }, + SpecConstantTrue { + result_type_id: Id, + result_id: Id, + }, + SpecConstantFalse { + result_type_id: Id, + result_id: Id, + }, + SpecConstant { + result_type_id: Id, + result_id: Id, + value: Vec<u32>, + }, + SpecConstantComposite { + result_type_id: Id, + result_id: Id, + constituents: Vec<Id>, + }, + SpecConstantOp { + result_type_id: Id, + result_id: Id, + opcode: SpecConstantInstruction, + }, + Function { + result_type_id: Id, + result_id: Id, + function_control: FunctionControl, + function_type: Id, + }, + FunctionParameter { + result_type_id: Id, + result_id: Id, + }, + FunctionEnd, + FunctionCall { + result_type_id: Id, + result_id: Id, + function: Id, + arguments: Vec<Id>, + }, + Variable { + result_type_id: Id, + result_id: Id, + storage_class: StorageClass, + initializer: Option<Id>, + }, + ImageTexelPointer { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + sample: Id, + }, + Load { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory_access: Option<MemoryAccess>, + }, + Store { + pointer: Id, + object: Id, + memory_access: Option<MemoryAccess>, + }, + CopyMemory { + target: Id, + source: Id, + memory_access1: Option<MemoryAccess>, + memory_access2: Option<MemoryAccess>, + }, + CopyMemorySized { + target: Id, + source: Id, + size: Id, + memory_access1: Option<MemoryAccess>, + memory_access2: Option<MemoryAccess>, + }, + AccessChain { + result_type_id: Id, + result_id: Id, + base: Id, + indexes: Vec<Id>, + }, + InBoundsAccessChain { + result_type_id: Id, + result_id: Id, + base: Id, + indexes: Vec<Id>, + }, + PtrAccessChain { + result_type_id: Id, + result_id: Id, + base: Id, + element: Id, + indexes: Vec<Id>, + }, + ArrayLength { + result_type_id: Id, + result_id: Id, + structure: Id, + array_member: u32, + }, + GenericPtrMemSemantics { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + InBoundsPtrAccessChain { + result_type_id: Id, + result_id: Id, + base: Id, + element: Id, + indexes: Vec<Id>, + }, + Decorate { + target: Id, + decoration: Decoration, + }, + MemberDecorate { + structure_type: Id, + member: u32, + decoration: Decoration, + }, + DecorationGroup { + result_id: Id, + }, + GroupDecorate { + decoration_group: Id, + targets: Vec<Id>, + }, + GroupMemberDecorate { + decoration_group: Id, + targets: Vec<(Id, u32)>, + }, + VectorExtractDynamic { + result_type_id: Id, + result_id: Id, + vector: Id, + index: Id, + }, + VectorInsertDynamic { + result_type_id: Id, + result_id: Id, + vector: Id, + component: Id, + index: Id, + }, + VectorShuffle { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + components: Vec<u32>, + }, + CompositeConstruct { + result_type_id: Id, + result_id: Id, + constituents: Vec<Id>, + }, + CompositeExtract { + result_type_id: Id, + result_id: Id, + composite: Id, + indexes: Vec<u32>, + }, + CompositeInsert { + result_type_id: Id, + result_id: Id, + object: Id, + composite: Id, + indexes: Vec<u32>, + }, + CopyObject { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + Transpose { + result_type_id: Id, + result_id: Id, + matrix: Id, + }, + SampledImage { + result_type_id: Id, + result_id: Id, + image: Id, + sampler: Id, + }, + ImageSampleImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageSampleExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: ImageOperands, + }, + ImageSampleDrefImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageSampleDrefExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: ImageOperands, + }, + ImageSampleProjImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageSampleProjExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: ImageOperands, + }, + ImageSampleProjDrefImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageSampleProjDrefExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: ImageOperands, + }, + ImageFetch { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageGather { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + component: Id, + image_operands: Option<ImageOperands>, + }, + ImageDrefGather { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageRead { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageWrite { + image: Id, + coordinate: Id, + texel: Id, + image_operands: Option<ImageOperands>, + }, + Image { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + }, + ImageQueryFormat { + result_type_id: Id, + result_id: Id, + image: Id, + }, + ImageQueryOrder { + result_type_id: Id, + result_id: Id, + image: Id, + }, + ImageQuerySizeLod { + result_type_id: Id, + result_id: Id, + image: Id, + level_of_detail: Id, + }, + ImageQuerySize { + result_type_id: Id, + result_id: Id, + image: Id, + }, + ImageQueryLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + }, + ImageQueryLevels { + result_type_id: Id, + result_id: Id, + image: Id, + }, + ImageQuerySamples { + result_type_id: Id, + result_id: Id, + image: Id, + }, + ConvertFToU { + result_type_id: Id, + result_id: Id, + float_value: Id, + }, + ConvertFToS { + result_type_id: Id, + result_id: Id, + float_value: Id, + }, + ConvertSToF { + result_type_id: Id, + result_id: Id, + signed_value: Id, + }, + ConvertUToF { + result_type_id: Id, + result_id: Id, + unsigned_value: Id, + }, + UConvert { + result_type_id: Id, + result_id: Id, + unsigned_value: Id, + }, + SConvert { + result_type_id: Id, + result_id: Id, + signed_value: Id, + }, + FConvert { + result_type_id: Id, + result_id: Id, + float_value: Id, + }, + QuantizeToF16 { + result_type_id: Id, + result_id: Id, + value: Id, + }, + ConvertPtrToU { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + SatConvertSToU { + result_type_id: Id, + result_id: Id, + signed_value: Id, + }, + SatConvertUToS { + result_type_id: Id, + result_id: Id, + unsigned_value: Id, + }, + ConvertUToPtr { + result_type_id: Id, + result_id: Id, + integer_value: Id, + }, + PtrCastToGeneric { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + GenericCastToPtr { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + GenericCastToPtrExplicit { + result_type_id: Id, + result_id: Id, + pointer: Id, + storage: StorageClass, + }, + Bitcast { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + SNegate { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + FNegate { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + IAdd { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FAdd { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ISub { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FSub { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + IMul { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FMul { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UDiv { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SDiv { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FDiv { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UMod { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SRem { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SMod { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FRem { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FMod { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + VectorTimesScalar { + result_type_id: Id, + result_id: Id, + vector: Id, + scalar: Id, + }, + MatrixTimesScalar { + result_type_id: Id, + result_id: Id, + matrix: Id, + scalar: Id, + }, + VectorTimesMatrix { + result_type_id: Id, + result_id: Id, + vector: Id, + matrix: Id, + }, + MatrixTimesVector { + result_type_id: Id, + result_id: Id, + matrix: Id, + vector: Id, + }, + MatrixTimesMatrix { + result_type_id: Id, + result_id: Id, + left_matrix: Id, + right_matrix: Id, + }, + OuterProduct { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + }, + Dot { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + }, + IAddCarry { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ISubBorrow { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UMulExtended { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SMulExtended { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + Any { + result_type_id: Id, + result_id: Id, + vector: Id, + }, + All { + result_type_id: Id, + result_id: Id, + vector: Id, + }, + IsNan { + result_type_id: Id, + result_id: Id, + x: Id, + }, + IsInf { + result_type_id: Id, + result_id: Id, + x: Id, + }, + IsFinite { + result_type_id: Id, + result_id: Id, + x: Id, + }, + IsNormal { + result_type_id: Id, + result_id: Id, + x: Id, + }, + SignBitSet { + result_type_id: Id, + result_id: Id, + x: Id, + }, + LessOrGreater { + result_type_id: Id, + result_id: Id, + x: Id, + y: Id, + }, + Ordered { + result_type_id: Id, + result_id: Id, + x: Id, + y: Id, + }, + Unordered { + result_type_id: Id, + result_id: Id, + x: Id, + y: Id, + }, + LogicalEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + LogicalNotEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + LogicalOr { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + LogicalAnd { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + LogicalNot { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + Select { + result_type_id: Id, + result_id: Id, + condition: Id, + object_1: Id, + object_2: Id, + }, + IEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + INotEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UGreaterThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SGreaterThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UGreaterThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SGreaterThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ULessThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SLessThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ULessThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + SLessThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdNotEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordNotEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdLessThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordLessThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdGreaterThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordGreaterThan { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdLessThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordLessThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FOrdGreaterThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + FUnordGreaterThanEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ShiftRightLogical { + result_type_id: Id, + result_id: Id, + base: Id, + shift: Id, + }, + ShiftRightArithmetic { + result_type_id: Id, + result_id: Id, + base: Id, + shift: Id, + }, + ShiftLeftLogical { + result_type_id: Id, + result_id: Id, + base: Id, + shift: Id, + }, + BitwiseOr { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + BitwiseXor { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + BitwiseAnd { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + Not { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + BitFieldInsert { + result_type_id: Id, + result_id: Id, + base: Id, + insert: Id, + offset: Id, + count: Id, + }, + BitFieldSExtract { + result_type_id: Id, + result_id: Id, + base: Id, + offset: Id, + count: Id, + }, + BitFieldUExtract { + result_type_id: Id, + result_id: Id, + base: Id, + offset: Id, + count: Id, + }, + BitReverse { + result_type_id: Id, + result_id: Id, + base: Id, + }, + BitCount { + result_type_id: Id, + result_id: Id, + base: Id, + }, + DPdx { + result_type_id: Id, + result_id: Id, + p: Id, + }, + DPdy { + result_type_id: Id, + result_id: Id, + p: Id, + }, + Fwidth { + result_type_id: Id, + result_id: Id, + p: Id, + }, + DPdxFine { + result_type_id: Id, + result_id: Id, + p: Id, + }, + DPdyFine { + result_type_id: Id, + result_id: Id, + p: Id, + }, + FwidthFine { + result_type_id: Id, + result_id: Id, + p: Id, + }, + DPdxCoarse { + result_type_id: Id, + result_id: Id, + p: Id, + }, + DPdyCoarse { + result_type_id: Id, + result_id: Id, + p: Id, + }, + FwidthCoarse { + result_type_id: Id, + result_id: Id, + p: Id, + }, + EmitVertex, + EndPrimitive, + EmitStreamVertex { + stream: Id, + }, + EndStreamPrimitive { + stream: Id, + }, + ControlBarrier { + execution: Id, + memory: Id, + semantics: Id, + }, + MemoryBarrier { + memory: Id, + semantics: Id, + }, + AtomicLoad { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + }, + AtomicStore { + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicExchange { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicCompareExchange { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + equal: Id, + unequal: Id, + value: Id, + comparator: Id, + }, + AtomicCompareExchangeWeak { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + equal: Id, + unequal: Id, + value: Id, + comparator: Id, + }, + AtomicIIncrement { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + }, + AtomicIDecrement { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + }, + AtomicIAdd { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicISub { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicSMin { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicUMin { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicSMax { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicUMax { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicAnd { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicOr { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicXor { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + Phi { + result_type_id: Id, + result_id: Id, + variable_parent: Vec<(Id, Id)>, + }, + LoopMerge { + merge_block: Id, + continue_target: Id, + loop_control: LoopControl, + }, + SelectionMerge { + merge_block: Id, + selection_control: SelectionControl, + }, + Label { + result_id: Id, + }, + Branch { + target_label: Id, + }, + BranchConditional { + condition: Id, + true_label: Id, + false_label: Id, + branch_weights: Vec<u32>, + }, + Switch { + selector: Id, + default: Id, + target: Vec<(u32, Id)>, + }, + Kill, + Return, + ReturnValue { + value: Id, + }, + Unreachable, + LifetimeStart { + pointer: Id, + size: u32, + }, + LifetimeStop { + pointer: Id, + size: u32, + }, + GroupAsyncCopy { + result_type_id: Id, + result_id: Id, + execution: Id, + destination: Id, + source: Id, + num_elements: Id, + stride: Id, + event: Id, + }, + GroupWaitEvents { + execution: Id, + num_events: Id, + events_list: Id, + }, + GroupAll { + result_type_id: Id, + result_id: Id, + execution: Id, + predicate: Id, + }, + GroupAny { + result_type_id: Id, + result_id: Id, + execution: Id, + predicate: Id, + }, + GroupBroadcast { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + local_id: Id, + }, + GroupIAdd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFAdd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupUMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupSMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupUMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupSMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + ReadPipe { + result_type_id: Id, + result_id: Id, + pipe: Id, + pointer: Id, + packet_size: Id, + packet_alignment: Id, + }, + WritePipe { + result_type_id: Id, + result_id: Id, + pipe: Id, + pointer: Id, + packet_size: Id, + packet_alignment: Id, + }, + ReservedReadPipe { + result_type_id: Id, + result_id: Id, + pipe: Id, + reserve_id: Id, + index: Id, + pointer: Id, + packet_size: Id, + packet_alignment: Id, + }, + ReservedWritePipe { + result_type_id: Id, + result_id: Id, + pipe: Id, + reserve_id: Id, + index: Id, + pointer: Id, + packet_size: Id, + packet_alignment: Id, + }, + ReserveReadPipePackets { + result_type_id: Id, + result_id: Id, + pipe: Id, + num_packets: Id, + packet_size: Id, + packet_alignment: Id, + }, + ReserveWritePipePackets { + result_type_id: Id, + result_id: Id, + pipe: Id, + num_packets: Id, + packet_size: Id, + packet_alignment: Id, + }, + CommitReadPipe { + pipe: Id, + reserve_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + CommitWritePipe { + pipe: Id, + reserve_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + IsValidReserveId { + result_type_id: Id, + result_id: Id, + reserve_id: Id, + }, + GetNumPipePackets { + result_type_id: Id, + result_id: Id, + pipe: Id, + packet_size: Id, + packet_alignment: Id, + }, + GetMaxPipePackets { + result_type_id: Id, + result_id: Id, + pipe: Id, + packet_size: Id, + packet_alignment: Id, + }, + GroupReserveReadPipePackets { + result_type_id: Id, + result_id: Id, + execution: Id, + pipe: Id, + num_packets: Id, + packet_size: Id, + packet_alignment: Id, + }, + GroupReserveWritePipePackets { + result_type_id: Id, + result_id: Id, + execution: Id, + pipe: Id, + num_packets: Id, + packet_size: Id, + packet_alignment: Id, + }, + GroupCommitReadPipe { + execution: Id, + pipe: Id, + reserve_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + GroupCommitWritePipe { + execution: Id, + pipe: Id, + reserve_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + EnqueueMarker { + result_type_id: Id, + result_id: Id, + queue: Id, + num_events: Id, + wait_events: Id, + ret_event: Id, + }, + EnqueueKernel { + result_type_id: Id, + result_id: Id, + queue: Id, + flags: Id, + nd_range: Id, + num_events: Id, + wait_events: Id, + ret_event: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + local_size: Vec<Id>, + }, + GetKernelNDrangeSubGroupCount { + result_type_id: Id, + result_id: Id, + nd_range: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + GetKernelNDrangeMaxSubGroupSize { + result_type_id: Id, + result_id: Id, + nd_range: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + GetKernelWorkGroupSize { + result_type_id: Id, + result_id: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + GetKernelPreferredWorkGroupSizeMultiple { + result_type_id: Id, + result_id: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + RetainEvent { + event: Id, + }, + ReleaseEvent { + event: Id, + }, + CreateUserEvent { + result_type_id: Id, + result_id: Id, + }, + IsValidEvent { + result_type_id: Id, + result_id: Id, + event: Id, + }, + SetUserEventStatus { + event: Id, + status: Id, + }, + CaptureEventProfilingInfo { + event: Id, + profiling_info: Id, + value: Id, + }, + GetDefaultQueue { + result_type_id: Id, + result_id: Id, + }, + BuildNDRange { + result_type_id: Id, + result_id: Id, + global_work_size: Id, + local_work_size: Id, + global_work_offset: Id, + }, + ImageSparseSampleImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseSampleExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: ImageOperands, + }, + ImageSparseSampleDrefImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseSampleDrefExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: ImageOperands, + }, + ImageSparseSampleProjImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseSampleProjExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + image_operands: ImageOperands, + }, + ImageSparseSampleProjDrefImplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseSampleProjDrefExplicitLod { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: ImageOperands, + }, + ImageSparseFetch { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseGather { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + component: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseDrefGather { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + dref: Id, + image_operands: Option<ImageOperands>, + }, + ImageSparseTexelsResident { + result_type_id: Id, + result_id: Id, + resident_code: Id, + }, + NoLine, + AtomicFlagTestAndSet { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + }, + AtomicFlagClear { + pointer: Id, + memory: Id, + semantics: Id, + }, + ImageSparseRead { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + image_operands: Option<ImageOperands>, + }, + SizeOf { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + TypePipeStorage { + result_id: Id, + }, + ConstantPipeStorage { + result_type_id: Id, + result_id: Id, + packet_size: u32, + packet_alignment: u32, + capacity: u32, + }, + CreatePipeFromPipeStorage { + result_type_id: Id, + result_id: Id, + pipe_storage: Id, + }, + GetKernelLocalSizeForSubgroupCount { + result_type_id: Id, + result_id: Id, + subgroup_count: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + GetKernelMaxNumSubgroups { + result_type_id: Id, + result_id: Id, + invoke: Id, + param: Id, + param_size: Id, + param_align: Id, + }, + TypeNamedBarrier { + result_id: Id, + }, + NamedBarrierInitialize { + result_type_id: Id, + result_id: Id, + subgroup_count: Id, + }, + MemoryNamedBarrier { + named_barrier: Id, + memory: Id, + semantics: Id, + }, + ModuleProcessed { + process: String, + }, + ExecutionModeId { + entry_point: Id, + mode: ExecutionMode, + }, + DecorateId { + target: Id, + decoration: Decoration, + }, + GroupNonUniformElect { + result_type_id: Id, + result_id: Id, + execution: Id, + }, + GroupNonUniformAll { + result_type_id: Id, + result_id: Id, + execution: Id, + predicate: Id, + }, + GroupNonUniformAny { + result_type_id: Id, + result_id: Id, + execution: Id, + predicate: Id, + }, + GroupNonUniformAllEqual { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + }, + GroupNonUniformBroadcast { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + id: Id, + }, + GroupNonUniformBroadcastFirst { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + }, + GroupNonUniformBallot { + result_type_id: Id, + result_id: Id, + execution: Id, + predicate: Id, + }, + GroupNonUniformInverseBallot { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + }, + GroupNonUniformBallotBitExtract { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + index: Id, + }, + GroupNonUniformBallotBitCount { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + }, + GroupNonUniformBallotFindLSB { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + }, + GroupNonUniformBallotFindMSB { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + }, + GroupNonUniformShuffle { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + id: Id, + }, + GroupNonUniformShuffleXor { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + mask: Id, + }, + GroupNonUniformShuffleUp { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + delta: Id, + }, + GroupNonUniformShuffleDown { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + delta: Id, + }, + GroupNonUniformIAdd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformFAdd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformIMul { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformFMul { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformSMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformUMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformFMin { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformSMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformUMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformFMax { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformBitwiseAnd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformBitwiseOr { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformBitwiseXor { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformLogicalAnd { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformLogicalOr { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformLogicalXor { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + value: Id, + cluster_size: Option<Id>, + }, + GroupNonUniformQuadBroadcast { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + index: Id, + }, + GroupNonUniformQuadSwap { + result_type_id: Id, + result_id: Id, + execution: Id, + value: Id, + direction: Id, + }, + CopyLogical { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + PtrEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + PtrNotEqual { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + PtrDiff { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + TerminateInvocation, + SubgroupBallotKHR { + result_type_id: Id, + result_id: Id, + predicate: Id, + }, + SubgroupFirstInvocationKHR { + result_type_id: Id, + result_id: Id, + value: Id, + }, + SubgroupAllKHR { + result_type_id: Id, + result_id: Id, + predicate: Id, + }, + SubgroupAnyKHR { + result_type_id: Id, + result_id: Id, + predicate: Id, + }, + SubgroupAllEqualKHR { + result_type_id: Id, + result_id: Id, + predicate: Id, + }, + SubgroupReadInvocationKHR { + result_type_id: Id, + result_id: Id, + value: Id, + index: Id, + }, + TraceRayKHR { + accel: Id, + ray_flags: Id, + cull_mask: Id, + sbt_offset: Id, + sbt_stride: Id, + miss_index: Id, + ray_origin: Id, + ray_tmin: Id, + ray_direction: Id, + ray_tmax: Id, + payload: Id, + }, + ExecuteCallableKHR { + sbt_index: Id, + callable_data: Id, + }, + ConvertUToAccelerationStructureKHR { + result_type_id: Id, + result_id: Id, + accel: Id, + }, + IgnoreIntersectionKHR, + TerminateRayKHR, + SDot { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + UDot { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + SUDot { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + SDotAccSat { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + accumulator: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + UDotAccSat { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + accumulator: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + SUDotAccSat { + result_type_id: Id, + result_id: Id, + vector_1: Id, + vector_2: Id, + accumulator: Id, + packed_vector_format: Option<PackedVectorFormat>, + }, + TypeRayQueryKHR { + result_id: Id, + }, + RayQueryInitializeKHR { + ray_query: Id, + accel: Id, + ray_flags: Id, + cull_mask: Id, + ray_origin: Id, + ray_t_min: Id, + ray_direction: Id, + ray_t_max: Id, + }, + RayQueryTerminateKHR { + ray_query: Id, + }, + RayQueryGenerateIntersectionKHR { + ray_query: Id, + hit_t: Id, + }, + RayQueryConfirmIntersectionKHR { + ray_query: Id, + }, + RayQueryProceedKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetIntersectionTypeKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + GroupIAddNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFAddNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFMinNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupUMinNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupSMinNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupFMaxNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupUMaxNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + GroupSMaxNonUniformAMD { + result_type_id: Id, + result_id: Id, + execution: Id, + operation: GroupOperation, + x: Id, + }, + FragmentMaskFetchAMD { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + }, + FragmentFetchAMD { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + fragment_index: Id, + }, + ReadClockKHR { + result_type_id: Id, + result_id: Id, + scope: Id, + }, + ImageSampleFootprintNV { + result_type_id: Id, + result_id: Id, + sampled_image: Id, + coordinate: Id, + granularity: Id, + coarse: Id, + image_operands: Option<ImageOperands>, + }, + GroupNonUniformPartitionNV { + result_type_id: Id, + result_id: Id, + value: Id, + }, + WritePackedPrimitiveIndices4x8NV { + index_offset: Id, + packed_indices: Id, + }, + ReportIntersectionKHR { + result_type_id: Id, + result_id: Id, + hit: Id, + hit_kind: Id, + }, + IgnoreIntersectionNV, + TerminateRayNV, + TraceNV { + accel: Id, + ray_flags: Id, + cull_mask: Id, + sbt_offset: Id, + sbt_stride: Id, + miss_index: Id, + ray_origin: Id, + ray_tmin: Id, + ray_direction: Id, + ray_tmax: Id, + payload_id: Id, + }, + TraceMotionNV { + accel: Id, + ray_flags: Id, + cull_mask: Id, + sbt_offset: Id, + sbt_stride: Id, + miss_index: Id, + ray_origin: Id, + ray_tmin: Id, + ray_direction: Id, + ray_tmax: Id, + time: Id, + payload_id: Id, + }, + TraceRayMotionNV { + accel: Id, + ray_flags: Id, + cull_mask: Id, + sbt_offset: Id, + sbt_stride: Id, + miss_index: Id, + ray_origin: Id, + ray_tmin: Id, + ray_direction: Id, + ray_tmax: Id, + time: Id, + payload: Id, + }, + TypeAccelerationStructureKHR { + result_id: Id, + }, + ExecuteCallableNV { + sbt_index: Id, + callable_data_id: Id, + }, + TypeCooperativeMatrixNV { + result_id: Id, + component_type: Id, + execution: Id, + rows: Id, + columns: Id, + }, + CooperativeMatrixLoadNV { + result_type_id: Id, + result_id: Id, + pointer: Id, + stride: Id, + column_major: Id, + memory_access: Option<MemoryAccess>, + }, + CooperativeMatrixStoreNV { + pointer: Id, + object: Id, + stride: Id, + column_major: Id, + memory_access: Option<MemoryAccess>, + }, + CooperativeMatrixMulAddNV { + result_type_id: Id, + result_id: Id, + a: Id, + b: Id, + c: Id, + }, + CooperativeMatrixLengthNV { + result_type_id: Id, + result_id: Id, + ty: Id, + }, + BeginInvocationInterlockEXT, + EndInvocationInterlockEXT, + DemoteToHelperInvocation, + IsHelperInvocationEXT { + result_type_id: Id, + result_id: Id, + }, + ConvertUToImageNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + ConvertUToSamplerNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + ConvertImageToUNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + ConvertSamplerToUNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + ConvertUToSampledImageNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + ConvertSampledImageToUNV { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + SamplerImageAddressingModeNV { + bit_width: u32, + }, + SubgroupShuffleINTEL { + result_type_id: Id, + result_id: Id, + data: Id, + invocation_id: Id, + }, + SubgroupShuffleDownINTEL { + result_type_id: Id, + result_id: Id, + current: Id, + next: Id, + delta: Id, + }, + SubgroupShuffleUpINTEL { + result_type_id: Id, + result_id: Id, + previous: Id, + current: Id, + delta: Id, + }, + SubgroupShuffleXorINTEL { + result_type_id: Id, + result_id: Id, + data: Id, + value: Id, + }, + SubgroupBlockReadINTEL { + result_type_id: Id, + result_id: Id, + ptr: Id, + }, + SubgroupBlockWriteINTEL { + ptr: Id, + data: Id, + }, + SubgroupImageBlockReadINTEL { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + }, + SubgroupImageBlockWriteINTEL { + image: Id, + coordinate: Id, + data: Id, + }, + SubgroupImageMediaBlockReadINTEL { + result_type_id: Id, + result_id: Id, + image: Id, + coordinate: Id, + width: Id, + height: Id, + }, + SubgroupImageMediaBlockWriteINTEL { + image: Id, + coordinate: Id, + width: Id, + height: Id, + data: Id, + }, + UCountLeadingZerosINTEL { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + UCountTrailingZerosINTEL { + result_type_id: Id, + result_id: Id, + operand: Id, + }, + AbsISubINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + AbsUSubINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + IAddSatINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UAddSatINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + IAverageINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UAverageINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + IAverageRoundedINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UAverageRoundedINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ISubSatINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + USubSatINTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + IMul32x16INTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + UMul32x16INTEL { + result_type_id: Id, + result_id: Id, + operand1: Id, + operand2: Id, + }, + ConstantFunctionPointerINTEL { + result_type_id: Id, + result_id: Id, + function: Id, + }, + FunctionPointerCallINTEL { + result_type_id: Id, + result_id: Id, + operand1: Vec<Id>, + }, + AsmTargetINTEL { + result_type_id: Id, + result_id: Id, + asm_target: String, + }, + AsmINTEL { + result_type_id: Id, + result_id: Id, + asm_type: Id, + target: Id, + asm_instructions: String, + constraints: String, + }, + AsmCallINTEL { + result_type_id: Id, + result_id: Id, + asm: Id, + argument_0: Vec<Id>, + }, + AtomicFMinEXT { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AtomicFMaxEXT { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + AssumeTrueKHR { + condition: Id, + }, + ExpectKHR { + result_type_id: Id, + result_id: Id, + value: Id, + expected_value: Id, + }, + DecorateString { + target: Id, + decoration: Decoration, + }, + MemberDecorateString { + struct_type: Id, + member: u32, + decoration: Decoration, + }, + VmeImageINTEL { + result_type_id: Id, + result_id: Id, + image_type: Id, + sampler: Id, + }, + TypeVmeImageINTEL { + result_id: Id, + image_type: Id, + }, + TypeAvcImePayloadINTEL { + result_id: Id, + }, + TypeAvcRefPayloadINTEL { + result_id: Id, + }, + TypeAvcSicPayloadINTEL { + result_id: Id, + }, + TypeAvcMcePayloadINTEL { + result_id: Id, + }, + TypeAvcMceResultINTEL { + result_id: Id, + }, + TypeAvcImeResultINTEL { + result_id: Id, + }, + TypeAvcImeResultSingleReferenceStreamoutINTEL { + result_id: Id, + }, + TypeAvcImeResultDualReferenceStreamoutINTEL { + result_id: Id, + }, + TypeAvcImeSingleReferenceStreaminINTEL { + result_id: Id, + }, + TypeAvcImeDualReferenceStreaminINTEL { + result_id: Id, + }, + TypeAvcRefResultINTEL { + result_id: Id, + }, + TypeAvcSicResultINTEL { + result_id: Id, + }, + SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL { + result_type_id: Id, + result_id: Id, + reference_base_penalty: Id, + payload: Id, + }, + SubgroupAvcMceGetDefaultInterShapePenaltyINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceSetInterShapePenaltyINTEL { + result_type_id: Id, + result_id: Id, + packed_shape_penalty: Id, + payload: Id, + }, + SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceSetInterDirectionPenaltyINTEL { + result_type_id: Id, + result_id: Id, + direction_cost: Id, + payload: Id, + }, + SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL { + result_type_id: Id, + result_id: Id, + }, + SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL { + result_type_id: Id, + result_id: Id, + }, + SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL { + result_type_id: Id, + result_id: Id, + }, + SubgroupAvcMceSetMotionVectorCostFunctionINTEL { + result_type_id: Id, + result_id: Id, + packed_cost_center_delta: Id, + packed_cost_table: Id, + cost_precision: Id, + payload: Id, + }, + SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL { + result_type_id: Id, + result_id: Id, + slice_type: Id, + qp: Id, + }, + SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL { + result_type_id: Id, + result_id: Id, + }, + SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL { + result_type_id: Id, + result_id: Id, + }, + SubgroupAvcMceSetAcOnlyHaarINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL { + result_type_id: Id, + result_id: Id, + source_field_polarity: Id, + payload: Id, + }, + SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL { + result_type_id: Id, + result_id: Id, + reference_field_polarity: Id, + payload: Id, + }, + SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL { + result_type_id: Id, + result_id: Id, + forward_reference_field_polarity: Id, + backward_reference_field_polarity: Id, + payload: Id, + }, + SubgroupAvcMceConvertToImePayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceConvertToImeResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceConvertToRefPayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceConvertToRefResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceConvertToSicPayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceConvertToSicResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetMotionVectorsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterDistortionsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetBestInterDistortionsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterMajorShapeINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterMinorShapeINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterDirectionsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterMotionVectorCountINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterReferenceIdsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL { + result_type_id: Id, + result_id: Id, + packed_reference_ids: Id, + packed_reference_parameter_field_polarities: Id, + payload: Id, + }, + SubgroupAvcImeInitializeINTEL { + result_type_id: Id, + result_id: Id, + src_coord: Id, + partition_mask: Id, + sad_adjustment: Id, + }, + SubgroupAvcImeSetSingleReferenceINTEL { + result_type_id: Id, + result_id: Id, + ref_offset: Id, + search_window_config: Id, + payload: Id, + }, + SubgroupAvcImeSetDualReferenceINTEL { + result_type_id: Id, + result_id: Id, + fwd_ref_offset: Id, + bwd_ref_offset: Id, + id_search_window_config: Id, + payload: Id, + }, + SubgroupAvcImeRefWindowSizeINTEL { + result_type_id: Id, + result_id: Id, + search_window_config: Id, + dual_ref: Id, + }, + SubgroupAvcImeAdjustRefOffsetINTEL { + result_type_id: Id, + result_id: Id, + ref_offset: Id, + src_coord: Id, + ref_window_size: Id, + image_size: Id, + }, + SubgroupAvcImeConvertToMcePayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeSetMaxMotionVectorCountINTEL { + result_type_id: Id, + result_id: Id, + max_motion_vector_count: Id, + payload: Id, + }, + SubgroupAvcImeSetUnidirectionalMixDisableINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL { + result_type_id: Id, + result_id: Id, + threshold: Id, + payload: Id, + }, + SubgroupAvcImeSetWeightedSadINTEL { + result_type_id: Id, + result_id: Id, + packed_sad_weights: Id, + payload: Id, + }, + SubgroupAvcImeEvaluateWithSingleReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + }, + SubgroupAvcImeEvaluateWithDualReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + }, + SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + streamin_components: Id, + }, + SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + streamin_components: Id, + }, + SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + }, + SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + }, + SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + streamin_components: Id, + }, + SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + streamin_components: Id, + }, + SubgroupAvcImeConvertToMceResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetSingleReferenceStreaminINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetDualReferenceStreaminINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeStripSingleReferenceStreamoutINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeStripDualReferenceStreamoutINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + }, + SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + }, + SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + }, + SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + direction: Id, + }, + SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + direction: Id, + }, + SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + major_shape: Id, + direction: Id, + }, + SubgroupAvcImeGetBorderReachedINTEL { + result_type_id: Id, + result_id: Id, + image_select: Id, + payload: Id, + }, + SubgroupAvcImeGetTruncatedSearchIndicationINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcFmeInitializeINTEL { + result_type_id: Id, + result_id: Id, + src_coord: Id, + motion_vectors: Id, + major_shapes: Id, + minor_shapes: Id, + direction: Id, + pixel_resolution: Id, + sad_adjustment: Id, + }, + SubgroupAvcBmeInitializeINTEL { + result_type_id: Id, + result_id: Id, + src_coord: Id, + motion_vectors: Id, + major_shapes: Id, + minor_shapes: Id, + direction: Id, + pixel_resolution: Id, + bidirectional_weight: Id, + sad_adjustment: Id, + }, + SubgroupAvcRefConvertToMcePayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcRefSetBidirectionalMixDisableINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcRefSetBilinearFilterEnableINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcRefEvaluateWithSingleReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + }, + SubgroupAvcRefEvaluateWithDualReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + }, + SubgroupAvcRefEvaluateWithMultiReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + packed_reference_ids: Id, + payload: Id, + }, + SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + packed_reference_ids: Id, + packed_reference_field_polarities: Id, + payload: Id, + }, + SubgroupAvcRefConvertToMceResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicInitializeINTEL { + result_type_id: Id, + result_id: Id, + src_coord: Id, + }, + SubgroupAvcSicConfigureSkcINTEL { + result_type_id: Id, + result_id: Id, + skip_block_partition_type: Id, + skip_motion_vector_mask: Id, + motion_vectors: Id, + bidirectional_weight: Id, + sad_adjustment: Id, + payload: Id, + }, + SubgroupAvcSicConfigureIpeLumaINTEL { + result_type_id: Id, + result_id: Id, + luma_intra_partition_mask: Id, + intra_neighbour_availabilty: Id, + left_edge_luma_pixels: Id, + upper_left_corner_luma_pixel: Id, + upper_edge_luma_pixels: Id, + upper_right_edge_luma_pixels: Id, + sad_adjustment: Id, + payload: Id, + }, + SubgroupAvcSicConfigureIpeLumaChromaINTEL { + result_type_id: Id, + result_id: Id, + luma_intra_partition_mask: Id, + intra_neighbour_availabilty: Id, + left_edge_luma_pixels: Id, + upper_left_corner_luma_pixel: Id, + upper_edge_luma_pixels: Id, + upper_right_edge_luma_pixels: Id, + left_edge_chroma_pixels: Id, + upper_left_corner_chroma_pixel: Id, + upper_edge_chroma_pixels: Id, + sad_adjustment: Id, + payload: Id, + }, + SubgroupAvcSicGetMotionVectorMaskINTEL { + result_type_id: Id, + result_id: Id, + skip_block_partition_type: Id, + direction: Id, + }, + SubgroupAvcSicConvertToMcePayloadINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicSetIntraLumaShapePenaltyINTEL { + result_type_id: Id, + result_id: Id, + packed_shape_penalty: Id, + payload: Id, + }, + SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL { + result_type_id: Id, + result_id: Id, + luma_mode_penalty: Id, + luma_packed_neighbor_modes: Id, + luma_packed_non_dc_penalty: Id, + payload: Id, + }, + SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL { + result_type_id: Id, + result_id: Id, + chroma_mode_base_penalty: Id, + payload: Id, + }, + SubgroupAvcSicSetBilinearFilterEnableINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicSetSkcForwardTransformEnableINTEL { + result_type_id: Id, + result_id: Id, + packed_sad_coefficients: Id, + payload: Id, + }, + SubgroupAvcSicSetBlockBasedRawSkipSadINTEL { + result_type_id: Id, + result_id: Id, + block_based_skip_type: Id, + payload: Id, + }, + SubgroupAvcSicEvaluateIpeINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + payload: Id, + }, + SubgroupAvcSicEvaluateWithSingleReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + ref_image: Id, + payload: Id, + }, + SubgroupAvcSicEvaluateWithDualReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + fwd_ref_image: Id, + bwd_ref_image: Id, + payload: Id, + }, + SubgroupAvcSicEvaluateWithMultiReferenceINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + packed_reference_ids: Id, + payload: Id, + }, + SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL { + result_type_id: Id, + result_id: Id, + src_image: Id, + packed_reference_ids: Id, + packed_reference_field_polarities: Id, + payload: Id, + }, + SubgroupAvcSicConvertToMceResultINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetIpeLumaShapeINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetBestIpeLumaDistortionINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetBestIpeChromaDistortionINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetPackedIpeLumaModesINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetIpeChromaModeINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + SubgroupAvcSicGetInterRawSadsINTEL { + result_type_id: Id, + result_id: Id, + payload: Id, + }, + VariableLengthArrayINTEL { + result_type_id: Id, + result_id: Id, + lenght: Id, + }, + SaveMemoryINTEL { + result_type_id: Id, + result_id: Id, + }, + RestoreMemoryINTEL { + ptr: Id, + }, + ArbitraryFloatSinCosPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + from_sign: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCastINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCastFromIntINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + mout: u32, + from_sign: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCastToIntINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatAddINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatSubINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatMulINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatDivINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatGTINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + }, + ArbitraryFloatGEINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + }, + ArbitraryFloatLTINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + }, + ArbitraryFloatLEINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + }, + ArbitraryFloatEQINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + }, + ArbitraryFloatRecipINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatRSqrtINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCbrtINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatHypotINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatSqrtINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatLogINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatLog2INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatLog10INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatLog1pINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatExpINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatExp2INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatExp10INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatExpm1INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatSinINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCosINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatSinCosINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatSinPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatCosPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatASinINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatASinPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatACosINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatACosPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatATanINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatATanPiINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatATan2INTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatPowINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatPowRINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + m2: u32, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + ArbitraryFloatPowNINTEL { + result_type_id: Id, + result_id: Id, + a: Id, + m1: u32, + b: Id, + mout: u32, + enable_subnormals: u32, + rounding_mode: u32, + rounding_accuracy: u32, + }, + LoopControlINTEL { + loop_control_parameters: Vec<u32>, + }, + FixedSqrtINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedRecipINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedRsqrtINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedSinINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedCosINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedSinCosINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedSinPiINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedCosPiINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedSinCosPiINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedLogINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + FixedExpINTEL { + result_type_id: Id, + result_id: Id, + input_type: Id, + input: Id, + s: u32, + i: u32, + r_i: u32, + q: u32, + o: u32, + }, + PtrCastToCrossWorkgroupINTEL { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + CrossWorkgroupCastToPtrINTEL { + result_type_id: Id, + result_id: Id, + pointer: Id, + }, + ReadPipeBlockingINTEL { + result_type_id: Id, + result_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + WritePipeBlockingINTEL { + result_type_id: Id, + result_id: Id, + packet_size: Id, + packet_alignment: Id, + }, + FPGARegINTEL { + result_type_id: Id, + result_id: Id, + result: Id, + input: Id, + }, + RayQueryGetRayTMinKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetRayFlagsKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetIntersectionTKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionInstanceCustomIndexKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionInstanceIdKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionGeometryIndexKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionPrimitiveIndexKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionBarycentricsKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionFrontFaceKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionCandidateAABBOpaqueKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetIntersectionObjectRayDirectionKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionObjectRayOriginKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetWorldRayDirectionKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetWorldRayOriginKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + }, + RayQueryGetIntersectionObjectToWorldKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + RayQueryGetIntersectionWorldToObjectKHR { + result_type_id: Id, + result_id: Id, + ray_query: Id, + intersection: Id, + }, + AtomicFAddEXT { + result_type_id: Id, + result_id: Id, + pointer: Id, + memory: Id, + semantics: Id, + value: Id, + }, + TypeBufferSurfaceINTEL { + result_id: Id, + access_qualifier: AccessQualifier, + }, + TypeStructContinuedINTEL { + member_types: Vec<Id>, + }, + ConstantCompositeContinuedINTEL { + constituents: Vec<Id>, + }, + SpecConstantCompositeContinuedINTEL { + constituents: Vec<Id>, + }, +} +impl Instruction { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Self, ParseError> { + let opcode = (reader.next_u32()? & 0xffff) as u16; + Ok(match opcode { + 0u16 => Self::Nop, + 1u16 => Self::Undef { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 2u16 => Self::SourceContinued { + continued_source: reader.next_string()?, + }, + 3u16 => Self::Source { + source_language: SourceLanguage::parse(reader)?, + version: reader.next_u32()?, + file: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + source: if !reader.is_empty() { + Some(reader.next_string()?) + } else { + None + }, + }, + 4u16 => Self::SourceExtension { + extension: reader.next_string()?, + }, + 5u16 => Self::Name { + target: Id(reader.next_u32()?), + name: reader.next_string()?, + }, + 6u16 => Self::MemberName { + ty: Id(reader.next_u32()?), + member: reader.next_u32()?, + name: reader.next_string()?, + }, + 7u16 => Self::String { + result_id: Id(reader.next_u32()?), + string: reader.next_string()?, + }, + 8u16 => Self::Line { + file: Id(reader.next_u32()?), + line: reader.next_u32()?, + column: reader.next_u32()?, + }, + 10u16 => Self::Extension { + name: reader.next_string()?, + }, + 11u16 => Self::ExtInstImport { + result_id: Id(reader.next_u32()?), + name: reader.next_string()?, + }, + 12u16 => Self::ExtInst { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + set: Id(reader.next_u32()?), + instruction: reader.next_u32()?, + operands: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 14u16 => Self::MemoryModel { + addressing_model: AddressingModel::parse(reader)?, + memory_model: MemoryModel::parse(reader)?, + }, + 15u16 => Self::EntryPoint { + execution_model: ExecutionModel::parse(reader)?, + entry_point: Id(reader.next_u32()?), + name: reader.next_string()?, + interface: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 16u16 => Self::ExecutionMode { + entry_point: Id(reader.next_u32()?), + mode: ExecutionMode::parse(reader)?, + }, + 17u16 => Self::Capability { + capability: Capability::parse(reader)?, + }, + 19u16 => Self::TypeVoid { + result_id: Id(reader.next_u32()?), + }, + 20u16 => Self::TypeBool { + result_id: Id(reader.next_u32()?), + }, + 21u16 => Self::TypeInt { + result_id: Id(reader.next_u32()?), + width: reader.next_u32()?, + signedness: reader.next_u32()?, + }, + 22u16 => Self::TypeFloat { + result_id: Id(reader.next_u32()?), + width: reader.next_u32()?, + }, + 23u16 => Self::TypeVector { + result_id: Id(reader.next_u32()?), + component_type: Id(reader.next_u32()?), + component_count: reader.next_u32()?, + }, + 24u16 => Self::TypeMatrix { + result_id: Id(reader.next_u32()?), + column_type: Id(reader.next_u32()?), + column_count: reader.next_u32()?, + }, + 25u16 => Self::TypeImage { + result_id: Id(reader.next_u32()?), + sampled_type: Id(reader.next_u32()?), + dim: Dim::parse(reader)?, + depth: reader.next_u32()?, + arrayed: reader.next_u32()?, + ms: reader.next_u32()?, + sampled: reader.next_u32()?, + image_format: ImageFormat::parse(reader)?, + access_qualifier: if !reader.is_empty() { + Some(AccessQualifier::parse(reader)?) + } else { + None + }, + }, + 26u16 => Self::TypeSampler { + result_id: Id(reader.next_u32()?), + }, + 27u16 => Self::TypeSampledImage { + result_id: Id(reader.next_u32()?), + image_type: Id(reader.next_u32()?), + }, + 28u16 => Self::TypeArray { + result_id: Id(reader.next_u32()?), + element_type: Id(reader.next_u32()?), + length: Id(reader.next_u32()?), + }, + 29u16 => Self::TypeRuntimeArray { + result_id: Id(reader.next_u32()?), + element_type: Id(reader.next_u32()?), + }, + 30u16 => Self::TypeStruct { + result_id: Id(reader.next_u32()?), + member_types: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 31u16 => Self::TypeOpaque { + result_id: Id(reader.next_u32()?), + name: reader.next_string()?, + }, + 32u16 => Self::TypePointer { + result_id: Id(reader.next_u32()?), + storage_class: StorageClass::parse(reader)?, + ty: Id(reader.next_u32()?), + }, + 33u16 => Self::TypeFunction { + result_id: Id(reader.next_u32()?), + return_type: Id(reader.next_u32()?), + parameter_types: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 34u16 => Self::TypeEvent { + result_id: Id(reader.next_u32()?), + }, + 35u16 => Self::TypeDeviceEvent { + result_id: Id(reader.next_u32()?), + }, + 36u16 => Self::TypeReserveId { + result_id: Id(reader.next_u32()?), + }, + 37u16 => Self::TypeQueue { + result_id: Id(reader.next_u32()?), + }, + 38u16 => Self::TypePipe { + result_id: Id(reader.next_u32()?), + qualifier: AccessQualifier::parse(reader)?, + }, + 39u16 => Self::TypeForwardPointer { + pointer_type: Id(reader.next_u32()?), + storage_class: StorageClass::parse(reader)?, + }, + 41u16 => Self::ConstantTrue { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 42u16 => Self::ConstantFalse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 43u16 => Self::Constant { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: reader.remainder(), + }, + 44u16 => Self::ConstantComposite { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + constituents: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 45u16 => Self::ConstantSampler { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampler_addressing_mode: SamplerAddressingMode::parse(reader)?, + param: reader.next_u32()?, + sampler_filter_mode: SamplerFilterMode::parse(reader)?, + }, + 46u16 => Self::ConstantNull { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 48u16 => Self::SpecConstantTrue { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 49u16 => Self::SpecConstantFalse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 50u16 => Self::SpecConstant { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: reader.remainder(), + }, + 51u16 => Self::SpecConstantComposite { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + constituents: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 52u16 => Self::SpecConstantOp { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + opcode: SpecConstantInstruction::parse(reader)?, + }, + 54u16 => Self::Function { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + function_control: FunctionControl::parse(reader)?, + function_type: Id(reader.next_u32()?), + }, + 55u16 => Self::FunctionParameter { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 56u16 => Self::FunctionEnd, + 57u16 => Self::FunctionCall { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + function: Id(reader.next_u32()?), + arguments: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 59u16 => Self::Variable { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + storage_class: StorageClass::parse(reader)?, + initializer: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 60u16 => Self::ImageTexelPointer { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + sample: Id(reader.next_u32()?), + }, + 61u16 => Self::Load { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory_access: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 62u16 => Self::Store { + pointer: Id(reader.next_u32()?), + object: Id(reader.next_u32()?), + memory_access: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 63u16 => Self::CopyMemory { + target: Id(reader.next_u32()?), + source: Id(reader.next_u32()?), + memory_access1: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + memory_access2: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 64u16 => Self::CopyMemorySized { + target: Id(reader.next_u32()?), + source: Id(reader.next_u32()?), + size: Id(reader.next_u32()?), + memory_access1: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + memory_access2: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 65u16 => Self::AccessChain { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 66u16 => Self::InBoundsAccessChain { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 67u16 => Self::PtrAccessChain { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + element: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 68u16 => Self::ArrayLength { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + structure: Id(reader.next_u32()?), + array_member: reader.next_u32()?, + }, + 69u16 => Self::GenericPtrMemSemantics { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 70u16 => Self::InBoundsPtrAccessChain { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + element: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 71u16 => Self::Decorate { + target: Id(reader.next_u32()?), + decoration: Decoration::parse(reader)?, + }, + 72u16 => Self::MemberDecorate { + structure_type: Id(reader.next_u32()?), + member: reader.next_u32()?, + decoration: Decoration::parse(reader)?, + }, + 73u16 => Self::DecorationGroup { + result_id: Id(reader.next_u32()?), + }, + 74u16 => Self::GroupDecorate { + decoration_group: Id(reader.next_u32()?), + targets: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 75u16 => Self::GroupMemberDecorate { + decoration_group: Id(reader.next_u32()?), + targets: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push((Id(reader.next_u32()?), reader.next_u32()?)); + } + vec + }, + }, + 77u16 => Self::VectorExtractDynamic { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + }, + 78u16 => Self::VectorInsertDynamic { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + component: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + }, + 79u16 => Self::VectorShuffle { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + components: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 80u16 => Self::CompositeConstruct { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + constituents: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 81u16 => Self::CompositeExtract { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + composite: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 82u16 => Self::CompositeInsert { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + object: Id(reader.next_u32()?), + composite: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 83u16 => Self::CopyObject { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 84u16 => Self::Transpose { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + matrix: Id(reader.next_u32()?), + }, + 86u16 => Self::SampledImage { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + sampler: Id(reader.next_u32()?), + }, + 87u16 => Self::ImageSampleImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 88u16 => Self::ImageSampleExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 89u16 => Self::ImageSampleDrefImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 90u16 => Self::ImageSampleDrefExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 91u16 => Self::ImageSampleProjImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 92u16 => Self::ImageSampleProjExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 93u16 => Self::ImageSampleProjDrefImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 94u16 => Self::ImageSampleProjDrefExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 95u16 => Self::ImageFetch { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 96u16 => Self::ImageGather { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + component: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 97u16 => Self::ImageDrefGather { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 98u16 => Self::ImageRead { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 99u16 => Self::ImageWrite { + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + texel: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 100u16 => Self::Image { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + }, + 101u16 => Self::ImageQueryFormat { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + }, + 102u16 => Self::ImageQueryOrder { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + }, + 103u16 => Self::ImageQuerySizeLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + level_of_detail: Id(reader.next_u32()?), + }, + 104u16 => Self::ImageQuerySize { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + }, + 105u16 => Self::ImageQueryLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + }, + 106u16 => Self::ImageQueryLevels { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + }, + 107u16 => Self::ImageQuerySamples { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + }, + 109u16 => Self::ConvertFToU { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + float_value: Id(reader.next_u32()?), + }, + 110u16 => Self::ConvertFToS { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + float_value: Id(reader.next_u32()?), + }, + 111u16 => Self::ConvertSToF { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + signed_value: Id(reader.next_u32()?), + }, + 112u16 => Self::ConvertUToF { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + unsigned_value: Id(reader.next_u32()?), + }, + 113u16 => Self::UConvert { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + unsigned_value: Id(reader.next_u32()?), + }, + 114u16 => Self::SConvert { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + signed_value: Id(reader.next_u32()?), + }, + 115u16 => Self::FConvert { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + float_value: Id(reader.next_u32()?), + }, + 116u16 => Self::QuantizeToF16 { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 117u16 => Self::ConvertPtrToU { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 118u16 => Self::SatConvertSToU { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + signed_value: Id(reader.next_u32()?), + }, + 119u16 => Self::SatConvertUToS { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + unsigned_value: Id(reader.next_u32()?), + }, + 120u16 => Self::ConvertUToPtr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + integer_value: Id(reader.next_u32()?), + }, + 121u16 => Self::PtrCastToGeneric { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 122u16 => Self::GenericCastToPtr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 123u16 => Self::GenericCastToPtrExplicit { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + storage: StorageClass::parse(reader)?, + }, + 124u16 => Self::Bitcast { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 126u16 => Self::SNegate { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 127u16 => Self::FNegate { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 128u16 => Self::IAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 129u16 => Self::FAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 130u16 => Self::ISub { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 131u16 => Self::FSub { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 132u16 => Self::IMul { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 133u16 => Self::FMul { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 134u16 => Self::UDiv { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 135u16 => Self::SDiv { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 136u16 => Self::FDiv { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 137u16 => Self::UMod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 138u16 => Self::SRem { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 139u16 => Self::SMod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 140u16 => Self::FRem { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 141u16 => Self::FMod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 142u16 => Self::VectorTimesScalar { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + scalar: Id(reader.next_u32()?), + }, + 143u16 => Self::MatrixTimesScalar { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + matrix: Id(reader.next_u32()?), + scalar: Id(reader.next_u32()?), + }, + 144u16 => Self::VectorTimesMatrix { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + matrix: Id(reader.next_u32()?), + }, + 145u16 => Self::MatrixTimesVector { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + matrix: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + }, + 146u16 => Self::MatrixTimesMatrix { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + left_matrix: Id(reader.next_u32()?), + right_matrix: Id(reader.next_u32()?), + }, + 147u16 => Self::OuterProduct { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + }, + 148u16 => Self::Dot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + }, + 149u16 => Self::IAddCarry { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 150u16 => Self::ISubBorrow { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 151u16 => Self::UMulExtended { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 152u16 => Self::SMulExtended { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 154u16 => Self::Any { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + }, + 155u16 => Self::All { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector: Id(reader.next_u32()?), + }, + 156u16 => Self::IsNan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + }, + 157u16 => Self::IsInf { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + }, + 158u16 => Self::IsFinite { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + }, + 159u16 => Self::IsNormal { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + }, + 160u16 => Self::SignBitSet { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + }, + 161u16 => Self::LessOrGreater { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + y: Id(reader.next_u32()?), + }, + 162u16 => Self::Ordered { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + y: Id(reader.next_u32()?), + }, + 163u16 => Self::Unordered { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + x: Id(reader.next_u32()?), + y: Id(reader.next_u32()?), + }, + 164u16 => Self::LogicalEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 165u16 => Self::LogicalNotEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 166u16 => Self::LogicalOr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 167u16 => Self::LogicalAnd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 168u16 => Self::LogicalNot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 169u16 => Self::Select { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + condition: Id(reader.next_u32()?), + object_1: Id(reader.next_u32()?), + object_2: Id(reader.next_u32()?), + }, + 170u16 => Self::IEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 171u16 => Self::INotEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 172u16 => Self::UGreaterThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 173u16 => Self::SGreaterThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 174u16 => Self::UGreaterThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 175u16 => Self::SGreaterThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 176u16 => Self::ULessThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 177u16 => Self::SLessThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 178u16 => Self::ULessThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 179u16 => Self::SLessThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 180u16 => Self::FOrdEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 181u16 => Self::FUnordEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 182u16 => Self::FOrdNotEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 183u16 => Self::FUnordNotEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 184u16 => Self::FOrdLessThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 185u16 => Self::FUnordLessThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 186u16 => Self::FOrdGreaterThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 187u16 => Self::FUnordGreaterThan { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 188u16 => Self::FOrdLessThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 189u16 => Self::FUnordLessThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 190u16 => Self::FOrdGreaterThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 191u16 => Self::FUnordGreaterThanEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 194u16 => Self::ShiftRightLogical { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 195u16 => Self::ShiftRightArithmetic { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 196u16 => Self::ShiftLeftLogical { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 197u16 => Self::BitwiseOr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 198u16 => Self::BitwiseXor { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 199u16 => Self::BitwiseAnd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 200u16 => Self::Not { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 201u16 => Self::BitFieldInsert { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + insert: Id(reader.next_u32()?), + offset: Id(reader.next_u32()?), + count: Id(reader.next_u32()?), + }, + 202u16 => Self::BitFieldSExtract { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + offset: Id(reader.next_u32()?), + count: Id(reader.next_u32()?), + }, + 203u16 => Self::BitFieldUExtract { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + offset: Id(reader.next_u32()?), + count: Id(reader.next_u32()?), + }, + 204u16 => Self::BitReverse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + }, + 205u16 => Self::BitCount { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + base: Id(reader.next_u32()?), + }, + 207u16 => Self::DPdx { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 208u16 => Self::DPdy { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 209u16 => Self::Fwidth { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 210u16 => Self::DPdxFine { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 211u16 => Self::DPdyFine { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 212u16 => Self::FwidthFine { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 213u16 => Self::DPdxCoarse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 214u16 => Self::DPdyCoarse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 215u16 => Self::FwidthCoarse { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + p: Id(reader.next_u32()?), + }, + 218u16 => Self::EmitVertex, + 219u16 => Self::EndPrimitive, + 220u16 => Self::EmitStreamVertex { + stream: Id(reader.next_u32()?), + }, + 221u16 => Self::EndStreamPrimitive { + stream: Id(reader.next_u32()?), + }, + 224u16 => Self::ControlBarrier { + execution: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 225u16 => Self::MemoryBarrier { + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 227u16 => Self::AtomicLoad { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 228u16 => Self::AtomicStore { + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 229u16 => Self::AtomicExchange { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 230u16 => Self::AtomicCompareExchange { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + equal: Id(reader.next_u32()?), + unequal: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + comparator: Id(reader.next_u32()?), + }, + 231u16 => Self::AtomicCompareExchangeWeak { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + equal: Id(reader.next_u32()?), + unequal: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + comparator: Id(reader.next_u32()?), + }, + 232u16 => Self::AtomicIIncrement { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 233u16 => Self::AtomicIDecrement { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 234u16 => Self::AtomicIAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 235u16 => Self::AtomicISub { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 236u16 => Self::AtomicSMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 237u16 => Self::AtomicUMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 238u16 => Self::AtomicSMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 239u16 => Self::AtomicUMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 240u16 => Self::AtomicAnd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 241u16 => Self::AtomicOr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 242u16 => Self::AtomicXor { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 245u16 => Self::Phi { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + variable_parent: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push((Id(reader.next_u32()?), Id(reader.next_u32()?))); + } + vec + }, + }, + 246u16 => Self::LoopMerge { + merge_block: Id(reader.next_u32()?), + continue_target: Id(reader.next_u32()?), + loop_control: LoopControl::parse(reader)?, + }, + 247u16 => Self::SelectionMerge { + merge_block: Id(reader.next_u32()?), + selection_control: SelectionControl::parse(reader)?, + }, + 248u16 => Self::Label { + result_id: Id(reader.next_u32()?), + }, + 249u16 => Self::Branch { + target_label: Id(reader.next_u32()?), + }, + 250u16 => Self::BranchConditional { + condition: Id(reader.next_u32()?), + true_label: Id(reader.next_u32()?), + false_label: Id(reader.next_u32()?), + branch_weights: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 251u16 => Self::Switch { + selector: Id(reader.next_u32()?), + default: Id(reader.next_u32()?), + target: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push((reader.next_u32()?, Id(reader.next_u32()?))); + } + vec + }, + }, + 252u16 => Self::Kill, + 253u16 => Self::Return, + 254u16 => Self::ReturnValue { + value: Id(reader.next_u32()?), + }, + 255u16 => Self::Unreachable, + 256u16 => Self::LifetimeStart { + pointer: Id(reader.next_u32()?), + size: reader.next_u32()?, + }, + 257u16 => Self::LifetimeStop { + pointer: Id(reader.next_u32()?), + size: reader.next_u32()?, + }, + 259u16 => Self::GroupAsyncCopy { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + destination: Id(reader.next_u32()?), + source: Id(reader.next_u32()?), + num_elements: Id(reader.next_u32()?), + stride: Id(reader.next_u32()?), + event: Id(reader.next_u32()?), + }, + 260u16 => Self::GroupWaitEvents { + execution: Id(reader.next_u32()?), + num_events: Id(reader.next_u32()?), + events_list: Id(reader.next_u32()?), + }, + 261u16 => Self::GroupAll { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 262u16 => Self::GroupAny { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 263u16 => Self::GroupBroadcast { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + local_id: Id(reader.next_u32()?), + }, + 264u16 => Self::GroupIAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 265u16 => Self::GroupFAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 266u16 => Self::GroupFMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 267u16 => Self::GroupUMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 268u16 => Self::GroupSMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 269u16 => Self::GroupFMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 270u16 => Self::GroupUMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 271u16 => Self::GroupSMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 274u16 => Self::ReadPipe { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 275u16 => Self::WritePipe { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 276u16 => Self::ReservedReadPipe { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 277u16 => Self::ReservedWritePipe { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 278u16 => Self::ReserveReadPipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + num_packets: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 279u16 => Self::ReserveWritePipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + num_packets: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 280u16 => Self::CommitReadPipe { + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 281u16 => Self::CommitWritePipe { + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 282u16 => Self::IsValidReserveId { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + }, + 283u16 => Self::GetNumPipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 284u16 => Self::GetMaxPipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 285u16 => Self::GroupReserveReadPipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + num_packets: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 286u16 => Self::GroupReserveWritePipePackets { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + num_packets: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 287u16 => Self::GroupCommitReadPipe { + execution: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 288u16 => Self::GroupCommitWritePipe { + execution: Id(reader.next_u32()?), + pipe: Id(reader.next_u32()?), + reserve_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 291u16 => Self::EnqueueMarker { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + queue: Id(reader.next_u32()?), + num_events: Id(reader.next_u32()?), + wait_events: Id(reader.next_u32()?), + ret_event: Id(reader.next_u32()?), + }, + 292u16 => Self::EnqueueKernel { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + queue: Id(reader.next_u32()?), + flags: Id(reader.next_u32()?), + nd_range: Id(reader.next_u32()?), + num_events: Id(reader.next_u32()?), + wait_events: Id(reader.next_u32()?), + ret_event: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + local_size: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 293u16 => Self::GetKernelNDrangeSubGroupCount { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + nd_range: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 294u16 => Self::GetKernelNDrangeMaxSubGroupSize { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + nd_range: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 295u16 => Self::GetKernelWorkGroupSize { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 296u16 => Self::GetKernelPreferredWorkGroupSizeMultiple { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 297u16 => Self::RetainEvent { + event: Id(reader.next_u32()?), + }, + 298u16 => Self::ReleaseEvent { + event: Id(reader.next_u32()?), + }, + 299u16 => Self::CreateUserEvent { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 300u16 => Self::IsValidEvent { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + event: Id(reader.next_u32()?), + }, + 301u16 => Self::SetUserEventStatus { + event: Id(reader.next_u32()?), + status: Id(reader.next_u32()?), + }, + 302u16 => Self::CaptureEventProfilingInfo { + event: Id(reader.next_u32()?), + profiling_info: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 303u16 => Self::GetDefaultQueue { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 304u16 => Self::BuildNDRange { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + global_work_size: Id(reader.next_u32()?), + local_work_size: Id(reader.next_u32()?), + global_work_offset: Id(reader.next_u32()?), + }, + 305u16 => Self::ImageSparseSampleImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 306u16 => Self::ImageSparseSampleExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 307u16 => Self::ImageSparseSampleDrefImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 308u16 => Self::ImageSparseSampleDrefExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 309u16 => Self::ImageSparseSampleProjImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 310u16 => Self::ImageSparseSampleProjExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 311u16 => Self::ImageSparseSampleProjDrefImplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 312u16 => Self::ImageSparseSampleProjDrefExplicitLod { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: ImageOperands::parse(reader)?, + }, + 313u16 => Self::ImageSparseFetch { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 314u16 => Self::ImageSparseGather { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + component: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 315u16 => Self::ImageSparseDrefGather { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + dref: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 316u16 => Self::ImageSparseTexelsResident { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + resident_code: Id(reader.next_u32()?), + }, + 317u16 => Self::NoLine, + 318u16 => Self::AtomicFlagTestAndSet { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 319u16 => Self::AtomicFlagClear { + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 320u16 => Self::ImageSparseRead { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 321u16 => Self::SizeOf { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 322u16 => Self::TypePipeStorage { + result_id: Id(reader.next_u32()?), + }, + 323u16 => Self::ConstantPipeStorage { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packet_size: reader.next_u32()?, + packet_alignment: reader.next_u32()?, + capacity: reader.next_u32()?, + }, + 324u16 => Self::CreatePipeFromPipeStorage { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pipe_storage: Id(reader.next_u32()?), + }, + 325u16 => Self::GetKernelLocalSizeForSubgroupCount { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + subgroup_count: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 326u16 => Self::GetKernelMaxNumSubgroups { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + invoke: Id(reader.next_u32()?), + param: Id(reader.next_u32()?), + param_size: Id(reader.next_u32()?), + param_align: Id(reader.next_u32()?), + }, + 327u16 => Self::TypeNamedBarrier { + result_id: Id(reader.next_u32()?), + }, + 328u16 => Self::NamedBarrierInitialize { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + subgroup_count: Id(reader.next_u32()?), + }, + 329u16 => Self::MemoryNamedBarrier { + named_barrier: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + }, + 330u16 => Self::ModuleProcessed { + process: reader.next_string()?, + }, + 331u16 => Self::ExecutionModeId { + entry_point: Id(reader.next_u32()?), + mode: ExecutionMode::parse(reader)?, + }, + 332u16 => Self::DecorateId { + target: Id(reader.next_u32()?), + decoration: Decoration::parse(reader)?, + }, + 333u16 => Self::GroupNonUniformElect { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + }, + 334u16 => Self::GroupNonUniformAll { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 335u16 => Self::GroupNonUniformAny { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 336u16 => Self::GroupNonUniformAllEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 337u16 => Self::GroupNonUniformBroadcast { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + id: Id(reader.next_u32()?), + }, + 338u16 => Self::GroupNonUniformBroadcastFirst { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 339u16 => Self::GroupNonUniformBallot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 340u16 => Self::GroupNonUniformInverseBallot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 341u16 => Self::GroupNonUniformBallotBitExtract { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + }, + 342u16 => Self::GroupNonUniformBallotBitCount { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + }, + 343u16 => Self::GroupNonUniformBallotFindLSB { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 344u16 => Self::GroupNonUniformBallotFindMSB { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 345u16 => Self::GroupNonUniformShuffle { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + id: Id(reader.next_u32()?), + }, + 346u16 => Self::GroupNonUniformShuffleXor { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + mask: Id(reader.next_u32()?), + }, + 347u16 => Self::GroupNonUniformShuffleUp { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + delta: Id(reader.next_u32()?), + }, + 348u16 => Self::GroupNonUniformShuffleDown { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + delta: Id(reader.next_u32()?), + }, + 349u16 => Self::GroupNonUniformIAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 350u16 => Self::GroupNonUniformFAdd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 351u16 => Self::GroupNonUniformIMul { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 352u16 => Self::GroupNonUniformFMul { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 353u16 => Self::GroupNonUniformSMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 354u16 => Self::GroupNonUniformUMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 355u16 => Self::GroupNonUniformFMin { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 356u16 => Self::GroupNonUniformSMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 357u16 => Self::GroupNonUniformUMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 358u16 => Self::GroupNonUniformFMax { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 359u16 => Self::GroupNonUniformBitwiseAnd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 360u16 => Self::GroupNonUniformBitwiseOr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 361u16 => Self::GroupNonUniformBitwiseXor { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 362u16 => Self::GroupNonUniformLogicalAnd { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 363u16 => Self::GroupNonUniformLogicalOr { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 364u16 => Self::GroupNonUniformLogicalXor { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + value: Id(reader.next_u32()?), + cluster_size: if !reader.is_empty() { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }, + 365u16 => Self::GroupNonUniformQuadBroadcast { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + }, + 366u16 => Self::GroupNonUniformQuadSwap { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + }, + 400u16 => Self::CopyLogical { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 401u16 => Self::PtrEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 402u16 => Self::PtrNotEqual { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 403u16 => Self::PtrDiff { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 4416u16 => Self::TerminateInvocation, + 4421u16 => Self::SubgroupBallotKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 4422u16 => Self::SubgroupFirstInvocationKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 4428u16 => Self::SubgroupAllKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 4429u16 => Self::SubgroupAnyKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 4430u16 => Self::SubgroupAllEqualKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + predicate: Id(reader.next_u32()?), + }, + 4432u16 => Self::SubgroupReadInvocationKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + index: Id(reader.next_u32()?), + }, + 4445u16 => Self::TraceRayKHR { + accel: Id(reader.next_u32()?), + ray_flags: Id(reader.next_u32()?), + cull_mask: Id(reader.next_u32()?), + sbt_offset: Id(reader.next_u32()?), + sbt_stride: Id(reader.next_u32()?), + miss_index: Id(reader.next_u32()?), + ray_origin: Id(reader.next_u32()?), + ray_tmin: Id(reader.next_u32()?), + ray_direction: Id(reader.next_u32()?), + ray_tmax: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 4446u16 => Self::ExecuteCallableKHR { + sbt_index: Id(reader.next_u32()?), + callable_data: Id(reader.next_u32()?), + }, + 4447u16 => Self::ConvertUToAccelerationStructureKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + accel: Id(reader.next_u32()?), + }, + 4448u16 => Self::IgnoreIntersectionKHR, + 4449u16 => Self::TerminateRayKHR, + 4450u16 => Self::SDot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4451u16 => Self::UDot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4452u16 => Self::SUDot { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4453u16 => Self::SDotAccSat { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + accumulator: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4454u16 => Self::UDotAccSat { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + accumulator: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4455u16 => Self::SUDotAccSat { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + accumulator: Id(reader.next_u32()?), + packed_vector_format: if !reader.is_empty() { + Some(PackedVectorFormat::parse(reader)?) + } else { + None + }, + }, + 4472u16 => Self::TypeRayQueryKHR { + result_id: Id(reader.next_u32()?), + }, + 4473u16 => Self::RayQueryInitializeKHR { + ray_query: Id(reader.next_u32()?), + accel: Id(reader.next_u32()?), + ray_flags: Id(reader.next_u32()?), + cull_mask: Id(reader.next_u32()?), + ray_origin: Id(reader.next_u32()?), + ray_t_min: Id(reader.next_u32()?), + ray_direction: Id(reader.next_u32()?), + ray_t_max: Id(reader.next_u32()?), + }, + 4474u16 => Self::RayQueryTerminateKHR { + ray_query: Id(reader.next_u32()?), + }, + 4475u16 => Self::RayQueryGenerateIntersectionKHR { + ray_query: Id(reader.next_u32()?), + hit_t: Id(reader.next_u32()?), + }, + 4476u16 => Self::RayQueryConfirmIntersectionKHR { + ray_query: Id(reader.next_u32()?), + }, + 4477u16 => Self::RayQueryProceedKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 4479u16 => Self::RayQueryGetIntersectionTypeKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 5000u16 => Self::GroupIAddNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5001u16 => Self::GroupFAddNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5002u16 => Self::GroupFMinNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5003u16 => Self::GroupUMinNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5004u16 => Self::GroupSMinNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5005u16 => Self::GroupFMaxNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5006u16 => Self::GroupUMaxNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5007u16 => Self::GroupSMaxNonUniformAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + operation: GroupOperation::parse(reader)?, + x: Id(reader.next_u32()?), + }, + 5011u16 => Self::FragmentMaskFetchAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + }, + 5012u16 => Self::FragmentFetchAMD { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + fragment_index: Id(reader.next_u32()?), + }, + 5056u16 => Self::ReadClockKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + scope: Id(reader.next_u32()?), + }, + 5283u16 => Self::ImageSampleFootprintNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + sampled_image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + granularity: Id(reader.next_u32()?), + coarse: Id(reader.next_u32()?), + image_operands: if !reader.is_empty() { + Some(ImageOperands::parse(reader)?) + } else { + None + }, + }, + 5296u16 => Self::GroupNonUniformPartitionNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 5299u16 => Self::WritePackedPrimitiveIndices4x8NV { + index_offset: Id(reader.next_u32()?), + packed_indices: Id(reader.next_u32()?), + }, + 5334u16 => Self::ReportIntersectionKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + hit: Id(reader.next_u32()?), + hit_kind: Id(reader.next_u32()?), + }, + 5335u16 => Self::IgnoreIntersectionNV, + 5336u16 => Self::TerminateRayNV, + 5337u16 => Self::TraceNV { + accel: Id(reader.next_u32()?), + ray_flags: Id(reader.next_u32()?), + cull_mask: Id(reader.next_u32()?), + sbt_offset: Id(reader.next_u32()?), + sbt_stride: Id(reader.next_u32()?), + miss_index: Id(reader.next_u32()?), + ray_origin: Id(reader.next_u32()?), + ray_tmin: Id(reader.next_u32()?), + ray_direction: Id(reader.next_u32()?), + ray_tmax: Id(reader.next_u32()?), + payload_id: Id(reader.next_u32()?), + }, + 5338u16 => Self::TraceMotionNV { + accel: Id(reader.next_u32()?), + ray_flags: Id(reader.next_u32()?), + cull_mask: Id(reader.next_u32()?), + sbt_offset: Id(reader.next_u32()?), + sbt_stride: Id(reader.next_u32()?), + miss_index: Id(reader.next_u32()?), + ray_origin: Id(reader.next_u32()?), + ray_tmin: Id(reader.next_u32()?), + ray_direction: Id(reader.next_u32()?), + ray_tmax: Id(reader.next_u32()?), + time: Id(reader.next_u32()?), + payload_id: Id(reader.next_u32()?), + }, + 5339u16 => Self::TraceRayMotionNV { + accel: Id(reader.next_u32()?), + ray_flags: Id(reader.next_u32()?), + cull_mask: Id(reader.next_u32()?), + sbt_offset: Id(reader.next_u32()?), + sbt_stride: Id(reader.next_u32()?), + miss_index: Id(reader.next_u32()?), + ray_origin: Id(reader.next_u32()?), + ray_tmin: Id(reader.next_u32()?), + ray_direction: Id(reader.next_u32()?), + ray_tmax: Id(reader.next_u32()?), + time: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5341u16 => Self::TypeAccelerationStructureKHR { + result_id: Id(reader.next_u32()?), + }, + 5344u16 => Self::ExecuteCallableNV { + sbt_index: Id(reader.next_u32()?), + callable_data_id: Id(reader.next_u32()?), + }, + 5358u16 => Self::TypeCooperativeMatrixNV { + result_id: Id(reader.next_u32()?), + component_type: Id(reader.next_u32()?), + execution: Id(reader.next_u32()?), + rows: Id(reader.next_u32()?), + columns: Id(reader.next_u32()?), + }, + 5359u16 => Self::CooperativeMatrixLoadNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + stride: Id(reader.next_u32()?), + column_major: Id(reader.next_u32()?), + memory_access: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 5360u16 => Self::CooperativeMatrixStoreNV { + pointer: Id(reader.next_u32()?), + object: Id(reader.next_u32()?), + stride: Id(reader.next_u32()?), + column_major: Id(reader.next_u32()?), + memory_access: if !reader.is_empty() { + Some(MemoryAccess::parse(reader)?) + } else { + None + }, + }, + 5361u16 => Self::CooperativeMatrixMulAddNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + b: Id(reader.next_u32()?), + c: Id(reader.next_u32()?), + }, + 5362u16 => Self::CooperativeMatrixLengthNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ty: Id(reader.next_u32()?), + }, + 5364u16 => Self::BeginInvocationInterlockEXT, + 5365u16 => Self::EndInvocationInterlockEXT, + 5380u16 => Self::DemoteToHelperInvocation, + 5381u16 => Self::IsHelperInvocationEXT { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5391u16 => Self::ConvertUToImageNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5392u16 => Self::ConvertUToSamplerNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5393u16 => Self::ConvertImageToUNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5394u16 => Self::ConvertSamplerToUNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5395u16 => Self::ConvertUToSampledImageNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5396u16 => Self::ConvertSampledImageToUNV { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5397u16 => Self::SamplerImageAddressingModeNV { + bit_width: reader.next_u32()?, + }, + 5571u16 => Self::SubgroupShuffleINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + data: Id(reader.next_u32()?), + invocation_id: Id(reader.next_u32()?), + }, + 5572u16 => Self::SubgroupShuffleDownINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + current: Id(reader.next_u32()?), + next: Id(reader.next_u32()?), + delta: Id(reader.next_u32()?), + }, + 5573u16 => Self::SubgroupShuffleUpINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + previous: Id(reader.next_u32()?), + current: Id(reader.next_u32()?), + delta: Id(reader.next_u32()?), + }, + 5574u16 => Self::SubgroupShuffleXorINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + data: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 5575u16 => Self::SubgroupBlockReadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ptr: Id(reader.next_u32()?), + }, + 5576u16 => Self::SubgroupBlockWriteINTEL { + ptr: Id(reader.next_u32()?), + data: Id(reader.next_u32()?), + }, + 5577u16 => Self::SubgroupImageBlockReadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + }, + 5578u16 => Self::SubgroupImageBlockWriteINTEL { + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + data: Id(reader.next_u32()?), + }, + 5580u16 => Self::SubgroupImageMediaBlockReadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + width: Id(reader.next_u32()?), + height: Id(reader.next_u32()?), + }, + 5581u16 => Self::SubgroupImageMediaBlockWriteINTEL { + image: Id(reader.next_u32()?), + coordinate: Id(reader.next_u32()?), + width: Id(reader.next_u32()?), + height: Id(reader.next_u32()?), + data: Id(reader.next_u32()?), + }, + 5585u16 => Self::UCountLeadingZerosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5586u16 => Self::UCountTrailingZerosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand: Id(reader.next_u32()?), + }, + 5587u16 => Self::AbsISubINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5588u16 => Self::AbsUSubINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5589u16 => Self::IAddSatINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5590u16 => Self::UAddSatINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5591u16 => Self::IAverageINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5592u16 => Self::UAverageINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5593u16 => Self::IAverageRoundedINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5594u16 => Self::UAverageRoundedINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5595u16 => Self::ISubSatINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5596u16 => Self::USubSatINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5597u16 => Self::IMul32x16INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5598u16 => Self::UMul32x16INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 5600u16 => Self::ConstantFunctionPointerINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + function: Id(reader.next_u32()?), + }, + 5601u16 => Self::FunctionPointerCallINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + operand1: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 5609u16 => Self::AsmTargetINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + asm_target: reader.next_string()?, + }, + 5610u16 => Self::AsmINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + asm_type: Id(reader.next_u32()?), + target: Id(reader.next_u32()?), + asm_instructions: reader.next_string()?, + constraints: reader.next_string()?, + }, + 5611u16 => Self::AsmCallINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + asm: Id(reader.next_u32()?), + argument_0: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 5614u16 => Self::AtomicFMinEXT { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 5615u16 => Self::AtomicFMaxEXT { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 5630u16 => Self::AssumeTrueKHR { + condition: Id(reader.next_u32()?), + }, + 5631u16 => Self::ExpectKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + expected_value: Id(reader.next_u32()?), + }, + 5632u16 => Self::DecorateString { + target: Id(reader.next_u32()?), + decoration: Decoration::parse(reader)?, + }, + 5633u16 => Self::MemberDecorateString { + struct_type: Id(reader.next_u32()?), + member: reader.next_u32()?, + decoration: Decoration::parse(reader)?, + }, + 5699u16 => Self::VmeImageINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image_type: Id(reader.next_u32()?), + sampler: Id(reader.next_u32()?), + }, + 5700u16 => Self::TypeVmeImageINTEL { + result_id: Id(reader.next_u32()?), + image_type: Id(reader.next_u32()?), + }, + 5701u16 => Self::TypeAvcImePayloadINTEL { + result_id: Id(reader.next_u32()?), + }, + 5702u16 => Self::TypeAvcRefPayloadINTEL { + result_id: Id(reader.next_u32()?), + }, + 5703u16 => Self::TypeAvcSicPayloadINTEL { + result_id: Id(reader.next_u32()?), + }, + 5704u16 => Self::TypeAvcMcePayloadINTEL { + result_id: Id(reader.next_u32()?), + }, + 5705u16 => Self::TypeAvcMceResultINTEL { + result_id: Id(reader.next_u32()?), + }, + 5706u16 => Self::TypeAvcImeResultINTEL { + result_id: Id(reader.next_u32()?), + }, + 5707u16 => Self::TypeAvcImeResultSingleReferenceStreamoutINTEL { + result_id: Id(reader.next_u32()?), + }, + 5708u16 => Self::TypeAvcImeResultDualReferenceStreamoutINTEL { + result_id: Id(reader.next_u32()?), + }, + 5709u16 => Self::TypeAvcImeSingleReferenceStreaminINTEL { + result_id: Id(reader.next_u32()?), + }, + 5710u16 => Self::TypeAvcImeDualReferenceStreaminINTEL { + result_id: Id(reader.next_u32()?), + }, + 5711u16 => Self::TypeAvcRefResultINTEL { + result_id: Id(reader.next_u32()?), + }, + 5712u16 => Self::TypeAvcSicResultINTEL { + result_id: Id(reader.next_u32()?), + }, + 5713u16 => Self::SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5714u16 => Self::SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + reference_base_penalty: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5715u16 => Self::SubgroupAvcMceGetDefaultInterShapePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5716u16 => Self::SubgroupAvcMceSetInterShapePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_shape_penalty: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5717u16 => Self::SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5718u16 => Self::SubgroupAvcMceSetInterDirectionPenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + direction_cost: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5719u16 => Self::SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5720u16 => Self::SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5721u16 => Self::SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5722u16 => Self::SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5723u16 => Self::SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5724u16 => Self::SubgroupAvcMceSetMotionVectorCostFunctionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_cost_center_delta: Id(reader.next_u32()?), + packed_cost_table: Id(reader.next_u32()?), + cost_precision: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5725u16 => Self::SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + slice_type: Id(reader.next_u32()?), + qp: Id(reader.next_u32()?), + }, + 5726u16 => Self::SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5727u16 => Self::SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5728u16 => Self::SubgroupAvcMceSetAcOnlyHaarINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5729u16 => Self::SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + source_field_polarity: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5730u16 => Self::SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + reference_field_polarity: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5731u16 => Self::SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + forward_reference_field_polarity: Id(reader.next_u32()?), + backward_reference_field_polarity: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5732u16 => Self::SubgroupAvcMceConvertToImePayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5733u16 => Self::SubgroupAvcMceConvertToImeResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5734u16 => Self::SubgroupAvcMceConvertToRefPayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5735u16 => Self::SubgroupAvcMceConvertToRefResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5736u16 => Self::SubgroupAvcMceConvertToSicPayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5737u16 => Self::SubgroupAvcMceConvertToSicResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5738u16 => Self::SubgroupAvcMceGetMotionVectorsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5739u16 => Self::SubgroupAvcMceGetInterDistortionsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5740u16 => Self::SubgroupAvcMceGetBestInterDistortionsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5741u16 => Self::SubgroupAvcMceGetInterMajorShapeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5742u16 => Self::SubgroupAvcMceGetInterMinorShapeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5743u16 => Self::SubgroupAvcMceGetInterDirectionsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5744u16 => Self::SubgroupAvcMceGetInterMotionVectorCountINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5745u16 => Self::SubgroupAvcMceGetInterReferenceIdsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5746u16 => Self::SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_reference_ids: Id(reader.next_u32()?), + packed_reference_parameter_field_polarities: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5747u16 => Self::SubgroupAvcImeInitializeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_coord: Id(reader.next_u32()?), + partition_mask: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + }, + 5748u16 => Self::SubgroupAvcImeSetSingleReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ref_offset: Id(reader.next_u32()?), + search_window_config: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5749u16 => Self::SubgroupAvcImeSetDualReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + fwd_ref_offset: Id(reader.next_u32()?), + bwd_ref_offset: Id(reader.next_u32()?), + id_search_window_config: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5750u16 => Self::SubgroupAvcImeRefWindowSizeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + search_window_config: Id(reader.next_u32()?), + dual_ref: Id(reader.next_u32()?), + }, + 5751u16 => Self::SubgroupAvcImeAdjustRefOffsetINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ref_offset: Id(reader.next_u32()?), + src_coord: Id(reader.next_u32()?), + ref_window_size: Id(reader.next_u32()?), + image_size: Id(reader.next_u32()?), + }, + 5752u16 => Self::SubgroupAvcImeConvertToMcePayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5753u16 => Self::SubgroupAvcImeSetMaxMotionVectorCountINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + max_motion_vector_count: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5754u16 => Self::SubgroupAvcImeSetUnidirectionalMixDisableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5755u16 => Self::SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + threshold: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5756u16 => Self::SubgroupAvcImeSetWeightedSadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_sad_weights: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5757u16 => Self::SubgroupAvcImeEvaluateWithSingleReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5758u16 => Self::SubgroupAvcImeEvaluateWithDualReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5759u16 => Self::SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + streamin_components: Id(reader.next_u32()?), + }, + 5760u16 => Self::SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + streamin_components: Id(reader.next_u32()?), + }, + 5761u16 => Self::SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5762u16 => Self::SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5763u16 => Self::SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + streamin_components: Id(reader.next_u32()?), + }, + 5764u16 => Self::SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + streamin_components: Id(reader.next_u32()?), + }, + 5765u16 => Self::SubgroupAvcImeConvertToMceResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5766u16 => Self::SubgroupAvcImeGetSingleReferenceStreaminINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5767u16 => Self::SubgroupAvcImeGetDualReferenceStreaminINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5768u16 => Self::SubgroupAvcImeStripSingleReferenceStreamoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5769u16 => Self::SubgroupAvcImeStripDualReferenceStreamoutINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5770u16 => { + Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + } + } + 5771u16 => Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + }, + 5772u16 => Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + }, + 5773u16 => Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + }, + 5774u16 => Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + }, + 5775u16 => Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + major_shape: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + }, + 5776u16 => Self::SubgroupAvcImeGetBorderReachedINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + image_select: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5777u16 => Self::SubgroupAvcImeGetTruncatedSearchIndicationINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5778u16 => Self::SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5779u16 => Self::SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5780u16 => Self::SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5781u16 => Self::SubgroupAvcFmeInitializeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_coord: Id(reader.next_u32()?), + motion_vectors: Id(reader.next_u32()?), + major_shapes: Id(reader.next_u32()?), + minor_shapes: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + pixel_resolution: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + }, + 5782u16 => Self::SubgroupAvcBmeInitializeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_coord: Id(reader.next_u32()?), + motion_vectors: Id(reader.next_u32()?), + major_shapes: Id(reader.next_u32()?), + minor_shapes: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + pixel_resolution: Id(reader.next_u32()?), + bidirectional_weight: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + }, + 5783u16 => Self::SubgroupAvcRefConvertToMcePayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5784u16 => Self::SubgroupAvcRefSetBidirectionalMixDisableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5785u16 => Self::SubgroupAvcRefSetBilinearFilterEnableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5786u16 => Self::SubgroupAvcRefEvaluateWithSingleReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5787u16 => Self::SubgroupAvcRefEvaluateWithDualReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5788u16 => Self::SubgroupAvcRefEvaluateWithMultiReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + packed_reference_ids: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5789u16 => Self::SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + packed_reference_ids: Id(reader.next_u32()?), + packed_reference_field_polarities: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5790u16 => Self::SubgroupAvcRefConvertToMceResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5791u16 => Self::SubgroupAvcSicInitializeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_coord: Id(reader.next_u32()?), + }, + 5792u16 => Self::SubgroupAvcSicConfigureSkcINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + skip_block_partition_type: Id(reader.next_u32()?), + skip_motion_vector_mask: Id(reader.next_u32()?), + motion_vectors: Id(reader.next_u32()?), + bidirectional_weight: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5793u16 => Self::SubgroupAvcSicConfigureIpeLumaINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + luma_intra_partition_mask: Id(reader.next_u32()?), + intra_neighbour_availabilty: Id(reader.next_u32()?), + left_edge_luma_pixels: Id(reader.next_u32()?), + upper_left_corner_luma_pixel: Id(reader.next_u32()?), + upper_edge_luma_pixels: Id(reader.next_u32()?), + upper_right_edge_luma_pixels: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5794u16 => Self::SubgroupAvcSicConfigureIpeLumaChromaINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + luma_intra_partition_mask: Id(reader.next_u32()?), + intra_neighbour_availabilty: Id(reader.next_u32()?), + left_edge_luma_pixels: Id(reader.next_u32()?), + upper_left_corner_luma_pixel: Id(reader.next_u32()?), + upper_edge_luma_pixels: Id(reader.next_u32()?), + upper_right_edge_luma_pixels: Id(reader.next_u32()?), + left_edge_chroma_pixels: Id(reader.next_u32()?), + upper_left_corner_chroma_pixel: Id(reader.next_u32()?), + upper_edge_chroma_pixels: Id(reader.next_u32()?), + sad_adjustment: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5795u16 => Self::SubgroupAvcSicGetMotionVectorMaskINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + skip_block_partition_type: Id(reader.next_u32()?), + direction: Id(reader.next_u32()?), + }, + 5796u16 => Self::SubgroupAvcSicConvertToMcePayloadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5797u16 => Self::SubgroupAvcSicSetIntraLumaShapePenaltyINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_shape_penalty: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5798u16 => Self::SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + luma_mode_penalty: Id(reader.next_u32()?), + luma_packed_neighbor_modes: Id(reader.next_u32()?), + luma_packed_non_dc_penalty: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5799u16 => Self::SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + chroma_mode_base_penalty: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5800u16 => Self::SubgroupAvcSicSetBilinearFilterEnableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5801u16 => Self::SubgroupAvcSicSetSkcForwardTransformEnableINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packed_sad_coefficients: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5802u16 => Self::SubgroupAvcSicSetBlockBasedRawSkipSadINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + block_based_skip_type: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5803u16 => Self::SubgroupAvcSicEvaluateIpeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5804u16 => Self::SubgroupAvcSicEvaluateWithSingleReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5805u16 => Self::SubgroupAvcSicEvaluateWithDualReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + fwd_ref_image: Id(reader.next_u32()?), + bwd_ref_image: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5806u16 => Self::SubgroupAvcSicEvaluateWithMultiReferenceINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + packed_reference_ids: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5807u16 => Self::SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + src_image: Id(reader.next_u32()?), + packed_reference_ids: Id(reader.next_u32()?), + packed_reference_field_polarities: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5808u16 => Self::SubgroupAvcSicConvertToMceResultINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5809u16 => Self::SubgroupAvcSicGetIpeLumaShapeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5810u16 => Self::SubgroupAvcSicGetBestIpeLumaDistortionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5811u16 => Self::SubgroupAvcSicGetBestIpeChromaDistortionINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5812u16 => Self::SubgroupAvcSicGetPackedIpeLumaModesINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5813u16 => Self::SubgroupAvcSicGetIpeChromaModeINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5814u16 => Self::SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5815u16 => Self::SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5816u16 => Self::SubgroupAvcSicGetInterRawSadsINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + payload: Id(reader.next_u32()?), + }, + 5818u16 => Self::VariableLengthArrayINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + lenght: Id(reader.next_u32()?), + }, + 5819u16 => Self::SaveMemoryINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + }, + 5820u16 => Self::RestoreMemoryINTEL { + ptr: Id(reader.next_u32()?), + }, + 5840u16 => Self::ArbitraryFloatSinCosPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + from_sign: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5841u16 => Self::ArbitraryFloatCastINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5842u16 => Self::ArbitraryFloatCastFromIntINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + mout: reader.next_u32()?, + from_sign: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5843u16 => Self::ArbitraryFloatCastToIntINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5846u16 => Self::ArbitraryFloatAddINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5847u16 => Self::ArbitraryFloatSubINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5848u16 => Self::ArbitraryFloatMulINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5849u16 => Self::ArbitraryFloatDivINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5850u16 => Self::ArbitraryFloatGTINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + }, + 5851u16 => Self::ArbitraryFloatGEINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + }, + 5852u16 => Self::ArbitraryFloatLTINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + }, + 5853u16 => Self::ArbitraryFloatLEINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + }, + 5854u16 => Self::ArbitraryFloatEQINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + }, + 5855u16 => Self::ArbitraryFloatRecipINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5856u16 => Self::ArbitraryFloatRSqrtINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5857u16 => Self::ArbitraryFloatCbrtINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5858u16 => Self::ArbitraryFloatHypotINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5859u16 => Self::ArbitraryFloatSqrtINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5860u16 => Self::ArbitraryFloatLogINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5861u16 => Self::ArbitraryFloatLog2INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5862u16 => Self::ArbitraryFloatLog10INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5863u16 => Self::ArbitraryFloatLog1pINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5864u16 => Self::ArbitraryFloatExpINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5865u16 => Self::ArbitraryFloatExp2INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5866u16 => Self::ArbitraryFloatExp10INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5867u16 => Self::ArbitraryFloatExpm1INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5868u16 => Self::ArbitraryFloatSinINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5869u16 => Self::ArbitraryFloatCosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5870u16 => Self::ArbitraryFloatSinCosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5871u16 => Self::ArbitraryFloatSinPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5872u16 => Self::ArbitraryFloatCosPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5873u16 => Self::ArbitraryFloatASinINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5874u16 => Self::ArbitraryFloatASinPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5875u16 => Self::ArbitraryFloatACosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5876u16 => Self::ArbitraryFloatACosPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5877u16 => Self::ArbitraryFloatATanINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5878u16 => Self::ArbitraryFloatATanPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5879u16 => Self::ArbitraryFloatATan2INTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5880u16 => Self::ArbitraryFloatPowINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5881u16 => Self::ArbitraryFloatPowRINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + m2: reader.next_u32()?, + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5882u16 => Self::ArbitraryFloatPowNINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + a: Id(reader.next_u32()?), + m1: reader.next_u32()?, + b: Id(reader.next_u32()?), + mout: reader.next_u32()?, + enable_subnormals: reader.next_u32()?, + rounding_mode: reader.next_u32()?, + rounding_accuracy: reader.next_u32()?, + }, + 5887u16 => Self::LoopControlINTEL { + loop_control_parameters: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 5923u16 => Self::FixedSqrtINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5924u16 => Self::FixedRecipINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5925u16 => Self::FixedRsqrtINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5926u16 => Self::FixedSinINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5927u16 => Self::FixedCosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5928u16 => Self::FixedSinCosINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5929u16 => Self::FixedSinPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5930u16 => Self::FixedCosPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5931u16 => Self::FixedSinCosPiINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5932u16 => Self::FixedLogINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5933u16 => Self::FixedExpINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + input_type: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + s: reader.next_u32()?, + i: reader.next_u32()?, + r_i: reader.next_u32()?, + q: reader.next_u32()?, + o: reader.next_u32()?, + }, + 5934u16 => Self::PtrCastToCrossWorkgroupINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 5938u16 => Self::CrossWorkgroupCastToPtrINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + }, + 5946u16 => Self::ReadPipeBlockingINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 5947u16 => Self::WritePipeBlockingINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + packet_size: Id(reader.next_u32()?), + packet_alignment: Id(reader.next_u32()?), + }, + 5949u16 => Self::FPGARegINTEL { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + result: Id(reader.next_u32()?), + input: Id(reader.next_u32()?), + }, + 6016u16 => Self::RayQueryGetRayTMinKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 6017u16 => Self::RayQueryGetRayFlagsKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 6018u16 => Self::RayQueryGetIntersectionTKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6019u16 => Self::RayQueryGetIntersectionInstanceCustomIndexKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6020u16 => Self::RayQueryGetIntersectionInstanceIdKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6021u16 => Self::RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6022u16 => Self::RayQueryGetIntersectionGeometryIndexKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6023u16 => Self::RayQueryGetIntersectionPrimitiveIndexKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6024u16 => Self::RayQueryGetIntersectionBarycentricsKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6025u16 => Self::RayQueryGetIntersectionFrontFaceKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6026u16 => Self::RayQueryGetIntersectionCandidateAABBOpaqueKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 6027u16 => Self::RayQueryGetIntersectionObjectRayDirectionKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6028u16 => Self::RayQueryGetIntersectionObjectRayOriginKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6029u16 => Self::RayQueryGetWorldRayDirectionKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 6030u16 => Self::RayQueryGetWorldRayOriginKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + }, + 6031u16 => Self::RayQueryGetIntersectionObjectToWorldKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6032u16 => Self::RayQueryGetIntersectionWorldToObjectKHR { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + ray_query: Id(reader.next_u32()?), + intersection: Id(reader.next_u32()?), + }, + 6035u16 => Self::AtomicFAddEXT { + result_type_id: Id(reader.next_u32()?), + result_id: Id(reader.next_u32()?), + pointer: Id(reader.next_u32()?), + memory: Id(reader.next_u32()?), + semantics: Id(reader.next_u32()?), + value: Id(reader.next_u32()?), + }, + 6086u16 => Self::TypeBufferSurfaceINTEL { + result_id: Id(reader.next_u32()?), + access_qualifier: AccessQualifier::parse(reader)?, + }, + 6090u16 => Self::TypeStructContinuedINTEL { + member_types: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 6091u16 => Self::ConstantCompositeContinuedINTEL { + constituents: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 6092u16 => Self::SpecConstantCompositeContinuedINTEL { + constituents: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + opcode => return Err(reader.map_err(ParseErrors::UnknownOpcode(opcode))), + }) + } + #[doc = r" Returns the `Id` that is assigned by this instruction, if any."] + pub fn result_id(&self) -> Option<Id> { + match self { + Self::Undef { result_id, .. } + | Self::String { result_id, .. } + | Self::ExtInstImport { result_id, .. } + | Self::ExtInst { result_id, .. } + | Self::TypeVoid { result_id, .. } + | Self::TypeBool { result_id, .. } + | Self::TypeInt { result_id, .. } + | Self::TypeFloat { result_id, .. } + | Self::TypeVector { result_id, .. } + | Self::TypeMatrix { result_id, .. } + | Self::TypeImage { result_id, .. } + | Self::TypeSampler { result_id, .. } + | Self::TypeSampledImage { result_id, .. } + | Self::TypeArray { result_id, .. } + | Self::TypeRuntimeArray { result_id, .. } + | Self::TypeStruct { result_id, .. } + | Self::TypeOpaque { result_id, .. } + | Self::TypePointer { result_id, .. } + | Self::TypeFunction { result_id, .. } + | Self::TypeEvent { result_id, .. } + | Self::TypeDeviceEvent { result_id, .. } + | Self::TypeReserveId { result_id, .. } + | Self::TypeQueue { result_id, .. } + | Self::TypePipe { result_id, .. } + | Self::ConstantTrue { result_id, .. } + | Self::ConstantFalse { result_id, .. } + | Self::Constant { result_id, .. } + | Self::ConstantComposite { result_id, .. } + | Self::ConstantSampler { result_id, .. } + | Self::ConstantNull { result_id, .. } + | Self::SpecConstantTrue { result_id, .. } + | Self::SpecConstantFalse { result_id, .. } + | Self::SpecConstant { result_id, .. } + | Self::SpecConstantComposite { result_id, .. } + | Self::SpecConstantOp { result_id, .. } + | Self::Function { result_id, .. } + | Self::FunctionParameter { result_id, .. } + | Self::FunctionCall { result_id, .. } + | Self::Variable { result_id, .. } + | Self::ImageTexelPointer { result_id, .. } + | Self::Load { result_id, .. } + | Self::AccessChain { result_id, .. } + | Self::InBoundsAccessChain { result_id, .. } + | Self::PtrAccessChain { result_id, .. } + | Self::ArrayLength { result_id, .. } + | Self::GenericPtrMemSemantics { result_id, .. } + | Self::InBoundsPtrAccessChain { result_id, .. } + | Self::DecorationGroup { result_id, .. } + | Self::VectorExtractDynamic { result_id, .. } + | Self::VectorInsertDynamic { result_id, .. } + | Self::VectorShuffle { result_id, .. } + | Self::CompositeConstruct { result_id, .. } + | Self::CompositeExtract { result_id, .. } + | Self::CompositeInsert { result_id, .. } + | Self::CopyObject { result_id, .. } + | Self::Transpose { result_id, .. } + | Self::SampledImage { result_id, .. } + | Self::ImageSampleImplicitLod { result_id, .. } + | Self::ImageSampleExplicitLod { result_id, .. } + | Self::ImageSampleDrefImplicitLod { result_id, .. } + | Self::ImageSampleDrefExplicitLod { result_id, .. } + | Self::ImageSampleProjImplicitLod { result_id, .. } + | Self::ImageSampleProjExplicitLod { result_id, .. } + | Self::ImageSampleProjDrefImplicitLod { result_id, .. } + | Self::ImageSampleProjDrefExplicitLod { result_id, .. } + | Self::ImageFetch { result_id, .. } + | Self::ImageGather { result_id, .. } + | Self::ImageDrefGather { result_id, .. } + | Self::ImageRead { result_id, .. } + | Self::Image { result_id, .. } + | Self::ImageQueryFormat { result_id, .. } + | Self::ImageQueryOrder { result_id, .. } + | Self::ImageQuerySizeLod { result_id, .. } + | Self::ImageQuerySize { result_id, .. } + | Self::ImageQueryLod { result_id, .. } + | Self::ImageQueryLevels { result_id, .. } + | Self::ImageQuerySamples { result_id, .. } + | Self::ConvertFToU { result_id, .. } + | Self::ConvertFToS { result_id, .. } + | Self::ConvertSToF { result_id, .. } + | Self::ConvertUToF { result_id, .. } + | Self::UConvert { result_id, .. } + | Self::SConvert { result_id, .. } + | Self::FConvert { result_id, .. } + | Self::QuantizeToF16 { result_id, .. } + | Self::ConvertPtrToU { result_id, .. } + | Self::SatConvertSToU { result_id, .. } + | Self::SatConvertUToS { result_id, .. } + | Self::ConvertUToPtr { result_id, .. } + | Self::PtrCastToGeneric { result_id, .. } + | Self::GenericCastToPtr { result_id, .. } + | Self::GenericCastToPtrExplicit { result_id, .. } + | Self::Bitcast { result_id, .. } + | Self::SNegate { result_id, .. } + | Self::FNegate { result_id, .. } + | Self::IAdd { result_id, .. } + | Self::FAdd { result_id, .. } + | Self::ISub { result_id, .. } + | Self::FSub { result_id, .. } + | Self::IMul { result_id, .. } + | Self::FMul { result_id, .. } + | Self::UDiv { result_id, .. } + | Self::SDiv { result_id, .. } + | Self::FDiv { result_id, .. } + | Self::UMod { result_id, .. } + | Self::SRem { result_id, .. } + | Self::SMod { result_id, .. } + | Self::FRem { result_id, .. } + | Self::FMod { result_id, .. } + | Self::VectorTimesScalar { result_id, .. } + | Self::MatrixTimesScalar { result_id, .. } + | Self::VectorTimesMatrix { result_id, .. } + | Self::MatrixTimesVector { result_id, .. } + | Self::MatrixTimesMatrix { result_id, .. } + | Self::OuterProduct { result_id, .. } + | Self::Dot { result_id, .. } + | Self::IAddCarry { result_id, .. } + | Self::ISubBorrow { result_id, .. } + | Self::UMulExtended { result_id, .. } + | Self::SMulExtended { result_id, .. } + | Self::Any { result_id, .. } + | Self::All { result_id, .. } + | Self::IsNan { result_id, .. } + | Self::IsInf { result_id, .. } + | Self::IsFinite { result_id, .. } + | Self::IsNormal { result_id, .. } + | Self::SignBitSet { result_id, .. } + | Self::LessOrGreater { result_id, .. } + | Self::Ordered { result_id, .. } + | Self::Unordered { result_id, .. } + | Self::LogicalEqual { result_id, .. } + | Self::LogicalNotEqual { result_id, .. } + | Self::LogicalOr { result_id, .. } + | Self::LogicalAnd { result_id, .. } + | Self::LogicalNot { result_id, .. } + | Self::Select { result_id, .. } + | Self::IEqual { result_id, .. } + | Self::INotEqual { result_id, .. } + | Self::UGreaterThan { result_id, .. } + | Self::SGreaterThan { result_id, .. } + | Self::UGreaterThanEqual { result_id, .. } + | Self::SGreaterThanEqual { result_id, .. } + | Self::ULessThan { result_id, .. } + | Self::SLessThan { result_id, .. } + | Self::ULessThanEqual { result_id, .. } + | Self::SLessThanEqual { result_id, .. } + | Self::FOrdEqual { result_id, .. } + | Self::FUnordEqual { result_id, .. } + | Self::FOrdNotEqual { result_id, .. } + | Self::FUnordNotEqual { result_id, .. } + | Self::FOrdLessThan { result_id, .. } + | Self::FUnordLessThan { result_id, .. } + | Self::FOrdGreaterThan { result_id, .. } + | Self::FUnordGreaterThan { result_id, .. } + | Self::FOrdLessThanEqual { result_id, .. } + | Self::FUnordLessThanEqual { result_id, .. } + | Self::FOrdGreaterThanEqual { result_id, .. } + | Self::FUnordGreaterThanEqual { result_id, .. } + | Self::ShiftRightLogical { result_id, .. } + | Self::ShiftRightArithmetic { result_id, .. } + | Self::ShiftLeftLogical { result_id, .. } + | Self::BitwiseOr { result_id, .. } + | Self::BitwiseXor { result_id, .. } + | Self::BitwiseAnd { result_id, .. } + | Self::Not { result_id, .. } + | Self::BitFieldInsert { result_id, .. } + | Self::BitFieldSExtract { result_id, .. } + | Self::BitFieldUExtract { result_id, .. } + | Self::BitReverse { result_id, .. } + | Self::BitCount { result_id, .. } + | Self::DPdx { result_id, .. } + | Self::DPdy { result_id, .. } + | Self::Fwidth { result_id, .. } + | Self::DPdxFine { result_id, .. } + | Self::DPdyFine { result_id, .. } + | Self::FwidthFine { result_id, .. } + | Self::DPdxCoarse { result_id, .. } + | Self::DPdyCoarse { result_id, .. } + | Self::FwidthCoarse { result_id, .. } + | Self::AtomicLoad { result_id, .. } + | Self::AtomicExchange { result_id, .. } + | Self::AtomicCompareExchange { result_id, .. } + | Self::AtomicCompareExchangeWeak { result_id, .. } + | Self::AtomicIIncrement { result_id, .. } + | Self::AtomicIDecrement { result_id, .. } + | Self::AtomicIAdd { result_id, .. } + | Self::AtomicISub { result_id, .. } + | Self::AtomicSMin { result_id, .. } + | Self::AtomicUMin { result_id, .. } + | Self::AtomicSMax { result_id, .. } + | Self::AtomicUMax { result_id, .. } + | Self::AtomicAnd { result_id, .. } + | Self::AtomicOr { result_id, .. } + | Self::AtomicXor { result_id, .. } + | Self::Phi { result_id, .. } + | Self::Label { result_id, .. } + | Self::GroupAsyncCopy { result_id, .. } + | Self::GroupAll { result_id, .. } + | Self::GroupAny { result_id, .. } + | Self::GroupBroadcast { result_id, .. } + | Self::GroupIAdd { result_id, .. } + | Self::GroupFAdd { result_id, .. } + | Self::GroupFMin { result_id, .. } + | Self::GroupUMin { result_id, .. } + | Self::GroupSMin { result_id, .. } + | Self::GroupFMax { result_id, .. } + | Self::GroupUMax { result_id, .. } + | Self::GroupSMax { result_id, .. } + | Self::ReadPipe { result_id, .. } + | Self::WritePipe { result_id, .. } + | Self::ReservedReadPipe { result_id, .. } + | Self::ReservedWritePipe { result_id, .. } + | Self::ReserveReadPipePackets { result_id, .. } + | Self::ReserveWritePipePackets { result_id, .. } + | Self::IsValidReserveId { result_id, .. } + | Self::GetNumPipePackets { result_id, .. } + | Self::GetMaxPipePackets { result_id, .. } + | Self::GroupReserveReadPipePackets { result_id, .. } + | Self::GroupReserveWritePipePackets { result_id, .. } + | Self::EnqueueMarker { result_id, .. } + | Self::EnqueueKernel { result_id, .. } + | Self::GetKernelNDrangeSubGroupCount { result_id, .. } + | Self::GetKernelNDrangeMaxSubGroupSize { result_id, .. } + | Self::GetKernelWorkGroupSize { result_id, .. } + | Self::GetKernelPreferredWorkGroupSizeMultiple { result_id, .. } + | Self::CreateUserEvent { result_id, .. } + | Self::IsValidEvent { result_id, .. } + | Self::GetDefaultQueue { result_id, .. } + | Self::BuildNDRange { result_id, .. } + | Self::ImageSparseSampleImplicitLod { result_id, .. } + | Self::ImageSparseSampleExplicitLod { result_id, .. } + | Self::ImageSparseSampleDrefImplicitLod { result_id, .. } + | Self::ImageSparseSampleDrefExplicitLod { result_id, .. } + | Self::ImageSparseSampleProjImplicitLod { result_id, .. } + | Self::ImageSparseSampleProjExplicitLod { result_id, .. } + | Self::ImageSparseSampleProjDrefImplicitLod { result_id, .. } + | Self::ImageSparseSampleProjDrefExplicitLod { result_id, .. } + | Self::ImageSparseFetch { result_id, .. } + | Self::ImageSparseGather { result_id, .. } + | Self::ImageSparseDrefGather { result_id, .. } + | Self::ImageSparseTexelsResident { result_id, .. } + | Self::AtomicFlagTestAndSet { result_id, .. } + | Self::ImageSparseRead { result_id, .. } + | Self::SizeOf { result_id, .. } + | Self::TypePipeStorage { result_id, .. } + | Self::ConstantPipeStorage { result_id, .. } + | Self::CreatePipeFromPipeStorage { result_id, .. } + | Self::GetKernelLocalSizeForSubgroupCount { result_id, .. } + | Self::GetKernelMaxNumSubgroups { result_id, .. } + | Self::TypeNamedBarrier { result_id, .. } + | Self::NamedBarrierInitialize { result_id, .. } + | Self::GroupNonUniformElect { result_id, .. } + | Self::GroupNonUniformAll { result_id, .. } + | Self::GroupNonUniformAny { result_id, .. } + | Self::GroupNonUniformAllEqual { result_id, .. } + | Self::GroupNonUniformBroadcast { result_id, .. } + | Self::GroupNonUniformBroadcastFirst { result_id, .. } + | Self::GroupNonUniformBallot { result_id, .. } + | Self::GroupNonUniformInverseBallot { result_id, .. } + | Self::GroupNonUniformBallotBitExtract { result_id, .. } + | Self::GroupNonUniformBallotBitCount { result_id, .. } + | Self::GroupNonUniformBallotFindLSB { result_id, .. } + | Self::GroupNonUniformBallotFindMSB { result_id, .. } + | Self::GroupNonUniformShuffle { result_id, .. } + | Self::GroupNonUniformShuffleXor { result_id, .. } + | Self::GroupNonUniformShuffleUp { result_id, .. } + | Self::GroupNonUniformShuffleDown { result_id, .. } + | Self::GroupNonUniformIAdd { result_id, .. } + | Self::GroupNonUniformFAdd { result_id, .. } + | Self::GroupNonUniformIMul { result_id, .. } + | Self::GroupNonUniformFMul { result_id, .. } + | Self::GroupNonUniformSMin { result_id, .. } + | Self::GroupNonUniformUMin { result_id, .. } + | Self::GroupNonUniformFMin { result_id, .. } + | Self::GroupNonUniformSMax { result_id, .. } + | Self::GroupNonUniformUMax { result_id, .. } + | Self::GroupNonUniformFMax { result_id, .. } + | Self::GroupNonUniformBitwiseAnd { result_id, .. } + | Self::GroupNonUniformBitwiseOr { result_id, .. } + | Self::GroupNonUniformBitwiseXor { result_id, .. } + | Self::GroupNonUniformLogicalAnd { result_id, .. } + | Self::GroupNonUniformLogicalOr { result_id, .. } + | Self::GroupNonUniformLogicalXor { result_id, .. } + | Self::GroupNonUniformQuadBroadcast { result_id, .. } + | Self::GroupNonUniformQuadSwap { result_id, .. } + | Self::CopyLogical { result_id, .. } + | Self::PtrEqual { result_id, .. } + | Self::PtrNotEqual { result_id, .. } + | Self::PtrDiff { result_id, .. } + | Self::SubgroupBallotKHR { result_id, .. } + | Self::SubgroupFirstInvocationKHR { result_id, .. } + | Self::SubgroupAllKHR { result_id, .. } + | Self::SubgroupAnyKHR { result_id, .. } + | Self::SubgroupAllEqualKHR { result_id, .. } + | Self::SubgroupReadInvocationKHR { result_id, .. } + | Self::ConvertUToAccelerationStructureKHR { result_id, .. } + | Self::SDot { result_id, .. } + | Self::UDot { result_id, .. } + | Self::SUDot { result_id, .. } + | Self::SDotAccSat { result_id, .. } + | Self::UDotAccSat { result_id, .. } + | Self::SUDotAccSat { result_id, .. } + | Self::TypeRayQueryKHR { result_id, .. } + | Self::RayQueryProceedKHR { result_id, .. } + | Self::RayQueryGetIntersectionTypeKHR { result_id, .. } + | Self::GroupIAddNonUniformAMD { result_id, .. } + | Self::GroupFAddNonUniformAMD { result_id, .. } + | Self::GroupFMinNonUniformAMD { result_id, .. } + | Self::GroupUMinNonUniformAMD { result_id, .. } + | Self::GroupSMinNonUniformAMD { result_id, .. } + | Self::GroupFMaxNonUniformAMD { result_id, .. } + | Self::GroupUMaxNonUniformAMD { result_id, .. } + | Self::GroupSMaxNonUniformAMD { result_id, .. } + | Self::FragmentMaskFetchAMD { result_id, .. } + | Self::FragmentFetchAMD { result_id, .. } + | Self::ReadClockKHR { result_id, .. } + | Self::ImageSampleFootprintNV { result_id, .. } + | Self::GroupNonUniformPartitionNV { result_id, .. } + | Self::ReportIntersectionKHR { result_id, .. } + | Self::TypeAccelerationStructureKHR { result_id, .. } + | Self::TypeCooperativeMatrixNV { result_id, .. } + | Self::CooperativeMatrixLoadNV { result_id, .. } + | Self::CooperativeMatrixMulAddNV { result_id, .. } + | Self::CooperativeMatrixLengthNV { result_id, .. } + | Self::IsHelperInvocationEXT { result_id, .. } + | Self::ConvertUToImageNV { result_id, .. } + | Self::ConvertUToSamplerNV { result_id, .. } + | Self::ConvertImageToUNV { result_id, .. } + | Self::ConvertSamplerToUNV { result_id, .. } + | Self::ConvertUToSampledImageNV { result_id, .. } + | Self::ConvertSampledImageToUNV { result_id, .. } + | Self::SubgroupShuffleINTEL { result_id, .. } + | Self::SubgroupShuffleDownINTEL { result_id, .. } + | Self::SubgroupShuffleUpINTEL { result_id, .. } + | Self::SubgroupShuffleXorINTEL { result_id, .. } + | Self::SubgroupBlockReadINTEL { result_id, .. } + | Self::SubgroupImageBlockReadINTEL { result_id, .. } + | Self::SubgroupImageMediaBlockReadINTEL { result_id, .. } + | Self::UCountLeadingZerosINTEL { result_id, .. } + | Self::UCountTrailingZerosINTEL { result_id, .. } + | Self::AbsISubINTEL { result_id, .. } + | Self::AbsUSubINTEL { result_id, .. } + | Self::IAddSatINTEL { result_id, .. } + | Self::UAddSatINTEL { result_id, .. } + | Self::IAverageINTEL { result_id, .. } + | Self::UAverageINTEL { result_id, .. } + | Self::IAverageRoundedINTEL { result_id, .. } + | Self::UAverageRoundedINTEL { result_id, .. } + | Self::ISubSatINTEL { result_id, .. } + | Self::USubSatINTEL { result_id, .. } + | Self::IMul32x16INTEL { result_id, .. } + | Self::UMul32x16INTEL { result_id, .. } + | Self::ConstantFunctionPointerINTEL { result_id, .. } + | Self::FunctionPointerCallINTEL { result_id, .. } + | Self::AsmTargetINTEL { result_id, .. } + | Self::AsmINTEL { result_id, .. } + | Self::AsmCallINTEL { result_id, .. } + | Self::AtomicFMinEXT { result_id, .. } + | Self::AtomicFMaxEXT { result_id, .. } + | Self::ExpectKHR { result_id, .. } + | Self::VmeImageINTEL { result_id, .. } + | Self::TypeVmeImageINTEL { result_id, .. } + | Self::TypeAvcImePayloadINTEL { result_id, .. } + | Self::TypeAvcRefPayloadINTEL { result_id, .. } + | Self::TypeAvcSicPayloadINTEL { result_id, .. } + | Self::TypeAvcMcePayloadINTEL { result_id, .. } + | Self::TypeAvcMceResultINTEL { result_id, .. } + | Self::TypeAvcImeResultINTEL { result_id, .. } + | Self::TypeAvcImeResultSingleReferenceStreamoutINTEL { result_id, .. } + | Self::TypeAvcImeResultDualReferenceStreamoutINTEL { result_id, .. } + | Self::TypeAvcImeSingleReferenceStreaminINTEL { result_id, .. } + | Self::TypeAvcImeDualReferenceStreaminINTEL { result_id, .. } + | Self::TypeAvcRefResultINTEL { result_id, .. } + | Self::TypeAvcSicResultINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL { + result_id, .. + } + | Self::SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultInterShapePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceSetInterShapePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceSetInterDirectionPenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL { result_id, .. } + | Self::SubgroupAvcMceSetMotionVectorCostFunctionINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcMceSetAcOnlyHaarINTEL { result_id, .. } + | Self::SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL { result_id, .. } + | Self::SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL { + result_id, + .. + } + | Self::SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL { + result_id, + .. + } + | Self::SubgroupAvcMceConvertToImePayloadINTEL { result_id, .. } + | Self::SubgroupAvcMceConvertToImeResultINTEL { result_id, .. } + | Self::SubgroupAvcMceConvertToRefPayloadINTEL { result_id, .. } + | Self::SubgroupAvcMceConvertToRefResultINTEL { result_id, .. } + | Self::SubgroupAvcMceConvertToSicPayloadINTEL { result_id, .. } + | Self::SubgroupAvcMceConvertToSicResultINTEL { result_id, .. } + | Self::SubgroupAvcMceGetMotionVectorsINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterDistortionsINTEL { result_id, .. } + | Self::SubgroupAvcMceGetBestInterDistortionsINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterMajorShapeINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterMinorShapeINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterDirectionsINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterMotionVectorCountINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterReferenceIdsINTEL { result_id, .. } + | Self::SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeInitializeINTEL { result_id, .. } + | Self::SubgroupAvcImeSetSingleReferenceINTEL { result_id, .. } + | Self::SubgroupAvcImeSetDualReferenceINTEL { result_id, .. } + | Self::SubgroupAvcImeRefWindowSizeINTEL { result_id, .. } + | Self::SubgroupAvcImeAdjustRefOffsetINTEL { result_id, .. } + | Self::SubgroupAvcImeConvertToMcePayloadINTEL { result_id, .. } + | Self::SubgroupAvcImeSetMaxMotionVectorCountINTEL { result_id, .. } + | Self::SubgroupAvcImeSetUnidirectionalMixDisableINTEL { result_id, .. } + | Self::SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL { result_id, .. } + | Self::SubgroupAvcImeSetWeightedSadINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithSingleReferenceINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithDualReferenceINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL { result_id, .. } + | Self::SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL { + result_id, .. + } + | Self::SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL { result_id, .. } + | Self::SubgroupAvcImeConvertToMceResultINTEL { result_id, .. } + | Self::SubgroupAvcImeGetSingleReferenceStreaminINTEL { result_id, .. } + | Self::SubgroupAvcImeGetDualReferenceStreaminINTEL { result_id, .. } + | Self::SubgroupAvcImeStripSingleReferenceStreamoutINTEL { result_id, .. } + | Self::SubgroupAvcImeStripDualReferenceStreamoutINTEL { result_id, .. } + | Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL { + result_id, + .. + } + | Self::SubgroupAvcImeGetBorderReachedINTEL { result_id, .. } + | Self::SubgroupAvcImeGetTruncatedSearchIndicationINTEL { result_id, .. } + | Self::SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL { + result_id, .. + } + | Self::SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL { + result_id, .. + } + | Self::SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL { result_id, .. } + | Self::SubgroupAvcFmeInitializeINTEL { result_id, .. } + | Self::SubgroupAvcBmeInitializeINTEL { result_id, .. } + | Self::SubgroupAvcRefConvertToMcePayloadINTEL { result_id, .. } + | Self::SubgroupAvcRefSetBidirectionalMixDisableINTEL { result_id, .. } + | Self::SubgroupAvcRefSetBilinearFilterEnableINTEL { result_id, .. } + | Self::SubgroupAvcRefEvaluateWithSingleReferenceINTEL { result_id, .. } + | Self::SubgroupAvcRefEvaluateWithDualReferenceINTEL { result_id, .. } + | Self::SubgroupAvcRefEvaluateWithMultiReferenceINTEL { result_id, .. } + | Self::SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL { result_id, .. } + | Self::SubgroupAvcRefConvertToMceResultINTEL { result_id, .. } + | Self::SubgroupAvcSicInitializeINTEL { result_id, .. } + | Self::SubgroupAvcSicConfigureSkcINTEL { result_id, .. } + | Self::SubgroupAvcSicConfigureIpeLumaINTEL { result_id, .. } + | Self::SubgroupAvcSicConfigureIpeLumaChromaINTEL { result_id, .. } + | Self::SubgroupAvcSicGetMotionVectorMaskINTEL { result_id, .. } + | Self::SubgroupAvcSicConvertToMcePayloadINTEL { result_id, .. } + | Self::SubgroupAvcSicSetIntraLumaShapePenaltyINTEL { result_id, .. } + | Self::SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL { result_id, .. } + | Self::SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL { result_id, .. } + | Self::SubgroupAvcSicSetBilinearFilterEnableINTEL { result_id, .. } + | Self::SubgroupAvcSicSetSkcForwardTransformEnableINTEL { result_id, .. } + | Self::SubgroupAvcSicSetBlockBasedRawSkipSadINTEL { result_id, .. } + | Self::SubgroupAvcSicEvaluateIpeINTEL { result_id, .. } + | Self::SubgroupAvcSicEvaluateWithSingleReferenceINTEL { result_id, .. } + | Self::SubgroupAvcSicEvaluateWithDualReferenceINTEL { result_id, .. } + | Self::SubgroupAvcSicEvaluateWithMultiReferenceINTEL { result_id, .. } + | Self::SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL { result_id, .. } + | Self::SubgroupAvcSicConvertToMceResultINTEL { result_id, .. } + | Self::SubgroupAvcSicGetIpeLumaShapeINTEL { result_id, .. } + | Self::SubgroupAvcSicGetBestIpeLumaDistortionINTEL { result_id, .. } + | Self::SubgroupAvcSicGetBestIpeChromaDistortionINTEL { result_id, .. } + | Self::SubgroupAvcSicGetPackedIpeLumaModesINTEL { result_id, .. } + | Self::SubgroupAvcSicGetIpeChromaModeINTEL { result_id, .. } + | Self::SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL { result_id, .. } + | Self::SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL { result_id, .. } + | Self::SubgroupAvcSicGetInterRawSadsINTEL { result_id, .. } + | Self::VariableLengthArrayINTEL { result_id, .. } + | Self::SaveMemoryINTEL { result_id, .. } + | Self::ArbitraryFloatSinCosPiINTEL { result_id, .. } + | Self::ArbitraryFloatCastINTEL { result_id, .. } + | Self::ArbitraryFloatCastFromIntINTEL { result_id, .. } + | Self::ArbitraryFloatCastToIntINTEL { result_id, .. } + | Self::ArbitraryFloatAddINTEL { result_id, .. } + | Self::ArbitraryFloatSubINTEL { result_id, .. } + | Self::ArbitraryFloatMulINTEL { result_id, .. } + | Self::ArbitraryFloatDivINTEL { result_id, .. } + | Self::ArbitraryFloatGTINTEL { result_id, .. } + | Self::ArbitraryFloatGEINTEL { result_id, .. } + | Self::ArbitraryFloatLTINTEL { result_id, .. } + | Self::ArbitraryFloatLEINTEL { result_id, .. } + | Self::ArbitraryFloatEQINTEL { result_id, .. } + | Self::ArbitraryFloatRecipINTEL { result_id, .. } + | Self::ArbitraryFloatRSqrtINTEL { result_id, .. } + | Self::ArbitraryFloatCbrtINTEL { result_id, .. } + | Self::ArbitraryFloatHypotINTEL { result_id, .. } + | Self::ArbitraryFloatSqrtINTEL { result_id, .. } + | Self::ArbitraryFloatLogINTEL { result_id, .. } + | Self::ArbitraryFloatLog2INTEL { result_id, .. } + | Self::ArbitraryFloatLog10INTEL { result_id, .. } + | Self::ArbitraryFloatLog1pINTEL { result_id, .. } + | Self::ArbitraryFloatExpINTEL { result_id, .. } + | Self::ArbitraryFloatExp2INTEL { result_id, .. } + | Self::ArbitraryFloatExp10INTEL { result_id, .. } + | Self::ArbitraryFloatExpm1INTEL { result_id, .. } + | Self::ArbitraryFloatSinINTEL { result_id, .. } + | Self::ArbitraryFloatCosINTEL { result_id, .. } + | Self::ArbitraryFloatSinCosINTEL { result_id, .. } + | Self::ArbitraryFloatSinPiINTEL { result_id, .. } + | Self::ArbitraryFloatCosPiINTEL { result_id, .. } + | Self::ArbitraryFloatASinINTEL { result_id, .. } + | Self::ArbitraryFloatASinPiINTEL { result_id, .. } + | Self::ArbitraryFloatACosINTEL { result_id, .. } + | Self::ArbitraryFloatACosPiINTEL { result_id, .. } + | Self::ArbitraryFloatATanINTEL { result_id, .. } + | Self::ArbitraryFloatATanPiINTEL { result_id, .. } + | Self::ArbitraryFloatATan2INTEL { result_id, .. } + | Self::ArbitraryFloatPowINTEL { result_id, .. } + | Self::ArbitraryFloatPowRINTEL { result_id, .. } + | Self::ArbitraryFloatPowNINTEL { result_id, .. } + | Self::FixedSqrtINTEL { result_id, .. } + | Self::FixedRecipINTEL { result_id, .. } + | Self::FixedRsqrtINTEL { result_id, .. } + | Self::FixedSinINTEL { result_id, .. } + | Self::FixedCosINTEL { result_id, .. } + | Self::FixedSinCosINTEL { result_id, .. } + | Self::FixedSinPiINTEL { result_id, .. } + | Self::FixedCosPiINTEL { result_id, .. } + | Self::FixedSinCosPiINTEL { result_id, .. } + | Self::FixedLogINTEL { result_id, .. } + | Self::FixedExpINTEL { result_id, .. } + | Self::PtrCastToCrossWorkgroupINTEL { result_id, .. } + | Self::CrossWorkgroupCastToPtrINTEL { result_id, .. } + | Self::ReadPipeBlockingINTEL { result_id, .. } + | Self::WritePipeBlockingINTEL { result_id, .. } + | Self::FPGARegINTEL { result_id, .. } + | Self::RayQueryGetRayTMinKHR { result_id, .. } + | Self::RayQueryGetRayFlagsKHR { result_id, .. } + | Self::RayQueryGetIntersectionTKHR { result_id, .. } + | Self::RayQueryGetIntersectionInstanceCustomIndexKHR { result_id, .. } + | Self::RayQueryGetIntersectionInstanceIdKHR { result_id, .. } + | Self::RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR { + result_id, + .. + } + | Self::RayQueryGetIntersectionGeometryIndexKHR { result_id, .. } + | Self::RayQueryGetIntersectionPrimitiveIndexKHR { result_id, .. } + | Self::RayQueryGetIntersectionBarycentricsKHR { result_id, .. } + | Self::RayQueryGetIntersectionFrontFaceKHR { result_id, .. } + | Self::RayQueryGetIntersectionCandidateAABBOpaqueKHR { result_id, .. } + | Self::RayQueryGetIntersectionObjectRayDirectionKHR { result_id, .. } + | Self::RayQueryGetIntersectionObjectRayOriginKHR { result_id, .. } + | Self::RayQueryGetWorldRayDirectionKHR { result_id, .. } + | Self::RayQueryGetWorldRayOriginKHR { result_id, .. } + | Self::RayQueryGetIntersectionObjectToWorldKHR { result_id, .. } + | Self::RayQueryGetIntersectionWorldToObjectKHR { result_id, .. } + | Self::AtomicFAddEXT { result_id, .. } + | Self::TypeBufferSurfaceINTEL { result_id, .. } => Some(*result_id), + _ => None, + } + } +} +#[derive(Clone, Debug, PartialEq, Eq)] +#[doc = "An instruction that is used as the operand of the `SpecConstantOp` instruction."] +pub enum SpecConstantInstruction { + AccessChain { + base: Id, + indexes: Vec<Id>, + }, + InBoundsAccessChain { + base: Id, + indexes: Vec<Id>, + }, + PtrAccessChain { + base: Id, + element: Id, + indexes: Vec<Id>, + }, + InBoundsPtrAccessChain { + base: Id, + element: Id, + indexes: Vec<Id>, + }, + VectorShuffle { + vector_1: Id, + vector_2: Id, + components: Vec<u32>, + }, + CompositeExtract { + composite: Id, + indexes: Vec<u32>, + }, + CompositeInsert { + object: Id, + composite: Id, + indexes: Vec<u32>, + }, + ConvertFToU { + float_value: Id, + }, + ConvertFToS { + float_value: Id, + }, + ConvertSToF { + signed_value: Id, + }, + ConvertUToF { + unsigned_value: Id, + }, + UConvert { + unsigned_value: Id, + }, + SConvert { + signed_value: Id, + }, + FConvert { + float_value: Id, + }, + QuantizeToF16 { + value: Id, + }, + ConvertPtrToU { + pointer: Id, + }, + ConvertUToPtr { + integer_value: Id, + }, + PtrCastToGeneric { + pointer: Id, + }, + GenericCastToPtr { + pointer: Id, + }, + Bitcast { + operand: Id, + }, + SNegate { + operand: Id, + }, + FNegate { + operand: Id, + }, + IAdd { + operand1: Id, + operand2: Id, + }, + FAdd { + operand1: Id, + operand2: Id, + }, + ISub { + operand1: Id, + operand2: Id, + }, + FSub { + operand1: Id, + operand2: Id, + }, + IMul { + operand1: Id, + operand2: Id, + }, + FMul { + operand1: Id, + operand2: Id, + }, + UDiv { + operand1: Id, + operand2: Id, + }, + SDiv { + operand1: Id, + operand2: Id, + }, + FDiv { + operand1: Id, + operand2: Id, + }, + UMod { + operand1: Id, + operand2: Id, + }, + SRem { + operand1: Id, + operand2: Id, + }, + SMod { + operand1: Id, + operand2: Id, + }, + FRem { + operand1: Id, + operand2: Id, + }, + FMod { + operand1: Id, + operand2: Id, + }, + LogicalEqual { + operand1: Id, + operand2: Id, + }, + LogicalNotEqual { + operand1: Id, + operand2: Id, + }, + LogicalOr { + operand1: Id, + operand2: Id, + }, + LogicalAnd { + operand1: Id, + operand2: Id, + }, + LogicalNot { + operand: Id, + }, + Select { + condition: Id, + object_1: Id, + object_2: Id, + }, + IEqual { + operand1: Id, + operand2: Id, + }, + INotEqual { + operand1: Id, + operand2: Id, + }, + UGreaterThan { + operand1: Id, + operand2: Id, + }, + SGreaterThan { + operand1: Id, + operand2: Id, + }, + UGreaterThanEqual { + operand1: Id, + operand2: Id, + }, + SGreaterThanEqual { + operand1: Id, + operand2: Id, + }, + ULessThan { + operand1: Id, + operand2: Id, + }, + SLessThan { + operand1: Id, + operand2: Id, + }, + ULessThanEqual { + operand1: Id, + operand2: Id, + }, + SLessThanEqual { + operand1: Id, + operand2: Id, + }, + ShiftRightLogical { + base: Id, + shift: Id, + }, + ShiftRightArithmetic { + base: Id, + shift: Id, + }, + ShiftLeftLogical { + base: Id, + shift: Id, + }, + BitwiseOr { + operand1: Id, + operand2: Id, + }, + BitwiseXor { + operand1: Id, + operand2: Id, + }, + BitwiseAnd { + operand1: Id, + operand2: Id, + }, + Not { + operand: Id, + }, +} +impl SpecConstantInstruction { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Self, ParseError> { + let opcode = (reader.next_u32()? & 0xffff) as u16; + Ok(match opcode { + 65u16 => Self::AccessChain { + base: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 66u16 => Self::InBoundsAccessChain { + base: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 67u16 => Self::PtrAccessChain { + base: Id(reader.next_u32()?), + element: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 70u16 => Self::InBoundsPtrAccessChain { + base: Id(reader.next_u32()?), + element: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(Id(reader.next_u32()?)); + } + vec + }, + }, + 79u16 => Self::VectorShuffle { + vector_1: Id(reader.next_u32()?), + vector_2: Id(reader.next_u32()?), + components: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 81u16 => Self::CompositeExtract { + composite: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 82u16 => Self::CompositeInsert { + object: Id(reader.next_u32()?), + composite: Id(reader.next_u32()?), + indexes: { + let mut vec = Vec::new(); + while !reader.is_empty() { + vec.push(reader.next_u32()?); + } + vec + }, + }, + 109u16 => Self::ConvertFToU { + float_value: Id(reader.next_u32()?), + }, + 110u16 => Self::ConvertFToS { + float_value: Id(reader.next_u32()?), + }, + 111u16 => Self::ConvertSToF { + signed_value: Id(reader.next_u32()?), + }, + 112u16 => Self::ConvertUToF { + unsigned_value: Id(reader.next_u32()?), + }, + 113u16 => Self::UConvert { + unsigned_value: Id(reader.next_u32()?), + }, + 114u16 => Self::SConvert { + signed_value: Id(reader.next_u32()?), + }, + 115u16 => Self::FConvert { + float_value: Id(reader.next_u32()?), + }, + 116u16 => Self::QuantizeToF16 { + value: Id(reader.next_u32()?), + }, + 117u16 => Self::ConvertPtrToU { + pointer: Id(reader.next_u32()?), + }, + 120u16 => Self::ConvertUToPtr { + integer_value: Id(reader.next_u32()?), + }, + 121u16 => Self::PtrCastToGeneric { + pointer: Id(reader.next_u32()?), + }, + 122u16 => Self::GenericCastToPtr { + pointer: Id(reader.next_u32()?), + }, + 124u16 => Self::Bitcast { + operand: Id(reader.next_u32()?), + }, + 126u16 => Self::SNegate { + operand: Id(reader.next_u32()?), + }, + 127u16 => Self::FNegate { + operand: Id(reader.next_u32()?), + }, + 128u16 => Self::IAdd { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 129u16 => Self::FAdd { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 130u16 => Self::ISub { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 131u16 => Self::FSub { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 132u16 => Self::IMul { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 133u16 => Self::FMul { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 134u16 => Self::UDiv { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 135u16 => Self::SDiv { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 136u16 => Self::FDiv { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 137u16 => Self::UMod { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 138u16 => Self::SRem { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 139u16 => Self::SMod { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 140u16 => Self::FRem { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 141u16 => Self::FMod { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 164u16 => Self::LogicalEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 165u16 => Self::LogicalNotEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 166u16 => Self::LogicalOr { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 167u16 => Self::LogicalAnd { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 168u16 => Self::LogicalNot { + operand: Id(reader.next_u32()?), + }, + 169u16 => Self::Select { + condition: Id(reader.next_u32()?), + object_1: Id(reader.next_u32()?), + object_2: Id(reader.next_u32()?), + }, + 170u16 => Self::IEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 171u16 => Self::INotEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 172u16 => Self::UGreaterThan { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 173u16 => Self::SGreaterThan { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 174u16 => Self::UGreaterThanEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 175u16 => Self::SGreaterThanEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 176u16 => Self::ULessThan { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 177u16 => Self::SLessThan { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 178u16 => Self::ULessThanEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 179u16 => Self::SLessThanEqual { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 194u16 => Self::ShiftRightLogical { + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 195u16 => Self::ShiftRightArithmetic { + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 196u16 => Self::ShiftLeftLogical { + base: Id(reader.next_u32()?), + shift: Id(reader.next_u32()?), + }, + 197u16 => Self::BitwiseOr { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 198u16 => Self::BitwiseXor { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 199u16 => Self::BitwiseAnd { + operand1: Id(reader.next_u32()?), + operand2: Id(reader.next_u32()?), + }, + 200u16 => Self::Not { + operand: Id(reader.next_u32()?), + }, + opcode => return Err(reader.map_err(ParseErrors::UnknownSpecConstantOpcode(opcode))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct ImageOperands { + pub bias: Option<Id>, + pub lod: Option<Id>, + pub grad: Option<(Id, Id)>, + pub const_offset: Option<Id>, + pub offset: Option<Id>, + pub const_offsets: Option<Id>, + pub sample: Option<Id>, + pub min_lod: Option<Id>, + pub make_texel_available: Option<Id>, + pub make_texel_visible: Option<Id>, + pub non_private_texel: bool, + pub volatile_texel: bool, + pub sign_extend: bool, + pub zero_extend: bool, + pub nontemporal: bool, + pub offsets: Option<Id>, +} +impl ImageOperands { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ImageOperands, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + bias: if value & 1u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + lod: if value & 2u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + grad: if value & 4u32 != 0 { + Some((Id(reader.next_u32()?), Id(reader.next_u32()?))) + } else { + None + }, + const_offset: if value & 8u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + offset: if value & 16u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + const_offsets: if value & 32u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + sample: if value & 64u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + min_lod: if value & 128u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + make_texel_available: if value & 256u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + make_texel_visible: if value & 512u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + non_private_texel: value & 1024u32 != 0, + volatile_texel: value & 2048u32 != 0, + sign_extend: value & 4096u32 != 0, + zero_extend: value & 8192u32 != 0, + nontemporal: value & 16384u32 != 0, + offsets: if value & 65536u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct FPFastMathMode { + pub not_nan: bool, + pub not_inf: bool, + pub nsz: bool, + pub allow_recip: bool, + pub fast: bool, + pub allow_contract_fast_intel: bool, + pub allow_reassoc_intel: bool, +} +impl FPFastMathMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FPFastMathMode, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + not_nan: value & 1u32 != 0, + not_inf: value & 2u32 != 0, + nsz: value & 4u32 != 0, + allow_recip: value & 8u32 != 0, + fast: value & 16u32 != 0, + allow_contract_fast_intel: value & 65536u32 != 0, + allow_reassoc_intel: value & 131072u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct SelectionControl { + pub flatten: bool, + pub dont_flatten: bool, +} +impl SelectionControl { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<SelectionControl, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + flatten: value & 1u32 != 0, + dont_flatten: value & 2u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct LoopControl { + pub unroll: bool, + pub dont_unroll: bool, + pub dependency_infinite: bool, + pub dependency_length: Option<u32>, + pub min_iterations: Option<u32>, + pub max_iterations: Option<u32>, + pub iteration_multiple: Option<u32>, + pub peel_count: Option<u32>, + pub partial_count: Option<u32>, + pub initiation_interval_intel: Option<u32>, + pub max_concurrency_intel: Option<u32>, + pub dependency_array_intel: Option<u32>, + pub pipeline_enable_intel: Option<u32>, + pub loop_coalesce_intel: Option<u32>, + pub max_interleaving_intel: Option<u32>, + pub speculated_iterations_intel: Option<u32>, + pub no_fusion_intel: Option<u32>, +} +impl LoopControl { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<LoopControl, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + unroll: value & 1u32 != 0, + dont_unroll: value & 2u32 != 0, + dependency_infinite: value & 4u32 != 0, + dependency_length: if value & 8u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + min_iterations: if value & 16u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + max_iterations: if value & 32u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + iteration_multiple: if value & 64u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + peel_count: if value & 128u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + partial_count: if value & 256u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + initiation_interval_intel: if value & 65536u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + max_concurrency_intel: if value & 131072u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + dependency_array_intel: if value & 262144u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + pipeline_enable_intel: if value & 524288u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + loop_coalesce_intel: if value & 1048576u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + max_interleaving_intel: if value & 2097152u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + speculated_iterations_intel: if value & 4194304u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + no_fusion_intel: if value & 8388608u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct FunctionControl { + pub inline: bool, + pub dont_inline: bool, + pub pure: bool, + pub constant: bool, + pub opt_none_intel: bool, +} +impl FunctionControl { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FunctionControl, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + inline: value & 1u32 != 0, + dont_inline: value & 2u32 != 0, + pure: value & 4u32 != 0, + constant: value & 8u32 != 0, + opt_none_intel: value & 65536u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct MemorySemantics { + pub acquire: bool, + pub release: bool, + pub acquire_release: bool, + pub sequentially_consistent: bool, + pub uniform_memory: bool, + pub subgroup_memory: bool, + pub workgroup_memory: bool, + pub cross_workgroup_memory: bool, + pub atomic_counter_memory: bool, + pub image_memory: bool, + pub output_memory: bool, + pub make_available: bool, + pub make_visible: bool, + pub volatile: bool, +} +impl MemorySemantics { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<MemorySemantics, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + acquire: value & 2u32 != 0, + release: value & 4u32 != 0, + acquire_release: value & 8u32 != 0, + sequentially_consistent: value & 16u32 != 0, + uniform_memory: value & 64u32 != 0, + subgroup_memory: value & 128u32 != 0, + workgroup_memory: value & 256u32 != 0, + cross_workgroup_memory: value & 512u32 != 0, + atomic_counter_memory: value & 1024u32 != 0, + image_memory: value & 2048u32 != 0, + output_memory: value & 4096u32 != 0, + make_available: value & 8192u32 != 0, + make_visible: value & 16384u32 != 0, + volatile: value & 32768u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct MemoryAccess { + pub volatile: bool, + pub aligned: Option<u32>, + pub nontemporal: bool, + pub make_pointer_available: Option<Id>, + pub make_pointer_visible: Option<Id>, + pub non_private_pointer: bool, +} +impl MemoryAccess { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<MemoryAccess, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + volatile: value & 1u32 != 0, + aligned: if value & 2u32 != 0 { + Some(reader.next_u32()?) + } else { + None + }, + nontemporal: value & 4u32 != 0, + make_pointer_available: if value & 8u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + make_pointer_visible: if value & 16u32 != 0 { + Some(Id(reader.next_u32()?)) + } else { + None + }, + non_private_pointer: value & 32u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct KernelProfilingInfo { + pub cmd_exec_time: bool, +} +impl KernelProfilingInfo { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<KernelProfilingInfo, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + cmd_exec_time: value & 1u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct RayFlags { + pub opaque_khr: bool, + pub no_opaque_khr: bool, + pub terminate_on_first_hit_khr: bool, + pub skip_closest_hit_shader_khr: bool, + pub cull_back_facing_triangles_khr: bool, + pub cull_front_facing_triangles_khr: bool, + pub cull_opaque_khr: bool, + pub cull_no_opaque_khr: bool, + pub skip_triangles_khr: bool, + pub skip_aab_bs_khr: bool, +} +impl RayFlags { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<RayFlags, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + opaque_khr: value & 1u32 != 0, + no_opaque_khr: value & 2u32 != 0, + terminate_on_first_hit_khr: value & 4u32 != 0, + skip_closest_hit_shader_khr: value & 8u32 != 0, + cull_back_facing_triangles_khr: value & 16u32 != 0, + cull_front_facing_triangles_khr: value & 32u32 != 0, + cull_opaque_khr: value & 64u32 != 0, + cull_no_opaque_khr: value & 128u32 != 0, + skip_triangles_khr: value & 256u32 != 0, + skip_aab_bs_khr: value & 512u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub struct FragmentShadingRate { + pub vertical2_pixels: bool, + pub vertical4_pixels: bool, + pub horizontal2_pixels: bool, + pub horizontal4_pixels: bool, +} +impl FragmentShadingRate { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FragmentShadingRate, ParseError> { + let value = reader.next_u32()?; + Ok(Self { + vertical2_pixels: value & 1u32 != 0, + vertical4_pixels: value & 2u32 != 0, + horizontal2_pixels: value & 4u32 != 0, + horizontal4_pixels: value & 8u32 != 0, + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum SourceLanguage { + Unknown, + ESSL, + GLSL, + OpenCL_C, + OpenCL_CPP, + HLSL, + CPP_for_OpenCL, +} +impl SourceLanguage { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<SourceLanguage, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Unknown, + 1u32 => Self::ESSL, + 2u32 => Self::GLSL, + 3u32 => Self::OpenCL_C, + 4u32 => Self::OpenCL_CPP, + 5u32 => Self::HLSL, + 6u32 => Self::CPP_for_OpenCL, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("SourceLanguage", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum ExecutionModel { + Vertex, + TessellationControl, + TessellationEvaluation, + Geometry, + Fragment, + GLCompute, + Kernel, + TaskNV, + MeshNV, + RayGenerationKHR, + IntersectionKHR, + AnyHitKHR, + ClosestHitKHR, + MissKHR, + CallableKHR, +} +impl ExecutionModel { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ExecutionModel, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Vertex, + 1u32 => Self::TessellationControl, + 2u32 => Self::TessellationEvaluation, + 3u32 => Self::Geometry, + 4u32 => Self::Fragment, + 5u32 => Self::GLCompute, + 6u32 => Self::Kernel, + 5267u32 => Self::TaskNV, + 5268u32 => Self::MeshNV, + 5313u32 => Self::RayGenerationKHR, + 5314u32 => Self::IntersectionKHR, + 5315u32 => Self::AnyHitKHR, + 5316u32 => Self::ClosestHitKHR, + 5317u32 => Self::MissKHR, + 5318u32 => Self::CallableKHR, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("ExecutionModel", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum AddressingModel { + Logical, + Physical32, + Physical64, + PhysicalStorageBuffer64, +} +impl AddressingModel { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<AddressingModel, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Logical, + 1u32 => Self::Physical32, + 2u32 => Self::Physical64, + 5348u32 => Self::PhysicalStorageBuffer64, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("AddressingModel", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum MemoryModel { + Simple, + GLSL450, + OpenCL, + Vulkan, +} +impl MemoryModel { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<MemoryModel, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Simple, + 1u32 => Self::GLSL450, + 2u32 => Self::OpenCL, + 3u32 => Self::Vulkan, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("MemoryModel", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum ExecutionMode { + Invocations { + number_of_invocation_invocations: u32, + }, + SpacingEqual, + SpacingFractionalEven, + SpacingFractionalOdd, + VertexOrderCw, + VertexOrderCcw, + PixelCenterInteger, + OriginUpperLeft, + OriginLowerLeft, + EarlyFragmentTests, + PointMode, + Xfb, + DepthReplacing, + DepthGreater, + DepthLess, + DepthUnchanged, + LocalSize { + x_size: u32, + y_size: u32, + z_size: u32, + }, + LocalSizeHint { + x_size: u32, + y_size: u32, + z_size: u32, + }, + InputPoints, + InputLines, + InputLinesAdjacency, + Triangles, + InputTrianglesAdjacency, + Quads, + Isolines, + OutputVertices { + vertex_count: u32, + }, + OutputPoints, + OutputLineStrip, + OutputTriangleStrip, + VecTypeHint { + vector_type: u32, + }, + ContractionOff, + Initializer, + Finalizer, + SubgroupSize { + subgroup_size: u32, + }, + SubgroupsPerWorkgroup { + subgroups_per_workgroup: u32, + }, + SubgroupsPerWorkgroupId { + subgroups_per_workgroup: Id, + }, + LocalSizeId { + x_size: Id, + y_size: Id, + z_size: Id, + }, + LocalSizeHintId { + x_size_hint: Id, + y_size_hint: Id, + z_size_hint: Id, + }, + SubgroupUniformControlFlowKHR, + PostDepthCoverage, + DenormPreserve { + target_width: u32, + }, + DenormFlushToZero { + target_width: u32, + }, + SignedZeroInfNanPreserve { + target_width: u32, + }, + RoundingModeRTE { + target_width: u32, + }, + RoundingModeRTZ { + target_width: u32, + }, + StencilRefReplacingEXT, + OutputLinesNV, + OutputPrimitivesNV { + primitive_count: u32, + }, + DerivativeGroupQuadsNV, + DerivativeGroupLinearNV, + OutputTrianglesNV, + PixelInterlockOrderedEXT, + PixelInterlockUnorderedEXT, + SampleInterlockOrderedEXT, + SampleInterlockUnorderedEXT, + ShadingRateInterlockOrderedEXT, + ShadingRateInterlockUnorderedEXT, + SharedLocalMemorySizeINTEL { + size: u32, + }, + RoundingModeRTPINTEL { + target_width: u32, + }, + RoundingModeRTNINTEL { + target_width: u32, + }, + FloatingPointModeALTINTEL { + target_width: u32, + }, + FloatingPointModeIEEEINTEL { + target_width: u32, + }, + MaxWorkgroupSizeINTEL { + max_x_size: u32, + max_y_size: u32, + max_z_size: u32, + }, + MaxWorkDimINTEL { + max_dimensions: u32, + }, + NoGlobalOffsetINTEL, + NumSIMDWorkitemsINTEL { + vector_width: u32, + }, + SchedulerTargetFmaxMhzINTEL { + target_fmax: u32, + }, +} +impl ExecutionMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ExecutionMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Invocations { + number_of_invocation_invocations: reader.next_u32()?, + }, + 1u32 => Self::SpacingEqual, + 2u32 => Self::SpacingFractionalEven, + 3u32 => Self::SpacingFractionalOdd, + 4u32 => Self::VertexOrderCw, + 5u32 => Self::VertexOrderCcw, + 6u32 => Self::PixelCenterInteger, + 7u32 => Self::OriginUpperLeft, + 8u32 => Self::OriginLowerLeft, + 9u32 => Self::EarlyFragmentTests, + 10u32 => Self::PointMode, + 11u32 => Self::Xfb, + 12u32 => Self::DepthReplacing, + 14u32 => Self::DepthGreater, + 15u32 => Self::DepthLess, + 16u32 => Self::DepthUnchanged, + 17u32 => Self::LocalSize { + x_size: reader.next_u32()?, + y_size: reader.next_u32()?, + z_size: reader.next_u32()?, + }, + 18u32 => Self::LocalSizeHint { + x_size: reader.next_u32()?, + y_size: reader.next_u32()?, + z_size: reader.next_u32()?, + }, + 19u32 => Self::InputPoints, + 20u32 => Self::InputLines, + 21u32 => Self::InputLinesAdjacency, + 22u32 => Self::Triangles, + 23u32 => Self::InputTrianglesAdjacency, + 24u32 => Self::Quads, + 25u32 => Self::Isolines, + 26u32 => Self::OutputVertices { + vertex_count: reader.next_u32()?, + }, + 27u32 => Self::OutputPoints, + 28u32 => Self::OutputLineStrip, + 29u32 => Self::OutputTriangleStrip, + 30u32 => Self::VecTypeHint { + vector_type: reader.next_u32()?, + }, + 31u32 => Self::ContractionOff, + 33u32 => Self::Initializer, + 34u32 => Self::Finalizer, + 35u32 => Self::SubgroupSize { + subgroup_size: reader.next_u32()?, + }, + 36u32 => Self::SubgroupsPerWorkgroup { + subgroups_per_workgroup: reader.next_u32()?, + }, + 37u32 => Self::SubgroupsPerWorkgroupId { + subgroups_per_workgroup: Id(reader.next_u32()?), + }, + 38u32 => Self::LocalSizeId { + x_size: Id(reader.next_u32()?), + y_size: Id(reader.next_u32()?), + z_size: Id(reader.next_u32()?), + }, + 39u32 => Self::LocalSizeHintId { + x_size_hint: Id(reader.next_u32()?), + y_size_hint: Id(reader.next_u32()?), + z_size_hint: Id(reader.next_u32()?), + }, + 4421u32 => Self::SubgroupUniformControlFlowKHR, + 4446u32 => Self::PostDepthCoverage, + 4459u32 => Self::DenormPreserve { + target_width: reader.next_u32()?, + }, + 4460u32 => Self::DenormFlushToZero { + target_width: reader.next_u32()?, + }, + 4461u32 => Self::SignedZeroInfNanPreserve { + target_width: reader.next_u32()?, + }, + 4462u32 => Self::RoundingModeRTE { + target_width: reader.next_u32()?, + }, + 4463u32 => Self::RoundingModeRTZ { + target_width: reader.next_u32()?, + }, + 5027u32 => Self::StencilRefReplacingEXT, + 5269u32 => Self::OutputLinesNV, + 5270u32 => Self::OutputPrimitivesNV { + primitive_count: reader.next_u32()?, + }, + 5289u32 => Self::DerivativeGroupQuadsNV, + 5290u32 => Self::DerivativeGroupLinearNV, + 5298u32 => Self::OutputTrianglesNV, + 5366u32 => Self::PixelInterlockOrderedEXT, + 5367u32 => Self::PixelInterlockUnorderedEXT, + 5368u32 => Self::SampleInterlockOrderedEXT, + 5369u32 => Self::SampleInterlockUnorderedEXT, + 5370u32 => Self::ShadingRateInterlockOrderedEXT, + 5371u32 => Self::ShadingRateInterlockUnorderedEXT, + 5618u32 => Self::SharedLocalMemorySizeINTEL { + size: reader.next_u32()?, + }, + 5620u32 => Self::RoundingModeRTPINTEL { + target_width: reader.next_u32()?, + }, + 5621u32 => Self::RoundingModeRTNINTEL { + target_width: reader.next_u32()?, + }, + 5622u32 => Self::FloatingPointModeALTINTEL { + target_width: reader.next_u32()?, + }, + 5623u32 => Self::FloatingPointModeIEEEINTEL { + target_width: reader.next_u32()?, + }, + 5893u32 => Self::MaxWorkgroupSizeINTEL { + max_x_size: reader.next_u32()?, + max_y_size: reader.next_u32()?, + max_z_size: reader.next_u32()?, + }, + 5894u32 => Self::MaxWorkDimINTEL { + max_dimensions: reader.next_u32()?, + }, + 5895u32 => Self::NoGlobalOffsetINTEL, + 5896u32 => Self::NumSIMDWorkitemsINTEL { + vector_width: reader.next_u32()?, + }, + 5903u32 => Self::SchedulerTargetFmaxMhzINTEL { + target_fmax: reader.next_u32()?, + }, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("ExecutionMode", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum StorageClass { + UniformConstant, + Input, + Uniform, + Output, + Workgroup, + CrossWorkgroup, + Private, + Function, + Generic, + PushConstant, + AtomicCounter, + Image, + StorageBuffer, + CallableDataKHR, + IncomingCallableDataKHR, + RayPayloadKHR, + HitAttributeKHR, + IncomingRayPayloadKHR, + ShaderRecordBufferKHR, + PhysicalStorageBuffer, + CodeSectionINTEL, + DeviceOnlyINTEL, + HostOnlyINTEL, +} +impl StorageClass { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<StorageClass, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::UniformConstant, + 1u32 => Self::Input, + 2u32 => Self::Uniform, + 3u32 => Self::Output, + 4u32 => Self::Workgroup, + 5u32 => Self::CrossWorkgroup, + 6u32 => Self::Private, + 7u32 => Self::Function, + 8u32 => Self::Generic, + 9u32 => Self::PushConstant, + 10u32 => Self::AtomicCounter, + 11u32 => Self::Image, + 12u32 => Self::StorageBuffer, + 5328u32 => Self::CallableDataKHR, + 5329u32 => Self::IncomingCallableDataKHR, + 5338u32 => Self::RayPayloadKHR, + 5339u32 => Self::HitAttributeKHR, + 5342u32 => Self::IncomingRayPayloadKHR, + 5343u32 => Self::ShaderRecordBufferKHR, + 5349u32 => Self::PhysicalStorageBuffer, + 5605u32 => Self::CodeSectionINTEL, + 5936u32 => Self::DeviceOnlyINTEL, + 5937u32 => Self::HostOnlyINTEL, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("StorageClass", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum Dim { + Dim1D, + Dim2D, + Dim3D, + Cube, + Rect, + Buffer, + SubpassData, +} +impl Dim { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Dim, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Dim1D, + 1u32 => Self::Dim2D, + 2u32 => Self::Dim3D, + 3u32 => Self::Cube, + 4u32 => Self::Rect, + 5u32 => Self::Buffer, + 6u32 => Self::SubpassData, + value => return Err(reader.map_err(ParseErrors::UnknownEnumerant("Dim", value))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum SamplerAddressingMode { + None, + ClampToEdge, + Clamp, + Repeat, + RepeatMirrored, +} +impl SamplerAddressingMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<SamplerAddressingMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::None, + 1u32 => Self::ClampToEdge, + 2u32 => Self::Clamp, + 3u32 => Self::Repeat, + 4u32 => Self::RepeatMirrored, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant( + "SamplerAddressingMode", + value, + ))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum SamplerFilterMode { + Nearest, + Linear, +} +impl SamplerFilterMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<SamplerFilterMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Nearest, + 1u32 => Self::Linear, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("SamplerFilterMode", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum ImageFormat { + Unknown, + Rgba32f, + Rgba16f, + R32f, + Rgba8, + Rgba8Snorm, + Rg32f, + Rg16f, + R11fG11fB10f, + R16f, + Rgba16, + Rgb10A2, + Rg16, + Rg8, + R16, + R8, + Rgba16Snorm, + Rg16Snorm, + Rg8Snorm, + R16Snorm, + R8Snorm, + Rgba32i, + Rgba16i, + Rgba8i, + R32i, + Rg32i, + Rg16i, + Rg8i, + R16i, + R8i, + Rgba32ui, + Rgba16ui, + Rgba8ui, + R32ui, + Rgb10a2ui, + Rg32ui, + Rg16ui, + Rg8ui, + R16ui, + R8ui, + R64ui, + R64i, +} +impl ImageFormat { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ImageFormat, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Unknown, + 1u32 => Self::Rgba32f, + 2u32 => Self::Rgba16f, + 3u32 => Self::R32f, + 4u32 => Self::Rgba8, + 5u32 => Self::Rgba8Snorm, + 6u32 => Self::Rg32f, + 7u32 => Self::Rg16f, + 8u32 => Self::R11fG11fB10f, + 9u32 => Self::R16f, + 10u32 => Self::Rgba16, + 11u32 => Self::Rgb10A2, + 12u32 => Self::Rg16, + 13u32 => Self::Rg8, + 14u32 => Self::R16, + 15u32 => Self::R8, + 16u32 => Self::Rgba16Snorm, + 17u32 => Self::Rg16Snorm, + 18u32 => Self::Rg8Snorm, + 19u32 => Self::R16Snorm, + 20u32 => Self::R8Snorm, + 21u32 => Self::Rgba32i, + 22u32 => Self::Rgba16i, + 23u32 => Self::Rgba8i, + 24u32 => Self::R32i, + 25u32 => Self::Rg32i, + 26u32 => Self::Rg16i, + 27u32 => Self::Rg8i, + 28u32 => Self::R16i, + 29u32 => Self::R8i, + 30u32 => Self::Rgba32ui, + 31u32 => Self::Rgba16ui, + 32u32 => Self::Rgba8ui, + 33u32 => Self::R32ui, + 34u32 => Self::Rgb10a2ui, + 35u32 => Self::Rg32ui, + 36u32 => Self::Rg16ui, + 37u32 => Self::Rg8ui, + 38u32 => Self::R16ui, + 39u32 => Self::R8ui, + 40u32 => Self::R64ui, + 41u32 => Self::R64i, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("ImageFormat", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum ImageChannelOrder { + R, + A, + RG, + RA, + RGB, + RGBA, + BGRA, + ARGB, + Intensity, + Luminance, + Rx, + RGx, + RGBx, + Depth, + DepthStencil, + sRGB, + sRGBx, + sRGBA, + sBGRA, + ABGR, +} +impl ImageChannelOrder { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ImageChannelOrder, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::R, + 1u32 => Self::A, + 2u32 => Self::RG, + 3u32 => Self::RA, + 4u32 => Self::RGB, + 5u32 => Self::RGBA, + 6u32 => Self::BGRA, + 7u32 => Self::ARGB, + 8u32 => Self::Intensity, + 9u32 => Self::Luminance, + 10u32 => Self::Rx, + 11u32 => Self::RGx, + 12u32 => Self::RGBx, + 13u32 => Self::Depth, + 14u32 => Self::DepthStencil, + 15u32 => Self::sRGB, + 16u32 => Self::sRGBx, + 17u32 => Self::sRGBA, + 18u32 => Self::sBGRA, + 19u32 => Self::ABGR, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("ImageChannelOrder", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum ImageChannelDataType { + SnormInt8, + SnormInt16, + UnormInt8, + UnormInt16, + UnormShort565, + UnormShort555, + UnormInt101010, + SignedInt8, + SignedInt16, + SignedInt32, + UnsignedInt8, + UnsignedInt16, + UnsignedInt32, + HalfFloat, + Float, + UnormInt24, + UnormInt101010_2, +} +impl ImageChannelDataType { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<ImageChannelDataType, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::SnormInt8, + 1u32 => Self::SnormInt16, + 2u32 => Self::UnormInt8, + 3u32 => Self::UnormInt16, + 4u32 => Self::UnormShort565, + 5u32 => Self::UnormShort555, + 6u32 => Self::UnormInt101010, + 7u32 => Self::SignedInt8, + 8u32 => Self::SignedInt16, + 9u32 => Self::SignedInt32, + 10u32 => Self::UnsignedInt8, + 11u32 => Self::UnsignedInt16, + 12u32 => Self::UnsignedInt32, + 13u32 => Self::HalfFloat, + 14u32 => Self::Float, + 15u32 => Self::UnormInt24, + 16u32 => Self::UnormInt101010_2, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("ImageChannelDataType", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum FPRoundingMode { + RTE, + RTZ, + RTP, + RTN, +} +impl FPRoundingMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FPRoundingMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::RTE, + 1u32 => Self::RTZ, + 2u32 => Self::RTP, + 3u32 => Self::RTN, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("FPRoundingMode", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum FPDenormMode { + Preserve, + FlushToZero, +} +impl FPDenormMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FPDenormMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Preserve, + 1u32 => Self::FlushToZero, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("FPDenormMode", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum QuantizationModes { + TRN, + TRN_ZERO, + RND, + RND_ZERO, + RND_INF, + RND_MIN_INF, + RND_CONV, + RND_CONV_ODD, +} +impl QuantizationModes { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<QuantizationModes, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::TRN, + 1u32 => Self::TRN_ZERO, + 2u32 => Self::RND, + 3u32 => Self::RND_ZERO, + 4u32 => Self::RND_INF, + 5u32 => Self::RND_MIN_INF, + 6u32 => Self::RND_CONV, + 7u32 => Self::RND_CONV_ODD, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("QuantizationModes", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum FPOperationMode { + IEEE, + ALT, +} +impl FPOperationMode { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FPOperationMode, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::IEEE, + 1u32 => Self::ALT, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("FPOperationMode", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum OverflowModes { + WRAP, + SAT, + SAT_ZERO, + SAT_SYM, +} +impl OverflowModes { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<OverflowModes, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::WRAP, + 1u32 => Self::SAT, + 2u32 => Self::SAT_ZERO, + 3u32 => Self::SAT_SYM, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("OverflowModes", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum LinkageType { + Export, + Import, + LinkOnceODR, +} +impl LinkageType { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<LinkageType, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Export, + 1u32 => Self::Import, + 2u32 => Self::LinkOnceODR, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("LinkageType", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum AccessQualifier { + ReadOnly, + WriteOnly, + ReadWrite, +} +impl AccessQualifier { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<AccessQualifier, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::ReadOnly, + 1u32 => Self::WriteOnly, + 2u32 => Self::ReadWrite, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("AccessQualifier", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum FunctionParameterAttribute { + Zext, + Sext, + ByVal, + Sret, + NoAlias, + NoCapture, + NoWrite, + NoReadWrite, +} +impl FunctionParameterAttribute { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<FunctionParameterAttribute, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Zext, + 1u32 => Self::Sext, + 2u32 => Self::ByVal, + 3u32 => Self::Sret, + 4u32 => Self::NoAlias, + 5u32 => Self::NoCapture, + 6u32 => Self::NoWrite, + 7u32 => Self::NoReadWrite, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant( + "FunctionParameterAttribute", + value, + ))) + } + }) + } +} +#[derive(Clone, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum Decoration { + RelaxedPrecision, + SpecId { + specialization_constant_id: u32, + }, + Block, + BufferBlock, + RowMajor, + ColMajor, + ArrayStride { + array_stride: u32, + }, + MatrixStride { + matrix_stride: u32, + }, + GLSLShared, + GLSLPacked, + CPacked, + BuiltIn { + built_in: BuiltIn, + }, + NoPerspective, + Flat, + Patch, + Centroid, + Sample, + Invariant, + Restrict, + Aliased, + Volatile, + Constant, + Coherent, + NonWritable, + NonReadable, + Uniform, + UniformId { + execution: Id, + }, + SaturatedConversion, + Stream { + stream_number: u32, + }, + Location { + location: u32, + }, + Component { + component: u32, + }, + Index { + index: u32, + }, + Binding { + binding_point: u32, + }, + DescriptorSet { + descriptor_set: u32, + }, + Offset { + byte_offset: u32, + }, + XfbBuffer { + xfb_buffer_number: u32, + }, + XfbStride { + xfb_stride: u32, + }, + FuncParamAttr { + function_parameter_attribute: FunctionParameterAttribute, + }, + FPRoundingMode { + floating_point_rounding_mode: FPRoundingMode, + }, + FPFastMathMode { + fast_math_mode: FPFastMathMode, + }, + LinkageAttributes { + name: String, + linkage_type: LinkageType, + }, + NoContraction, + InputAttachmentIndex { + attachment_index: u32, + }, + Alignment { + alignment: u32, + }, + MaxByteOffset { + max_byte_offset: u32, + }, + AlignmentId { + alignment: Id, + }, + MaxByteOffsetId { + max_byte_offset: Id, + }, + NoSignedWrap, + NoUnsignedWrap, + ExplicitInterpAMD, + OverrideCoverageNV, + PassthroughNV, + ViewportRelativeNV, + SecondaryViewportRelativeNV { + offset: u32, + }, + PerPrimitiveNV, + PerViewNV, + PerTaskNV, + PerVertexKHR, + NonUniform, + RestrictPointer, + AliasedPointer, + BindlessSamplerNV, + BindlessImageNV, + BoundSamplerNV, + BoundImageNV, + SIMTCallINTEL { + n: u32, + }, + ReferencedIndirectlyINTEL, + ClobberINTEL { + register: String, + }, + SideEffectsINTEL, + VectorComputeVariableINTEL, + FuncParamIOKindINTEL { + kind: u32, + }, + VectorComputeFunctionINTEL, + StackCallINTEL, + GlobalVariableOffsetINTEL { + offset: u32, + }, + CounterBuffer { + counter_buffer: Id, + }, + UserSemantic { + semantic: String, + }, + UserTypeGOOGLE { + user_type: String, + }, + FunctionRoundingModeINTEL { + target_width: u32, + fp_rounding_mode: FPRoundingMode, + }, + FunctionDenormModeINTEL { + target_width: u32, + fp_denorm_mode: FPDenormMode, + }, + RegisterINTEL, + MemoryINTEL { + memory_type: String, + }, + NumbanksINTEL { + banks: u32, + }, + BankwidthINTEL { + bank_width: u32, + }, + MaxPrivateCopiesINTEL { + maximum_copies: u32, + }, + SinglepumpINTEL, + DoublepumpINTEL, + MaxReplicatesINTEL { + maximum_replicates: u32, + }, + SimpleDualPortINTEL, + MergeINTEL { + merge_key: String, + merge_type: String, + }, + BankBitsINTEL { + bank_bits: u32, + }, + ForcePow2DepthINTEL { + force_key: u32, + }, + BurstCoalesceINTEL, + CacheSizeINTEL { + cache_size_in_bytes: u32, + }, + DontStaticallyCoalesceINTEL, + PrefetchINTEL { + prefetcher_size_in_bytes: u32, + }, + StallEnableINTEL, + FuseLoopsInFunctionINTEL, + BufferLocationINTEL { + buffer_location_id: u32, + }, + IOPipeStorageINTEL { + io_pipe_id: u32, + }, + FunctionFloatingPointModeINTEL { + target_width: u32, + fp_operation_mode: FPOperationMode, + }, + SingleElementVectorINTEL, + VectorComputeCallableFunctionINTEL, + MediaBlockIOINTEL, +} +impl Decoration { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Decoration, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::RelaxedPrecision, + 1u32 => Self::SpecId { + specialization_constant_id: reader.next_u32()?, + }, + 2u32 => Self::Block, + 3u32 => Self::BufferBlock, + 4u32 => Self::RowMajor, + 5u32 => Self::ColMajor, + 6u32 => Self::ArrayStride { + array_stride: reader.next_u32()?, + }, + 7u32 => Self::MatrixStride { + matrix_stride: reader.next_u32()?, + }, + 8u32 => Self::GLSLShared, + 9u32 => Self::GLSLPacked, + 10u32 => Self::CPacked, + 11u32 => Self::BuiltIn { + built_in: BuiltIn::parse(reader)?, + }, + 13u32 => Self::NoPerspective, + 14u32 => Self::Flat, + 15u32 => Self::Patch, + 16u32 => Self::Centroid, + 17u32 => Self::Sample, + 18u32 => Self::Invariant, + 19u32 => Self::Restrict, + 20u32 => Self::Aliased, + 21u32 => Self::Volatile, + 22u32 => Self::Constant, + 23u32 => Self::Coherent, + 24u32 => Self::NonWritable, + 25u32 => Self::NonReadable, + 26u32 => Self::Uniform, + 27u32 => Self::UniformId { + execution: Id(reader.next_u32()?), + }, + 28u32 => Self::SaturatedConversion, + 29u32 => Self::Stream { + stream_number: reader.next_u32()?, + }, + 30u32 => Self::Location { + location: reader.next_u32()?, + }, + 31u32 => Self::Component { + component: reader.next_u32()?, + }, + 32u32 => Self::Index { + index: reader.next_u32()?, + }, + 33u32 => Self::Binding { + binding_point: reader.next_u32()?, + }, + 34u32 => Self::DescriptorSet { + descriptor_set: reader.next_u32()?, + }, + 35u32 => Self::Offset { + byte_offset: reader.next_u32()?, + }, + 36u32 => Self::XfbBuffer { + xfb_buffer_number: reader.next_u32()?, + }, + 37u32 => Self::XfbStride { + xfb_stride: reader.next_u32()?, + }, + 38u32 => Self::FuncParamAttr { + function_parameter_attribute: FunctionParameterAttribute::parse(reader)?, + }, + 39u32 => Self::FPRoundingMode { + floating_point_rounding_mode: FPRoundingMode::parse(reader)?, + }, + 40u32 => Self::FPFastMathMode { + fast_math_mode: FPFastMathMode::parse(reader)?, + }, + 41u32 => Self::LinkageAttributes { + name: reader.next_string()?, + linkage_type: LinkageType::parse(reader)?, + }, + 42u32 => Self::NoContraction, + 43u32 => Self::InputAttachmentIndex { + attachment_index: reader.next_u32()?, + }, + 44u32 => Self::Alignment { + alignment: reader.next_u32()?, + }, + 45u32 => Self::MaxByteOffset { + max_byte_offset: reader.next_u32()?, + }, + 46u32 => Self::AlignmentId { + alignment: Id(reader.next_u32()?), + }, + 47u32 => Self::MaxByteOffsetId { + max_byte_offset: Id(reader.next_u32()?), + }, + 4469u32 => Self::NoSignedWrap, + 4470u32 => Self::NoUnsignedWrap, + 4999u32 => Self::ExplicitInterpAMD, + 5248u32 => Self::OverrideCoverageNV, + 5250u32 => Self::PassthroughNV, + 5252u32 => Self::ViewportRelativeNV, + 5256u32 => Self::SecondaryViewportRelativeNV { + offset: reader.next_u32()?, + }, + 5271u32 => Self::PerPrimitiveNV, + 5272u32 => Self::PerViewNV, + 5273u32 => Self::PerTaskNV, + 5285u32 => Self::PerVertexKHR, + 5300u32 => Self::NonUniform, + 5355u32 => Self::RestrictPointer, + 5356u32 => Self::AliasedPointer, + 5398u32 => Self::BindlessSamplerNV, + 5399u32 => Self::BindlessImageNV, + 5400u32 => Self::BoundSamplerNV, + 5401u32 => Self::BoundImageNV, + 5599u32 => Self::SIMTCallINTEL { + n: reader.next_u32()?, + }, + 5602u32 => Self::ReferencedIndirectlyINTEL, + 5607u32 => Self::ClobberINTEL { + register: reader.next_string()?, + }, + 5608u32 => Self::SideEffectsINTEL, + 5624u32 => Self::VectorComputeVariableINTEL, + 5625u32 => Self::FuncParamIOKindINTEL { + kind: reader.next_u32()?, + }, + 5626u32 => Self::VectorComputeFunctionINTEL, + 5627u32 => Self::StackCallINTEL, + 5628u32 => Self::GlobalVariableOffsetINTEL { + offset: reader.next_u32()?, + }, + 5634u32 => Self::CounterBuffer { + counter_buffer: Id(reader.next_u32()?), + }, + 5635u32 => Self::UserSemantic { + semantic: reader.next_string()?, + }, + 5636u32 => Self::UserTypeGOOGLE { + user_type: reader.next_string()?, + }, + 5822u32 => Self::FunctionRoundingModeINTEL { + target_width: reader.next_u32()?, + fp_rounding_mode: FPRoundingMode::parse(reader)?, + }, + 5823u32 => Self::FunctionDenormModeINTEL { + target_width: reader.next_u32()?, + fp_denorm_mode: FPDenormMode::parse(reader)?, + }, + 5825u32 => Self::RegisterINTEL, + 5826u32 => Self::MemoryINTEL { + memory_type: reader.next_string()?, + }, + 5827u32 => Self::NumbanksINTEL { + banks: reader.next_u32()?, + }, + 5828u32 => Self::BankwidthINTEL { + bank_width: reader.next_u32()?, + }, + 5829u32 => Self::MaxPrivateCopiesINTEL { + maximum_copies: reader.next_u32()?, + }, + 5830u32 => Self::SinglepumpINTEL, + 5831u32 => Self::DoublepumpINTEL, + 5832u32 => Self::MaxReplicatesINTEL { + maximum_replicates: reader.next_u32()?, + }, + 5833u32 => Self::SimpleDualPortINTEL, + 5834u32 => Self::MergeINTEL { + merge_key: reader.next_string()?, + merge_type: reader.next_string()?, + }, + 5835u32 => Self::BankBitsINTEL { + bank_bits: reader.next_u32()?, + }, + 5836u32 => Self::ForcePow2DepthINTEL { + force_key: reader.next_u32()?, + }, + 5899u32 => Self::BurstCoalesceINTEL, + 5900u32 => Self::CacheSizeINTEL { + cache_size_in_bytes: reader.next_u32()?, + }, + 5901u32 => Self::DontStaticallyCoalesceINTEL, + 5902u32 => Self::PrefetchINTEL { + prefetcher_size_in_bytes: reader.next_u32()?, + }, + 5905u32 => Self::StallEnableINTEL, + 5907u32 => Self::FuseLoopsInFunctionINTEL, + 5921u32 => Self::BufferLocationINTEL { + buffer_location_id: reader.next_u32()?, + }, + 5944u32 => Self::IOPipeStorageINTEL { + io_pipe_id: reader.next_u32()?, + }, + 6080u32 => Self::FunctionFloatingPointModeINTEL { + target_width: reader.next_u32()?, + fp_operation_mode: FPOperationMode::parse(reader)?, + }, + 6085u32 => Self::SingleElementVectorINTEL, + 6087u32 => Self::VectorComputeCallableFunctionINTEL, + 6140u32 => Self::MediaBlockIOINTEL, + value => return Err(reader.map_err(ParseErrors::UnknownEnumerant("Decoration", value))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum BuiltIn { + Position, + PointSize, + ClipDistance, + CullDistance, + VertexId, + InstanceId, + PrimitiveId, + InvocationId, + Layer, + ViewportIndex, + TessLevelOuter, + TessLevelInner, + TessCoord, + PatchVertices, + FragCoord, + PointCoord, + FrontFacing, + SampleId, + SamplePosition, + SampleMask, + FragDepth, + HelperInvocation, + NumWorkgroups, + WorkgroupSize, + WorkgroupId, + LocalInvocationId, + GlobalInvocationId, + LocalInvocationIndex, + WorkDim, + GlobalSize, + EnqueuedWorkgroupSize, + GlobalOffset, + GlobalLinearId, + SubgroupSize, + SubgroupMaxSize, + NumSubgroups, + NumEnqueuedSubgroups, + SubgroupId, + SubgroupLocalInvocationId, + VertexIndex, + InstanceIndex, + SubgroupEqMask, + SubgroupGeMask, + SubgroupGtMask, + SubgroupLeMask, + SubgroupLtMask, + BaseVertex, + BaseInstance, + DrawIndex, + PrimitiveShadingRateKHR, + DeviceIndex, + ViewIndex, + ShadingRateKHR, + BaryCoordNoPerspAMD, + BaryCoordNoPerspCentroidAMD, + BaryCoordNoPerspSampleAMD, + BaryCoordSmoothAMD, + BaryCoordSmoothCentroidAMD, + BaryCoordSmoothSampleAMD, + BaryCoordPullModelAMD, + FragStencilRefEXT, + ViewportMaskNV, + SecondaryPositionNV, + SecondaryViewportMaskNV, + PositionPerViewNV, + ViewportMaskPerViewNV, + FullyCoveredEXT, + TaskCountNV, + PrimitiveCountNV, + PrimitiveIndicesNV, + ClipDistancePerViewNV, + CullDistancePerViewNV, + LayerPerViewNV, + MeshViewCountNV, + MeshViewIndicesNV, + BaryCoordKHR, + BaryCoordNoPerspKHR, + FragSizeEXT, + FragInvocationCountEXT, + LaunchIdKHR, + LaunchSizeKHR, + WorldRayOriginKHR, + WorldRayDirectionKHR, + ObjectRayOriginKHR, + ObjectRayDirectionKHR, + RayTminKHR, + RayTmaxKHR, + InstanceCustomIndexKHR, + ObjectToWorldKHR, + WorldToObjectKHR, + HitTNV, + HitKindKHR, + CurrentRayTimeNV, + IncomingRayFlagsKHR, + RayGeometryIndexKHR, + WarpsPerSMNV, + SMCountNV, + WarpIDNV, + SMIDNV, +} +impl BuiltIn { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<BuiltIn, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Position, + 1u32 => Self::PointSize, + 3u32 => Self::ClipDistance, + 4u32 => Self::CullDistance, + 5u32 => Self::VertexId, + 6u32 => Self::InstanceId, + 7u32 => Self::PrimitiveId, + 8u32 => Self::InvocationId, + 9u32 => Self::Layer, + 10u32 => Self::ViewportIndex, + 11u32 => Self::TessLevelOuter, + 12u32 => Self::TessLevelInner, + 13u32 => Self::TessCoord, + 14u32 => Self::PatchVertices, + 15u32 => Self::FragCoord, + 16u32 => Self::PointCoord, + 17u32 => Self::FrontFacing, + 18u32 => Self::SampleId, + 19u32 => Self::SamplePosition, + 20u32 => Self::SampleMask, + 22u32 => Self::FragDepth, + 23u32 => Self::HelperInvocation, + 24u32 => Self::NumWorkgroups, + 25u32 => Self::WorkgroupSize, + 26u32 => Self::WorkgroupId, + 27u32 => Self::LocalInvocationId, + 28u32 => Self::GlobalInvocationId, + 29u32 => Self::LocalInvocationIndex, + 30u32 => Self::WorkDim, + 31u32 => Self::GlobalSize, + 32u32 => Self::EnqueuedWorkgroupSize, + 33u32 => Self::GlobalOffset, + 34u32 => Self::GlobalLinearId, + 36u32 => Self::SubgroupSize, + 37u32 => Self::SubgroupMaxSize, + 38u32 => Self::NumSubgroups, + 39u32 => Self::NumEnqueuedSubgroups, + 40u32 => Self::SubgroupId, + 41u32 => Self::SubgroupLocalInvocationId, + 42u32 => Self::VertexIndex, + 43u32 => Self::InstanceIndex, + 4416u32 => Self::SubgroupEqMask, + 4417u32 => Self::SubgroupGeMask, + 4418u32 => Self::SubgroupGtMask, + 4419u32 => Self::SubgroupLeMask, + 4420u32 => Self::SubgroupLtMask, + 4424u32 => Self::BaseVertex, + 4425u32 => Self::BaseInstance, + 4426u32 => Self::DrawIndex, + 4432u32 => Self::PrimitiveShadingRateKHR, + 4438u32 => Self::DeviceIndex, + 4440u32 => Self::ViewIndex, + 4444u32 => Self::ShadingRateKHR, + 4992u32 => Self::BaryCoordNoPerspAMD, + 4993u32 => Self::BaryCoordNoPerspCentroidAMD, + 4994u32 => Self::BaryCoordNoPerspSampleAMD, + 4995u32 => Self::BaryCoordSmoothAMD, + 4996u32 => Self::BaryCoordSmoothCentroidAMD, + 4997u32 => Self::BaryCoordSmoothSampleAMD, + 4998u32 => Self::BaryCoordPullModelAMD, + 5014u32 => Self::FragStencilRefEXT, + 5253u32 => Self::ViewportMaskNV, + 5257u32 => Self::SecondaryPositionNV, + 5258u32 => Self::SecondaryViewportMaskNV, + 5261u32 => Self::PositionPerViewNV, + 5262u32 => Self::ViewportMaskPerViewNV, + 5264u32 => Self::FullyCoveredEXT, + 5274u32 => Self::TaskCountNV, + 5275u32 => Self::PrimitiveCountNV, + 5276u32 => Self::PrimitiveIndicesNV, + 5277u32 => Self::ClipDistancePerViewNV, + 5278u32 => Self::CullDistancePerViewNV, + 5279u32 => Self::LayerPerViewNV, + 5280u32 => Self::MeshViewCountNV, + 5281u32 => Self::MeshViewIndicesNV, + 5286u32 => Self::BaryCoordKHR, + 5287u32 => Self::BaryCoordNoPerspKHR, + 5292u32 => Self::FragSizeEXT, + 5293u32 => Self::FragInvocationCountEXT, + 5319u32 => Self::LaunchIdKHR, + 5320u32 => Self::LaunchSizeKHR, + 5321u32 => Self::WorldRayOriginKHR, + 5322u32 => Self::WorldRayDirectionKHR, + 5323u32 => Self::ObjectRayOriginKHR, + 5324u32 => Self::ObjectRayDirectionKHR, + 5325u32 => Self::RayTminKHR, + 5326u32 => Self::RayTmaxKHR, + 5327u32 => Self::InstanceCustomIndexKHR, + 5330u32 => Self::ObjectToWorldKHR, + 5331u32 => Self::WorldToObjectKHR, + 5332u32 => Self::HitTNV, + 5333u32 => Self::HitKindKHR, + 5334u32 => Self::CurrentRayTimeNV, + 5351u32 => Self::IncomingRayFlagsKHR, + 5352u32 => Self::RayGeometryIndexKHR, + 5374u32 => Self::WarpsPerSMNV, + 5375u32 => Self::SMCountNV, + 5376u32 => Self::WarpIDNV, + 5377u32 => Self::SMIDNV, + value => return Err(reader.map_err(ParseErrors::UnknownEnumerant("BuiltIn", value))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum Scope { + CrossDevice, + Device, + Workgroup, + Subgroup, + Invocation, + QueueFamily, + ShaderCallKHR, +} +impl Scope { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Scope, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::CrossDevice, + 1u32 => Self::Device, + 2u32 => Self::Workgroup, + 3u32 => Self::Subgroup, + 4u32 => Self::Invocation, + 5u32 => Self::QueueFamily, + 6u32 => Self::ShaderCallKHR, + value => return Err(reader.map_err(ParseErrors::UnknownEnumerant("Scope", value))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum GroupOperation { + Reduce, + InclusiveScan, + ExclusiveScan, + ClusteredReduce, + PartitionedReduceNV, + PartitionedInclusiveScanNV, + PartitionedExclusiveScanNV, +} +impl GroupOperation { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<GroupOperation, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Reduce, + 1u32 => Self::InclusiveScan, + 2u32 => Self::ExclusiveScan, + 3u32 => Self::ClusteredReduce, + 6u32 => Self::PartitionedReduceNV, + 7u32 => Self::PartitionedInclusiveScanNV, + 8u32 => Self::PartitionedExclusiveScanNV, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant("GroupOperation", value))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum KernelEnqueueFlags { + NoWait, + WaitKernel, + WaitWorkGroup, +} +impl KernelEnqueueFlags { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<KernelEnqueueFlags, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::NoWait, + 1u32 => Self::WaitKernel, + 2u32 => Self::WaitWorkGroup, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("KernelEnqueueFlags", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum Capability { + Matrix, + Shader, + Geometry, + Tessellation, + Addresses, + Linkage, + Kernel, + Vector16, + Float16Buffer, + Float16, + Float64, + Int64, + Int64Atomics, + ImageBasic, + ImageReadWrite, + ImageMipmap, + Pipes, + Groups, + DeviceEnqueue, + LiteralSampler, + AtomicStorage, + Int16, + TessellationPointSize, + GeometryPointSize, + ImageGatherExtended, + StorageImageMultisample, + UniformBufferArrayDynamicIndexing, + SampledImageArrayDynamicIndexing, + StorageBufferArrayDynamicIndexing, + StorageImageArrayDynamicIndexing, + ClipDistance, + CullDistance, + ImageCubeArray, + SampleRateShading, + ImageRect, + SampledRect, + GenericPointer, + Int8, + InputAttachment, + SparseResidency, + MinLod, + Sampled1D, + Image1D, + SampledCubeArray, + SampledBuffer, + ImageBuffer, + ImageMSArray, + StorageImageExtendedFormats, + ImageQuery, + DerivativeControl, + InterpolationFunction, + TransformFeedback, + GeometryStreams, + StorageImageReadWithoutFormat, + StorageImageWriteWithoutFormat, + MultiViewport, + SubgroupDispatch, + NamedBarrier, + PipeStorage, + GroupNonUniform, + GroupNonUniformVote, + GroupNonUniformArithmetic, + GroupNonUniformBallot, + GroupNonUniformShuffle, + GroupNonUniformShuffleRelative, + GroupNonUniformClustered, + GroupNonUniformQuad, + ShaderLayer, + ShaderViewportIndex, + UniformDecoration, + FragmentShadingRateKHR, + SubgroupBallotKHR, + DrawParameters, + WorkgroupMemoryExplicitLayoutKHR, + WorkgroupMemoryExplicitLayout8BitAccessKHR, + WorkgroupMemoryExplicitLayout16BitAccessKHR, + SubgroupVoteKHR, + StorageBuffer16BitAccess, + UniformAndStorageBuffer16BitAccess, + StoragePushConstant16, + StorageInputOutput16, + DeviceGroup, + MultiView, + VariablePointersStorageBuffer, + VariablePointers, + AtomicStorageOps, + SampleMaskPostDepthCoverage, + StorageBuffer8BitAccess, + UniformAndStorageBuffer8BitAccess, + StoragePushConstant8, + DenormPreserve, + DenormFlushToZero, + SignedZeroInfNanPreserve, + RoundingModeRTE, + RoundingModeRTZ, + RayQueryProvisionalKHR, + RayQueryKHR, + RayTraversalPrimitiveCullingKHR, + RayTracingKHR, + Float16ImageAMD, + ImageGatherBiasLodAMD, + FragmentMaskAMD, + StencilExportEXT, + ImageReadWriteLodAMD, + Int64ImageEXT, + ShaderClockKHR, + SampleMaskOverrideCoverageNV, + GeometryShaderPassthroughNV, + ShaderViewportIndexLayerEXT, + ShaderViewportMaskNV, + ShaderStereoViewNV, + PerViewAttributesNV, + FragmentFullyCoveredEXT, + MeshShadingNV, + ImageFootprintNV, + FragmentBarycentricKHR, + ComputeDerivativeGroupQuadsNV, + FragmentDensityEXT, + GroupNonUniformPartitionedNV, + ShaderNonUniform, + RuntimeDescriptorArray, + InputAttachmentArrayDynamicIndexing, + UniformTexelBufferArrayDynamicIndexing, + StorageTexelBufferArrayDynamicIndexing, + UniformBufferArrayNonUniformIndexing, + SampledImageArrayNonUniformIndexing, + StorageBufferArrayNonUniformIndexing, + StorageImageArrayNonUniformIndexing, + InputAttachmentArrayNonUniformIndexing, + UniformTexelBufferArrayNonUniformIndexing, + StorageTexelBufferArrayNonUniformIndexing, + RayTracingNV, + RayTracingMotionBlurNV, + VulkanMemoryModel, + VulkanMemoryModelDeviceScope, + PhysicalStorageBufferAddresses, + ComputeDerivativeGroupLinearNV, + RayTracingProvisionalKHR, + CooperativeMatrixNV, + FragmentShaderSampleInterlockEXT, + FragmentShaderShadingRateInterlockEXT, + ShaderSMBuiltinsNV, + FragmentShaderPixelInterlockEXT, + DemoteToHelperInvocation, + BindlessTextureNV, + SubgroupShuffleINTEL, + SubgroupBufferBlockIOINTEL, + SubgroupImageBlockIOINTEL, + SubgroupImageMediaBlockIOINTEL, + RoundToInfinityINTEL, + FloatingPointModeINTEL, + IntegerFunctions2INTEL, + FunctionPointersINTEL, + IndirectReferencesINTEL, + AsmINTEL, + AtomicFloat32MinMaxEXT, + AtomicFloat64MinMaxEXT, + AtomicFloat16MinMaxEXT, + VectorComputeINTEL, + VectorAnyINTEL, + ExpectAssumeKHR, + SubgroupAvcMotionEstimationINTEL, + SubgroupAvcMotionEstimationIntraINTEL, + SubgroupAvcMotionEstimationChromaINTEL, + VariableLengthArrayINTEL, + FunctionFloatControlINTEL, + FPGAMemoryAttributesINTEL, + FPFastMathModeINTEL, + ArbitraryPrecisionIntegersINTEL, + ArbitraryPrecisionFloatingPointINTEL, + UnstructuredLoopControlsINTEL, + FPGALoopControlsINTEL, + KernelAttributesINTEL, + FPGAKernelAttributesINTEL, + FPGAMemoryAccessesINTEL, + FPGAClusterAttributesINTEL, + LoopFuseINTEL, + FPGABufferLocationINTEL, + ArbitraryPrecisionFixedPointINTEL, + USMStorageClassesINTEL, + IOPipesINTEL, + BlockingPipesINTEL, + FPGARegINTEL, + DotProductInputAll, + DotProductInput4x8Bit, + DotProductInput4x8BitPacked, + DotProduct, + BitInstructions, + AtomicFloat32AddEXT, + AtomicFloat64AddEXT, + LongConstantCompositeINTEL, + OptNoneINTEL, + AtomicFloat16AddEXT, + DebugInfoModuleINTEL, +} +impl Capability { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<Capability, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::Matrix, + 1u32 => Self::Shader, + 2u32 => Self::Geometry, + 3u32 => Self::Tessellation, + 4u32 => Self::Addresses, + 5u32 => Self::Linkage, + 6u32 => Self::Kernel, + 7u32 => Self::Vector16, + 8u32 => Self::Float16Buffer, + 9u32 => Self::Float16, + 10u32 => Self::Float64, + 11u32 => Self::Int64, + 12u32 => Self::Int64Atomics, + 13u32 => Self::ImageBasic, + 14u32 => Self::ImageReadWrite, + 15u32 => Self::ImageMipmap, + 17u32 => Self::Pipes, + 18u32 => Self::Groups, + 19u32 => Self::DeviceEnqueue, + 20u32 => Self::LiteralSampler, + 21u32 => Self::AtomicStorage, + 22u32 => Self::Int16, + 23u32 => Self::TessellationPointSize, + 24u32 => Self::GeometryPointSize, + 25u32 => Self::ImageGatherExtended, + 27u32 => Self::StorageImageMultisample, + 28u32 => Self::UniformBufferArrayDynamicIndexing, + 29u32 => Self::SampledImageArrayDynamicIndexing, + 30u32 => Self::StorageBufferArrayDynamicIndexing, + 31u32 => Self::StorageImageArrayDynamicIndexing, + 32u32 => Self::ClipDistance, + 33u32 => Self::CullDistance, + 34u32 => Self::ImageCubeArray, + 35u32 => Self::SampleRateShading, + 36u32 => Self::ImageRect, + 37u32 => Self::SampledRect, + 38u32 => Self::GenericPointer, + 39u32 => Self::Int8, + 40u32 => Self::InputAttachment, + 41u32 => Self::SparseResidency, + 42u32 => Self::MinLod, + 43u32 => Self::Sampled1D, + 44u32 => Self::Image1D, + 45u32 => Self::SampledCubeArray, + 46u32 => Self::SampledBuffer, + 47u32 => Self::ImageBuffer, + 48u32 => Self::ImageMSArray, + 49u32 => Self::StorageImageExtendedFormats, + 50u32 => Self::ImageQuery, + 51u32 => Self::DerivativeControl, + 52u32 => Self::InterpolationFunction, + 53u32 => Self::TransformFeedback, + 54u32 => Self::GeometryStreams, + 55u32 => Self::StorageImageReadWithoutFormat, + 56u32 => Self::StorageImageWriteWithoutFormat, + 57u32 => Self::MultiViewport, + 58u32 => Self::SubgroupDispatch, + 59u32 => Self::NamedBarrier, + 60u32 => Self::PipeStorage, + 61u32 => Self::GroupNonUniform, + 62u32 => Self::GroupNonUniformVote, + 63u32 => Self::GroupNonUniformArithmetic, + 64u32 => Self::GroupNonUniformBallot, + 65u32 => Self::GroupNonUniformShuffle, + 66u32 => Self::GroupNonUniformShuffleRelative, + 67u32 => Self::GroupNonUniformClustered, + 68u32 => Self::GroupNonUniformQuad, + 69u32 => Self::ShaderLayer, + 70u32 => Self::ShaderViewportIndex, + 71u32 => Self::UniformDecoration, + 4422u32 => Self::FragmentShadingRateKHR, + 4423u32 => Self::SubgroupBallotKHR, + 4427u32 => Self::DrawParameters, + 4428u32 => Self::WorkgroupMemoryExplicitLayoutKHR, + 4429u32 => Self::WorkgroupMemoryExplicitLayout8BitAccessKHR, + 4430u32 => Self::WorkgroupMemoryExplicitLayout16BitAccessKHR, + 4431u32 => Self::SubgroupVoteKHR, + 4433u32 => Self::StorageBuffer16BitAccess, + 4434u32 => Self::UniformAndStorageBuffer16BitAccess, + 4435u32 => Self::StoragePushConstant16, + 4436u32 => Self::StorageInputOutput16, + 4437u32 => Self::DeviceGroup, + 4439u32 => Self::MultiView, + 4441u32 => Self::VariablePointersStorageBuffer, + 4442u32 => Self::VariablePointers, + 4445u32 => Self::AtomicStorageOps, + 4447u32 => Self::SampleMaskPostDepthCoverage, + 4448u32 => Self::StorageBuffer8BitAccess, + 4449u32 => Self::UniformAndStorageBuffer8BitAccess, + 4450u32 => Self::StoragePushConstant8, + 4464u32 => Self::DenormPreserve, + 4465u32 => Self::DenormFlushToZero, + 4466u32 => Self::SignedZeroInfNanPreserve, + 4467u32 => Self::RoundingModeRTE, + 4468u32 => Self::RoundingModeRTZ, + 4471u32 => Self::RayQueryProvisionalKHR, + 4472u32 => Self::RayQueryKHR, + 4478u32 => Self::RayTraversalPrimitiveCullingKHR, + 4479u32 => Self::RayTracingKHR, + 5008u32 => Self::Float16ImageAMD, + 5009u32 => Self::ImageGatherBiasLodAMD, + 5010u32 => Self::FragmentMaskAMD, + 5013u32 => Self::StencilExportEXT, + 5015u32 => Self::ImageReadWriteLodAMD, + 5016u32 => Self::Int64ImageEXT, + 5055u32 => Self::ShaderClockKHR, + 5249u32 => Self::SampleMaskOverrideCoverageNV, + 5251u32 => Self::GeometryShaderPassthroughNV, + 5254u32 => Self::ShaderViewportIndexLayerEXT, + 5255u32 => Self::ShaderViewportMaskNV, + 5259u32 => Self::ShaderStereoViewNV, + 5260u32 => Self::PerViewAttributesNV, + 5265u32 => Self::FragmentFullyCoveredEXT, + 5266u32 => Self::MeshShadingNV, + 5282u32 => Self::ImageFootprintNV, + 5284u32 => Self::FragmentBarycentricKHR, + 5288u32 => Self::ComputeDerivativeGroupQuadsNV, + 5291u32 => Self::FragmentDensityEXT, + 5297u32 => Self::GroupNonUniformPartitionedNV, + 5301u32 => Self::ShaderNonUniform, + 5302u32 => Self::RuntimeDescriptorArray, + 5303u32 => Self::InputAttachmentArrayDynamicIndexing, + 5304u32 => Self::UniformTexelBufferArrayDynamicIndexing, + 5305u32 => Self::StorageTexelBufferArrayDynamicIndexing, + 5306u32 => Self::UniformBufferArrayNonUniformIndexing, + 5307u32 => Self::SampledImageArrayNonUniformIndexing, + 5308u32 => Self::StorageBufferArrayNonUniformIndexing, + 5309u32 => Self::StorageImageArrayNonUniformIndexing, + 5310u32 => Self::InputAttachmentArrayNonUniformIndexing, + 5311u32 => Self::UniformTexelBufferArrayNonUniformIndexing, + 5312u32 => Self::StorageTexelBufferArrayNonUniformIndexing, + 5340u32 => Self::RayTracingNV, + 5341u32 => Self::RayTracingMotionBlurNV, + 5345u32 => Self::VulkanMemoryModel, + 5346u32 => Self::VulkanMemoryModelDeviceScope, + 5347u32 => Self::PhysicalStorageBufferAddresses, + 5350u32 => Self::ComputeDerivativeGroupLinearNV, + 5353u32 => Self::RayTracingProvisionalKHR, + 5357u32 => Self::CooperativeMatrixNV, + 5363u32 => Self::FragmentShaderSampleInterlockEXT, + 5372u32 => Self::FragmentShaderShadingRateInterlockEXT, + 5373u32 => Self::ShaderSMBuiltinsNV, + 5378u32 => Self::FragmentShaderPixelInterlockEXT, + 5379u32 => Self::DemoteToHelperInvocation, + 5390u32 => Self::BindlessTextureNV, + 5568u32 => Self::SubgroupShuffleINTEL, + 5569u32 => Self::SubgroupBufferBlockIOINTEL, + 5570u32 => Self::SubgroupImageBlockIOINTEL, + 5579u32 => Self::SubgroupImageMediaBlockIOINTEL, + 5582u32 => Self::RoundToInfinityINTEL, + 5583u32 => Self::FloatingPointModeINTEL, + 5584u32 => Self::IntegerFunctions2INTEL, + 5603u32 => Self::FunctionPointersINTEL, + 5604u32 => Self::IndirectReferencesINTEL, + 5606u32 => Self::AsmINTEL, + 5612u32 => Self::AtomicFloat32MinMaxEXT, + 5613u32 => Self::AtomicFloat64MinMaxEXT, + 5616u32 => Self::AtomicFloat16MinMaxEXT, + 5617u32 => Self::VectorComputeINTEL, + 5619u32 => Self::VectorAnyINTEL, + 5629u32 => Self::ExpectAssumeKHR, + 5696u32 => Self::SubgroupAvcMotionEstimationINTEL, + 5697u32 => Self::SubgroupAvcMotionEstimationIntraINTEL, + 5698u32 => Self::SubgroupAvcMotionEstimationChromaINTEL, + 5817u32 => Self::VariableLengthArrayINTEL, + 5821u32 => Self::FunctionFloatControlINTEL, + 5824u32 => Self::FPGAMemoryAttributesINTEL, + 5837u32 => Self::FPFastMathModeINTEL, + 5844u32 => Self::ArbitraryPrecisionIntegersINTEL, + 5845u32 => Self::ArbitraryPrecisionFloatingPointINTEL, + 5886u32 => Self::UnstructuredLoopControlsINTEL, + 5888u32 => Self::FPGALoopControlsINTEL, + 5892u32 => Self::KernelAttributesINTEL, + 5897u32 => Self::FPGAKernelAttributesINTEL, + 5898u32 => Self::FPGAMemoryAccessesINTEL, + 5904u32 => Self::FPGAClusterAttributesINTEL, + 5906u32 => Self::LoopFuseINTEL, + 5920u32 => Self::FPGABufferLocationINTEL, + 5922u32 => Self::ArbitraryPrecisionFixedPointINTEL, + 5935u32 => Self::USMStorageClassesINTEL, + 5943u32 => Self::IOPipesINTEL, + 5945u32 => Self::BlockingPipesINTEL, + 5948u32 => Self::FPGARegINTEL, + 6016u32 => Self::DotProductInputAll, + 6017u32 => Self::DotProductInput4x8Bit, + 6018u32 => Self::DotProductInput4x8BitPacked, + 6019u32 => Self::DotProduct, + 6025u32 => Self::BitInstructions, + 6033u32 => Self::AtomicFloat32AddEXT, + 6034u32 => Self::AtomicFloat64AddEXT, + 6089u32 => Self::LongConstantCompositeINTEL, + 6094u32 => Self::OptNoneINTEL, + 6095u32 => Self::AtomicFloat16AddEXT, + 6114u32 => Self::DebugInfoModuleINTEL, + value => return Err(reader.map_err(ParseErrors::UnknownEnumerant("Capability", value))), + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum RayQueryIntersection { + RayQueryCandidateIntersectionKHR, + RayQueryCommittedIntersectionKHR, +} +impl RayQueryIntersection { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<RayQueryIntersection, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::RayQueryCandidateIntersectionKHR, + 1u32 => Self::RayQueryCommittedIntersectionKHR, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("RayQueryIntersection", value)) + ) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum RayQueryCommittedIntersectionType { + RayQueryCommittedIntersectionNoneKHR, + RayQueryCommittedIntersectionTriangleKHR, + RayQueryCommittedIntersectionGeneratedKHR, +} +impl RayQueryCommittedIntersectionType { + #[allow(dead_code)] + fn parse( + reader: &mut InstructionReader<'_>, + ) -> Result<RayQueryCommittedIntersectionType, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::RayQueryCommittedIntersectionNoneKHR, + 1u32 => Self::RayQueryCommittedIntersectionTriangleKHR, + 2u32 => Self::RayQueryCommittedIntersectionGeneratedKHR, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant( + "RayQueryCommittedIntersectionType", + value, + ))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum RayQueryCandidateIntersectionType { + RayQueryCandidateIntersectionTriangleKHR, + RayQueryCandidateIntersectionAABBKHR, +} +impl RayQueryCandidateIntersectionType { + #[allow(dead_code)] + fn parse( + reader: &mut InstructionReader<'_>, + ) -> Result<RayQueryCandidateIntersectionType, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::RayQueryCandidateIntersectionTriangleKHR, + 1u32 => Self::RayQueryCandidateIntersectionAABBKHR, + value => { + return Err(reader.map_err(ParseErrors::UnknownEnumerant( + "RayQueryCandidateIntersectionType", + value, + ))) + } + }) + } +} +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +#[allow(non_camel_case_types)] +pub enum PackedVectorFormat { + PackedVectorFormat4x8Bit, +} +impl PackedVectorFormat { + #[allow(dead_code)] + fn parse(reader: &mut InstructionReader<'_>) -> Result<PackedVectorFormat, ParseError> { + Ok(match reader.next_u32()? { + 0u32 => Self::PackedVectorFormat4x8Bit, + value => { + return Err( + reader.map_err(ParseErrors::UnknownEnumerant("PackedVectorFormat", value)) + ) + } + }) + } +} |