pub enum Instruction {
Nop,
Undef {
result_type: TypeId,
result_id: ResultId,
},
SourceContinued {
src: String,
},
Source {
src_lang: SrcLang,
version: u32,
file: ValueId,
src: Option<String>,
},
SourceExtension {
extension: String,
},
Name {
id: Id,
name: String,
},
MemberName {
type_id: TypeId,
member: u32,
name: String,
},
String {
result_id: ResultId,
string: String,
},
Line {
file: ValueId,
line: u32,
col: u32,
},
NoLine,
Decorate {
target: Id,
decoration: Decoration,
},
MemberDecorate {
target: TypeId,
member: u32,
decoration: Decoration,
},
DecorationGroup {
result_id: ResultId,
},
GroupDecorate {
grp: ValueId,
targets: Box<[Id]>,
},
GroupMemberDecorate {
grp: ValueId,
targets: Box<[(TypeId, u32)]>,
},
Extension {
name: String,
},
ExtInstImport {
result_id: ResultId,
name: String,
},
ExtInst {
result_type: TypeId,
result_id: ResultId,
set: ValueId,
instruction: u32,
operands: Box<[Id]>,
},
MemoryModel {
addressing_model: AddressingModel,
memory_model: MemoryModel,
},
EntryPoint {
execution_model: ExecutionModel,
func: ValueId,
name: String,
interface: Box<[Id]>,
},
ExecutionMode {
execution_mode: ExecutionMode,
},
Capability {
capability: Capability,
},
TypeVoid {
result_type: TypeId,
},
TypeBool {
result_type: TypeId,
},
TypeInt {
result_type: TypeId,
width: u32,
signed: bool,
},
TypeFloat {
result_type: TypeId,
width: u32,
},
TypeVector {
result_type: TypeId,
type_id: TypeId,
len: u32,
},
TypeMatrix {
result_type: TypeId,
type_id: TypeId,
cols: u32,
},
TypeImage {
result_type: TypeId,
type_id: TypeId,
dim: Dim,
depth: u32,
arrayed: bool,
multisampled: bool,
sampled: u32,
image_format: ImageFormat,
access_qualifier: Option<AccessQualifier>,
},
TypeSampler {
result_type: TypeId,
},
TypeSampledImage {
result_type: TypeId,
image: TypeId,
},
TypeArray {
result_type: TypeId,
element: TypeId,
len: ValueId,
},
TypeRuntimeArray {
result_type: TypeId,
element: TypeId,
},
TypeStruct {
result_type: TypeId,
fields: Box<[TypeId]>,
},
TypeOpaque {
result_type: TypeId,
name: String,
},
TypePointer {
result_type: TypeId,
storage_class: StorageClass,
pointee: TypeId,
},
TypeFunction {
result_type: TypeId,
return_ty: TypeId,
params: Box<[TypeId]>,
},
TypeEvent {
result_type: TypeId,
},
TypeDeviceEvent {
result_type: TypeId,
},
TypeReserveId {
result_type: TypeId,
},
TypeQueue {
result_type: TypeId,
},
TypePipe {
result_type: TypeId,
},
TypeForwardPointer {
type_id: TypeId,
storage_class: StorageClass,
},
ConstantTrue {
result_type: TypeId,
result_id: ResultId,
},
ConstantFalse {
result_type: TypeId,
result_id: ResultId,
},
Constant {
result_type: TypeId,
result_id: ResultId,
val: Box<[u32]>,
},
ConstantComposite {
result_type: TypeId,
result_id: ResultId,
flds: Box<[ValueId]>,
},
ConstantSampler {
result_type: TypeId,
result_id: ResultId,
sampler_addressing_mode: SamplerAddressingMode,
normalized: bool,
sampler_filter_mode: SamplerFilterMode,
},
ConstantNull {
result_type: TypeId,
result_id: ResultId,
},
SpecConstantTrue {
result_type: TypeId,
result_id: ResultId,
},
SpecConstantFalse {
result_type: TypeId,
result_id: ResultId,
},
SpecConstant {
result_type: TypeId,
result_id: ResultId,
val: Box<[u32]>,
},
SpecConstantComposite {
result_type: TypeId,
result_id: ResultId,
flds: Box<[ValueId]>,
},
SpecConstantOp {
result_type: TypeId,
result_id: ResultId,
num: u32,
operands: Box<[ValueId]>,
},
Variable {
result_type: TypeId,
result_id: ResultId,
storage_class: StorageClass,
init: ValueId,
},
ImageTexelPointer {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
sample: ValueId,
},
Load {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
memory_access: MemoryAccess,
},
Store {
ptr: ValueId,
obj: ValueId,
memory_access: MemoryAccess,
},
CopyMemory {
target: ValueId,
src: ValueId,
memory_access: MemoryAccess,
},
CopyMemorySized {
target: ValueId,
src: ValueId,
size: ValueId,
memory_access: MemoryAccess,
},
AccessChain {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
indices: Box<[ValueId]>,
},
InBoundsAccessChain {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
indices: Box<[ValueId]>,
},
PtrAccessChain {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
element: ValueId,
indices: Box<[ValueId]>,
},
ArrayLength {
result_type: TypeId,
result_id: ResultId,
obj: ValueId,
member: u32,
},
GenericPtrMemSemantics {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
},
InBoundsPtrAccessChain {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
element: ValueId,
indices: Box<[ValueId]>,
},
Function {
result_type: TypeId,
result_id: ResultId,
function_control: FunctionControl,
fn_ty: TypeId,
},
FunctionParameter {
result_type: TypeId,
result_id: ResultId,
},
FunctionEnd,
FunctionCall {
result_type: TypeId,
result_id: ResultId,
func: ValueId,
args: Box<[ValueId]>,
},
SampledImage {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
sampler: ValueId,
},
ImageSampleImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSampleExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSampleDrefImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSampleDrefExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSampleProjImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSampleProjExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSampleProjDrefImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSampleProjDrefExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageFetch {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageGather {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
component: ValueId,
image_operands: ImageOperands,
},
ImageDrefGather {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageRead {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageWrite {
image: ValueId,
coord: ValueId,
texel: ValueId,
image_operands: ImageOperands,
},
Image {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageQueryFormat {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageQueryOrder {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageQuerySizeLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
lod: ValueId,
},
ImageQuerySize {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageQueryLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
},
ImageQueryLevels {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageQuerySamples {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
},
ImageSparseSampleImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSparseSampleExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSparseSampleDrefImplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSparseSampleDrefExplicitLod {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSparseFetch {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ImageSparseGather {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
component: ValueId,
image_operands: ImageOperands,
},
ImageSparseDrefGather {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
d_ref: ValueId,
image_operands: ImageOperands,
},
ImageSparseTexelsResident {
result_type: TypeId,
result_id: ResultId,
resident_code: ValueId,
},
ImageSparseRead {
result_type: TypeId,
result_id: ResultId,
image: ValueId,
coord: ValueId,
image_operands: ImageOperands,
},
ConvertFToU {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
ConvertFToS {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
ConvertSToF {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
ConvertUToF {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
UConvert {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
SConvert {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
FConvert {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
QuantizeToF16 {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
ConvertPtrToU {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
SatConvertSToU {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
SatConvertUToS {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
ConvertUToPtr {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
PtrCastToGeneric {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
GenericCastToPtr {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
GenericCastToPtrExplicit {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
storage_class: StorageClass,
},
Bitcast {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
VectorExtractDynamic {
result_type: TypeId,
result_id: ResultId,
vector: ValueId,
index: ValueId,
},
VectorInsertDynamic {
result_type: TypeId,
result_id: ResultId,
vector: ValueId,
component: ValueId,
index: ValueId,
},
VectorShuffle {
result_type: TypeId,
result_id: ResultId,
vector_1: ValueId,
vector_2: ValueId,
components: Box<[u32]>,
},
CompositeConstruct {
result_type: TypeId,
result_id: ResultId,
fields: Box<[ValueId]>,
},
CompositeExtract {
result_type: TypeId,
result_id: ResultId,
obj: ValueId,
indices: Box<[u32]>,
},
CompositeInsert {
result_type: TypeId,
result_id: ResultId,
obj: ValueId,
composite: ValueId,
indices: Box<[u32]>,
},
CopyObject {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
Transpose {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
SNegate {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
FNegate {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
IAdd {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FAdd {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
ISub {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FSub {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
IMul {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FMul {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
UDiv {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SDiv {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FDiv {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
UMod {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SRem {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SMod {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FRem {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FMod {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
VectorTimesScalar {
result_type: TypeId,
result_id: ResultId,
vector: ValueId,
scalar: ValueId,
},
MatrixTimesScalar {
result_type: TypeId,
result_id: ResultId,
matrix: ValueId,
scalar: ValueId,
},
VectorTimesMatrix {
result_type: TypeId,
result_id: ResultId,
vector: ValueId,
matrix: ValueId,
},
MatrixTimesVector {
result_type: TypeId,
result_id: ResultId,
matrix: ValueId,
vector: ValueId,
},
MatrixTimesMatrix {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
OuterProduct {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
Dot {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
IAddCarry {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
ISubBorrow {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
UMulExtended {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SMulExtended {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
ShiftRightLogical {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
shift: ValueId,
},
ShiftRightArithmetic {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
shift: ValueId,
},
ShiftLeftLogical {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
shift: ValueId,
},
BitwiseOr {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
BitwiseXor {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
BitwiseAnd {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
Not {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
BitFieldInsert {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
insert: ValueId,
offset: ValueId,
count: ValueId,
},
BitFieldSExtract {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
offset: ValueId,
count: ValueId,
},
BitFieldUExtract {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
offset: ValueId,
count: ValueId,
},
BitReverse {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
},
BitCount {
result_type: TypeId,
result_id: ResultId,
base: ValueId,
},
Any {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
All {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
IsNan {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
IsInf {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
IsFinite {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
IsNormal {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
SignBitSet {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
LessOrGreater {
result_type: TypeId,
result_id: ResultId,
x: ValueId,
y: ValueId,
},
Ordered {
result_type: TypeId,
result_id: ResultId,
x: ValueId,
y: ValueId,
},
Unordered {
result_type: TypeId,
result_id: ResultId,
x: ValueId,
y: ValueId,
},
LogicalEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
LogicalNotEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
LogicalOr {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
LogicalAnd {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
LogicalNot {
result_type: TypeId,
result_id: ResultId,
value_id: ValueId,
},
Select {
result_type: TypeId,
result_id: ResultId,
condition: ValueId,
obj_1: ValueId,
obj_2: ValueId,
},
IEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
INotEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
UGreaterThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SGreaterThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
UGreaterThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SGreaterThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
ULessThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SLessThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
ULessThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
SLessThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdNotEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordNotEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdLessThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordLessThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdGreaterThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordGreaterThan {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdLessThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordLessThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FOrdGreaterThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
FUnordGreaterThanEqual {
result_type: TypeId,
result_id: ResultId,
lhs: ValueId,
rhs: ValueId,
},
DPdx {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
DPdy {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
Fwidth {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
DPdxFine {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
DPdyFine {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
FwidthFine {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
DPdxCoarse {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
DPdyCoarse {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
FwidthCoarse {
result_type: TypeId,
result_id: ResultId,
p: ValueId,
},
Phi {
result_type: TypeId,
result_id: ResultId,
values: Box<[(ValueId, ValueId)]>,
},
LoopMerge {
merge: ValueId,
cont: ValueId,
loop_control: LoopControl,
},
SelectionMerge {
merge: ValueId,
selection_control: SelectionControl,
},
Label {
result_id: ResultId,
},
Branch {
target: ValueId,
},
BranchConditional {
cond: ValueId,
then: ValueId,
els: ValueId,
true_weight: Option<u32>,
false_weight: Option<u32>,
},
Switch {
selector: ValueId,
default: ValueId,
targets: Box<[u32]>,
},
Kill,
Return,
ReturnValue {
value_id: ValueId,
},
Unreachable,
LifetimeStart {
ptr: ValueId,
size: u32,
},
LifetimeStop {
ptr: ValueId,
size: u32,
},
AtomicLoad {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
},
AtomicStore {
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicExchange {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicCompareExchange {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
eq_semantics: ValueId,
not_eq_semantics: ValueId,
value_id: ValueId,
comparator: ValueId,
},
AtomicCompareExchangeWeak {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
eq_semantics: ValueId,
not_eq_semantics: ValueId,
value_id: ValueId,
comparator: ValueId,
},
AtomicIIncrement {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
},
AtomicIDecrement {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
},
AtomicIAdd {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicISub {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicSMin {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicUMin {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicSMax {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicUMax {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicAnd {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicOr {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicXor {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
value_id: ValueId,
},
AtomicFlagTestAndSet {
result_type: TypeId,
result_id: ResultId,
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
},
AtomicFlagClear {
ptr: ValueId,
scope: ValueId,
semantics: ValueId,
},
EmitVertex,
EndPrimitive,
EmitStreamVertex {
stream: ValueId,
},
EndStreamPrimitive {
stream: ValueId,
},
ControlBarrier {
execution: ValueId,
memory: ValueId,
semantics: ValueId,
},
MemoryBarrier {
memory: ValueId,
semantics: ValueId,
},
GroupAsyncCopy {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
dest: ValueId,
src: ValueId,
num_elements: ValueId,
stride: ValueId,
event: ValueId,
},
GroupWaitEvents {
execution: ValueId,
num_events: ValueId,
events: ValueId,
},
GroupAll {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
predicate: ValueId,
},
GroupAny {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
predicate: ValueId,
},
GroupBroadcast {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
value: ValueId,
local_id: ValueId,
},
GroupIAdd {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupFAdd {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupFMin {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupUMin {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupSMin {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupFMax {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupUMax {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
GroupSMax {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
group_operation: GroupOperation,
x: ValueId,
},
EnqueueMarker {
result_type: TypeId,
result_id: ResultId,
queue: ValueId,
num_events: ValueId,
wait_events: ValueId,
ret_event: ValueId,
},
EnqueueKernel {
result_type: TypeId,
result_id: ResultId,
queue: ValueId,
flags: ValueId,
range: ValueId,
num_events: ValueId,
wait_event: ValueId,
ret_event: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
local_size: Box<[ValueId]>,
},
GetKernelNDrangeSubGroupCount {
result_type: TypeId,
result_id: ResultId,
range: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelNDrangeMaxSubGroupSize {
result_type: TypeId,
result_id: ResultId,
range: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelWorkGroupSize {
result_type: TypeId,
result_id: ResultId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelPreferredWorkGroupSizeMultiple {
result_type: TypeId,
result_id: ResultId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
RetainEvent {
event: ValueId,
},
ReleaseEvent {
event: ValueId,
},
CreateUserEvent {
result_type: TypeId,
result_id: ResultId,
},
IsValidEvent {
result_type: TypeId,
result_id: ResultId,
event: ValueId,
},
SetUserEventStatus {
event: ValueId,
status: ValueId,
},
CaptureEventProfilingInfo {
event: ValueId,
profiling_info: ValueId,
value: ValueId,
},
GetDefaultQueue {
result_type: TypeId,
result_id: ResultId,
},
BuildNDRange {
result_type: TypeId,
result_id: ResultId,
global_work_size: ValueId,
local_work_size: ValueId,
global_work_offset: ValueId,
},
ReadPipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
WritePipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReservedReadPipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
reserve_id: ValueId,
index: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReservedWritePipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
reserve_id: ValueId,
index: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReserveReadPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReserveWritePipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
CommitReadPipe {
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
CommitWritePipe {
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
IsValidReserveId {
result_type: TypeId,
result_id: ResultId,
reserve_id: ValueId,
},
GetNumPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GetMaxPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupReserveReadPipePackets {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupReserveWritePipePackets {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupCommitReadPipe {
execution: ValueId,
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupCommitWritePipe {
execution: ValueId,
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
Unknown(u16, Box<[u32]>),
}Variants
NopUndefFields
SourceContinuedFields
SourceFields
SourceExtensionFields
NameFields
MemberNameFields
StringFields
LineFields
NoLineDecorateFields
MemberDecorateFields
DecorationGroupFields
GroupDecorateFields
GroupMemberDecorateFields
ExtensionFields
ExtInstImportFields
ExtInstFields
MemoryModelFields
EntryPointFields
ExecutionModeFields
CapabilityFields
TypeVoidFields
TypeBoolFields
TypeIntFields
TypeFloatFields
TypeVectorFields
TypeMatrixFields
TypeImageFields
TypeSamplerFields
TypeSampledImageFields
TypeArrayFields
TypeRuntimeArrayFields
TypeStructFields
TypeOpaqueFields
TypePointerFields
TypeFunctionFields
TypeEventFields
TypeDeviceEventFields
TypeReserveIdFields
TypeQueueFields
TypePipeFields
TypeForwardPointerFields
ConstantTrueFields
ConstantFalseFields
ConstantFields
ConstantCompositeFields
ConstantSamplerFields
ConstantNullFields
SpecConstantTrueFields
SpecConstantFalseFields
SpecConstantFields
SpecConstantCompositeFields
SpecConstantOpFields
VariableFields
ImageTexelPointerFields
LoadFields
StoreFields
CopyMemoryFields
CopyMemorySizedFields
AccessChainFields
InBoundsAccessChainFields
PtrAccessChainFields
ArrayLengthFields
GenericPtrMemSemanticsFields
InBoundsPtrAccessChainFields
FunctionFields
FunctionParameterFields
FunctionEndFunctionCallFields
SampledImageFields
ImageSampleImplicitLodFields
ImageSampleExplicitLodFields
ImageSampleDrefImplicitLodFields
ImageSampleDrefExplicitLodFields
ImageSampleProjImplicitLodFields
ImageSampleProjExplicitLodFields
ImageSampleProjDrefImplicitLodFields
ImageSampleProjDrefExplicitLodFields
ImageFetchFields
ImageGatherFields
ImageDrefGatherFields
ImageReadFields
ImageWriteFields
ImageFields
ImageQueryFormatFields
ImageQueryOrderFields
ImageQuerySizeLodFields
ImageQuerySizeFields
ImageQueryLodFields
ImageQueryLevelsFields
ImageQuerySamplesFields
ImageSparseSampleImplicitLodFields
ImageSparseSampleExplicitLodFields
ImageSparseSampleDrefImplicitLodFields
ImageSparseSampleDrefExplicitLodFields
ImageSparseFetchFields
ImageSparseGatherFields
ImageSparseDrefGatherFields
ImageSparseTexelsResidentFields
ImageSparseReadFields
ConvertFToUFields
ConvertFToSFields
ConvertSToFFields
ConvertUToFFields
UConvertFields
SConvertFields
FConvertFields
QuantizeToF16Fields
ConvertPtrToUFields
SatConvertSToUFields
SatConvertUToSFields
ConvertUToPtrFields
PtrCastToGenericFields
GenericCastToPtrFields
GenericCastToPtrExplicitFields
BitcastFields
Fields
VectorInsertDynamicFields
VectorShuffleFields
CompositeConstructFields
Fields
CompositeInsertFields
CopyObjectFields
TransposeFields
SNegateFields
FNegateFields
IAddFields
FAddFields
ISubFields
FSubFields
IMulFields
FMulFields
UDivFields
SDivFields
FDivFields
UModFields
SRemFields
SModFields
FRemFields
FModFields
VectorTimesScalarFields
MatrixTimesScalarFields
VectorTimesMatrixFields
MatrixTimesVectorFields
MatrixTimesMatrixFields
OuterProductFields
DotFields
IAddCarryFields
ISubBorrowFields
UMulExtendedFields
SMulExtendedFields
ShiftRightLogicalFields
ShiftRightArithmeticFields
ShiftLeftLogicalFields
BitwiseOrFields
BitwiseXorFields
BitwiseAndFields
NotFields
BitFieldInsertFields
Fields
Fields
BitReverseFields
BitCountFields
AnyFields
AllFields
IsNanFields
IsInfFields
IsFiniteFields
IsNormalFields
SignBitSetFields
LessOrGreaterFields
OrderedFields
UnorderedFields
LogicalEqualFields
LogicalNotEqualFields
LogicalOrFields
LogicalAndFields
LogicalNotFields
SelectFields
IEqualFields
INotEqualFields
UGreaterThanFields
SGreaterThanFields
UGreaterThanEqualFields
SGreaterThanEqualFields
ULessThanFields
SLessThanFields
ULessThanEqualFields
SLessThanEqualFields
FOrdEqualFields
FUnordEqualFields
FOrdNotEqualFields
FUnordNotEqualFields
FOrdLessThanFields
FUnordLessThanFields
FOrdGreaterThanFields
FUnordGreaterThanFields
FOrdLessThanEqualFields
FUnordLessThanEqualFields
FOrdGreaterThanEqualFields
FUnordGreaterThanEqualFields
DPdxFields
DPdyFields
FwidthFields
DPdxFineFields
DPdyFineFields
FwidthFineFields
DPdxCoarseFields
DPdyCoarseFields
FwidthCoarseFields
PhiFields
LoopMergeFields
SelectionMergeFields
LabelFields
BranchFields
BranchConditionalFields
SwitchFields
KillReturnReturnValueFields
UnreachableLifetimeStartFields
LifetimeStopFields
AtomicLoadFields
AtomicStoreFields
AtomicExchangeFields
AtomicCompareExchangeFields
AtomicCompareExchangeWeakFields
AtomicIIncrementFields
AtomicIDecrementFields
AtomicIAddFields
AtomicISubFields
AtomicSMinFields
AtomicUMinFields
AtomicSMaxFields
AtomicUMaxFields
AtomicAndFields
AtomicOrFields
AtomicXorFields
AtomicFlagTestAndSetFields
AtomicFlagClearFields
EmitVertexEndPrimitiveEmitStreamVertexFields
EndStreamPrimitiveFields
ControlBarrierFields
MemoryBarrierFields
GroupAsyncCopyFields
GroupWaitEventsFields
GroupAllFields
GroupAnyFields
GroupBroadcastFields
GroupIAddFields
GroupFAddFields
GroupFMinFields
GroupUMinFields
GroupSMinFields
GroupFMaxFields
GroupUMaxFields
GroupSMaxFields
EnqueueMarkerFields
EnqueueKernelFields
GetKernelNDrangeSubGroupCountFields
GetKernelNDrangeMaxSubGroupSizeFields
GetKernelWorkGroupSizeFields
GetKernelPreferredWorkGroupSizeMultipleFields
RetainEventFields
ReleaseEventFields
CreateUserEventFields
IsValidEventFields
SetUserEventStatusFields
CaptureEventProfilingInfoFields
GetDefaultQueueFields
BuildNDRangeFields
ReadPipeFields
WritePipeFields
ReservedReadPipeFields
ReservedWritePipeFields
ReserveReadPipePacketsFields
ReserveWritePipePacketsFields
CommitReadPipeFields
CommitWritePipeFields
IsValidReserveIdFields
GetNumPipePacketsFields
GetMaxPipePacketsFields
GroupReserveReadPipePacketsFields
GroupReserveWritePipePacketsFields
GroupCommitReadPipeFields
GroupCommitWritePipeFields
Unknown(u16, Box<[u32]>)Methods
Trait Implementations
Formats the value using the given formatter.