pub enum Instruction {
Show 291 variants
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 {Show 13 fields
result_type: TypeId,
result_id: ResultId,
queue: ValueId,
flags: ValueId,
range: ValueId,
num_events: ValueId,
wait_event: ValueId,
ret_event: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
local_size: Box<[ValueId]>,
},
GetKernelNDrangeSubGroupCount {
result_type: TypeId,
result_id: ResultId,
range: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelNDrangeMaxSubGroupSize {
result_type: TypeId,
result_id: ResultId,
range: ValueId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelWorkGroupSize {
result_type: TypeId,
result_id: ResultId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
GetKernelPreferredWorkGroupSizeMultiple {
result_type: TypeId,
result_id: ResultId,
invoke: ValueId,
param: ValueId,
param_size: ValueId,
param_align: ValueId,
},
RetainEvent {
event: ValueId,
},
ReleaseEvent {
event: ValueId,
},
CreateUserEvent {
result_type: TypeId,
result_id: ResultId,
},
IsValidEvent {
result_type: TypeId,
result_id: ResultId,
event: ValueId,
},
SetUserEventStatus {
event: ValueId,
status: ValueId,
},
CaptureEventProfilingInfo {
event: ValueId,
profiling_info: ValueId,
value: ValueId,
},
GetDefaultQueue {
result_type: TypeId,
result_id: ResultId,
},
BuildNDRange {
result_type: TypeId,
result_id: ResultId,
global_work_size: ValueId,
local_work_size: ValueId,
global_work_offset: ValueId,
},
ReadPipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
WritePipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReservedReadPipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
reserve_id: ValueId,
index: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReservedWritePipe {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
reserve_id: ValueId,
index: ValueId,
ptr: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReserveReadPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
ReserveWritePipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
CommitReadPipe {
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
CommitWritePipe {
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
IsValidReserveId {
result_type: TypeId,
result_id: ResultId,
reserve_id: ValueId,
},
GetNumPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GetMaxPipePackets {
result_type: TypeId,
result_id: ResultId,
pipe: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupReserveReadPipePackets {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupReserveWritePipePackets {
result_type: TypeId,
result_id: ResultId,
execution: ValueId,
pipe: ValueId,
num_packets: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupCommitReadPipe {
execution: ValueId,
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
GroupCommitWritePipe {
execution: ValueId,
pipe: ValueId,
reserve_id: ValueId,
packet_size: ValueId,
packet_alignment: ValueId,
},
Unknown(u16, Box<[u32]>),
}
Variants§
Nop
Undef
SourceContinued
Source
SourceExtension
Name
MemberName
String
Line
NoLine
Decorate
MemberDecorate
DecorationGroup
GroupDecorate
GroupMemberDecorate
Extension
ExtInstImport
ExtInst
MemoryModel
EntryPoint
ExecutionMode
Fields
§
execution_mode: ExecutionMode
Capability
Fields
§
capability: Capability
TypeVoid
TypeBool
TypeInt
TypeFloat
TypeVector
TypeMatrix
TypeImage
TypeSampler
TypeSampledImage
TypeArray
TypeRuntimeArray
TypeStruct
TypeOpaque
TypePointer
TypeFunction
TypeEvent
TypeDeviceEvent
TypeReserveId
TypeQueue
TypePipe
TypeForwardPointer
ConstantTrue
ConstantFalse
Constant
ConstantComposite
ConstantSampler
ConstantNull
SpecConstantTrue
SpecConstantFalse
SpecConstant
SpecConstantComposite
SpecConstantOp
Variable
ImageTexelPointer
Load
Store
CopyMemory
CopyMemorySized
AccessChain
InBoundsAccessChain
PtrAccessChain
Fields
ArrayLength
GenericPtrMemSemantics
InBoundsPtrAccessChain
Fields
Function
FunctionParameter
FunctionEnd
FunctionCall
SampledImage
ImageSampleImplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleExplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleDrefImplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleDrefExplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleProjImplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleProjExplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleProjDrefImplicitLod
Fields
§
image_operands: ImageOperands
ImageSampleProjDrefExplicitLod
Fields
§
image_operands: ImageOperands
ImageFetch
Fields
§
image_operands: ImageOperands
ImageGather
Fields
§
image_operands: ImageOperands
ImageDrefGather
Fields
§
image_operands: ImageOperands
ImageRead
Fields
§
image_operands: ImageOperands
ImageWrite
Image
ImageQueryFormat
ImageQueryOrder
ImageQuerySizeLod
ImageQuerySize
ImageQueryLod
ImageQueryLevels
ImageQuerySamples
ImageSparseSampleImplicitLod
Fields
§
image_operands: ImageOperands
ImageSparseSampleExplicitLod
Fields
§
image_operands: ImageOperands
ImageSparseSampleDrefImplicitLod
Fields
§
image_operands: ImageOperands
ImageSparseSampleDrefExplicitLod
Fields
§
image_operands: ImageOperands
ImageSparseFetch
Fields
§
image_operands: ImageOperands
ImageSparseGather
Fields
§
image_operands: ImageOperands
ImageSparseDrefGather
Fields
§
image_operands: ImageOperands
ImageSparseTexelsResident
ImageSparseRead
Fields
§
image_operands: ImageOperands
ConvertFToU
ConvertFToS
ConvertSToF
ConvertUToF
UConvert
SConvert
FConvert
QuantizeToF16
ConvertPtrToU
SatConvertSToU
SatConvertUToS
ConvertUToPtr
PtrCastToGeneric
GenericCastToPtr
GenericCastToPtrExplicit
Bitcast
VectorExtractDynamic
VectorInsertDynamic
VectorShuffle
Fields
CompositeConstruct
CompositeExtract
CompositeInsert
CopyObject
Transpose
SNegate
FNegate
IAdd
FAdd
ISub
FSub
IMul
FMul
UDiv
SDiv
FDiv
UMod
SRem
SMod
FRem
FMod
VectorTimesScalar
MatrixTimesScalar
VectorTimesMatrix
MatrixTimesVector
MatrixTimesMatrix
OuterProduct
Dot
IAddCarry
ISubBorrow
UMulExtended
SMulExtended
ShiftRightLogical
ShiftRightArithmetic
ShiftLeftLogical
BitwiseOr
BitwiseXor
BitwiseAnd
Not
BitFieldInsert
Fields
BitFieldSExtract
BitFieldUExtract
BitReverse
BitCount
Any
All
IsNan
IsInf
IsFinite
IsNormal
SignBitSet
LessOrGreater
Ordered
Unordered
LogicalEqual
LogicalNotEqual
LogicalOr
LogicalAnd
LogicalNot
Select
IEqual
INotEqual
UGreaterThan
SGreaterThan
UGreaterThanEqual
SGreaterThanEqual
ULessThan
SLessThan
ULessThanEqual
SLessThanEqual
FOrdEqual
FUnordEqual
FOrdNotEqual
FUnordNotEqual
FOrdLessThan
FUnordLessThan
FOrdGreaterThan
FUnordGreaterThan
FOrdLessThanEqual
FUnordLessThanEqual
FOrdGreaterThanEqual
FUnordGreaterThanEqual
DPdx
DPdy
Fwidth
DPdxFine
DPdyFine
FwidthFine
DPdxCoarse
DPdyCoarse
FwidthCoarse
Phi
LoopMerge
SelectionMerge
Label
Branch
BranchConditional
Switch
Kill
Return
ReturnValue
Unreachable
LifetimeStart
LifetimeStop
AtomicLoad
AtomicStore
AtomicExchange
Fields
AtomicCompareExchange
Fields
AtomicCompareExchangeWeak
Fields
AtomicIIncrement
AtomicIDecrement
AtomicIAdd
Fields
AtomicISub
Fields
AtomicSMin
Fields
AtomicUMin
Fields
AtomicSMax
Fields
AtomicUMax
Fields
AtomicAnd
Fields
AtomicOr
Fields
AtomicXor
Fields
AtomicFlagTestAndSet
AtomicFlagClear
EmitVertex
EndPrimitive
EmitStreamVertex
EndStreamPrimitive
ControlBarrier
MemoryBarrier
GroupAsyncCopy
Fields
GroupWaitEvents
GroupAll
GroupAny
GroupBroadcast
GroupIAdd
Fields
§
group_operation: GroupOperation
GroupFAdd
Fields
§
group_operation: GroupOperation
GroupFMin
Fields
§
group_operation: GroupOperation
GroupUMin
Fields
§
group_operation: GroupOperation
GroupSMin
Fields
§
group_operation: GroupOperation
GroupFMax
Fields
§
group_operation: GroupOperation
GroupUMax
Fields
§
group_operation: GroupOperation
GroupSMax
Fields
§
group_operation: GroupOperation
EnqueueMarker
Fields
EnqueueKernel
Fields
GetKernelNDrangeSubGroupCount
Fields
GetKernelNDrangeMaxSubGroupSize
Fields
GetKernelWorkGroupSize
Fields
GetKernelPreferredWorkGroupSizeMultiple
Fields
RetainEvent
ReleaseEvent
CreateUserEvent
IsValidEvent
SetUserEventStatus
CaptureEventProfilingInfo
GetDefaultQueue
BuildNDRange
Fields
ReadPipe
Fields
WritePipe
Fields
ReservedReadPipe
Fields
ReservedWritePipe
Fields
ReserveReadPipePackets
Fields
ReserveWritePipePackets
Fields
CommitReadPipe
CommitWritePipe
IsValidReserveId
GetNumPipePackets
Fields
GetMaxPipePackets
Fields
GroupReserveReadPipePackets
Fields
GroupReserveWritePipePackets
Fields
GroupCommitReadPipe
Fields
GroupCommitWritePipe
Fields
Unknown(u16, Box<[u32]>)
Implementations§
Source§impl Instruction
impl Instruction
Source§impl Instruction
impl Instruction
pub fn defines_value(&self) -> Option<ValueId>
Trait Implementations§
Source§impl Clone for Instruction
impl Clone for Instruction
Source§fn clone(&self) -> Instruction
fn clone(&self) -> Instruction
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for Instruction
impl RefUnwindSafe for Instruction
impl Send for Instruction
impl Sync for Instruction
impl Unpin for Instruction
impl UnwindSafe for Instruction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)