blob: 05784973d001784092821aaee6ff5b45d0068c14 [file] [log] [blame] [edit]
{
"copyright" : [
"Copyright (c) 2014-2020 The Khronos Group Inc.",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and/or associated documentation files (the \"Materials\"),",
"to deal in the Materials without restriction, including without limitation",
"the rights to use, copy, modify, merge, publish, distribute, sublicense,",
"and/or sell copies of the Materials, and to permit persons to whom the",
"Materials are furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in",
"all copies or substantial portions of the Materials.",
"",
"MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
"STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
"HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
"",
"THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
"OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
"THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
"FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
"IN THE MATERIALS."
],
"magic_number" : "0x07230203",
"major_version" : 1,
"minor_version" : 5,
"revision" : 4,
"instruction_printing_class" : [
{
"tag" : "@exclude"
},
{
"tag" : "Miscellaneous",
"heading" : "Miscellaneous Instructions"
},
{
"tag" : "Debug",
"heading" : "Debug Instructions"
},
{
"tag" : "Annotation",
"heading" : "Annotation Instructions"
},
{
"tag" : "Extension",
"heading" : "Extension Instructions"
},
{
"tag" : "Mode-Setting",
"heading" : "Mode-Setting Instructions"
},
{
"tag" : "Type-Declaration",
"heading" : "Type-Declaration Instructions"
},
{
"tag" : "Constant-Creation",
"heading" : "Constant-Creation Instructions"
},
{
"tag" : "Memory",
"heading" : "Memory Instructions"
},
{
"tag" : "Function",
"heading" : "Function Instructions"
},
{
"tag" : "Image",
"heading" : "Image Instructions"
},
{
"tag" : "Conversion",
"heading" : "Conversion Instructions"
},
{
"tag" : "Composite",
"heading" : "Composite Instructions"
},
{
"tag" : "Arithmetic",
"heading" : "Arithmetic Instructions"
},
{
"tag" : "Bit",
"heading" : "Bit Instructions"
},
{
"tag" : "Relational_and_Logical",
"heading" : "Relational and Logical Instructions"
},
{
"tag" : "Derivative",
"heading" : "Derivative Instructions"
},
{
"tag" : "Control-Flow",
"heading" : "Control-Flow Instructions"
},
{
"tag" : "Atomic",
"heading" : "Atomic Instructions"
},
{
"tag" : "Primitive",
"heading" : "Primitive Instructions"
},
{
"tag" : "Barrier",
"heading" : "Barrier Instructions"
},
{
"tag" : "Group",
"heading" : "Group and Subgroup Instructions"
},
{
"tag" : "Device-Side_Enqueue",
"heading" : "Device-Side Enqueue Instructions"
},
{
"tag" : "Pipe",
"heading" : "Pipe Instructions"
},
{
"tag" : "Non-Uniform",
"heading" : "Non-Uniform Instructions"
},
{
"tag" : "Reserved",
"heading" : "Reserved Instructions"
}
],
"instructions" : [
{
"opname" : "OpNop",
"class" : "Miscellaneous",
"opcode" : 0
},
{
"opname" : "OpUndef",
"class" : "Miscellaneous",
"opcode" : 1,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpSourceContinued",
"class" : "Debug",
"opcode" : 2,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Continued Source'" }
]
},
{
"opname" : "OpSource",
"class" : "Debug",
"opcode" : 3,
"operands" : [
{ "kind" : "SourceLanguage" },
{ "kind" : "LiteralInteger", "name" : "'Version'" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'File'" },
{ "kind" : "LiteralString", "quantifier" : "?", "name" : "'Source'" }
]
},
{
"opname" : "OpSourceExtension",
"class" : "Debug",
"opcode" : 4,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Extension'" }
]
},
{
"opname" : "OpName",
"class" : "Debug",
"opcode" : 5,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "LiteralString", "name" : "'Name'" }
]
},
{
"opname" : "OpMemberName",
"class" : "Debug",
"opcode" : 6,
"operands" : [
{ "kind" : "IdRef", "name" : "'Type'" },
{ "kind" : "LiteralInteger", "name" : "'Member'" },
{ "kind" : "LiteralString", "name" : "'Name'" }
]
},
{
"opname" : "OpString",
"class" : "Debug",
"opcode" : 7,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "'String'" }
]
},
{
"opname" : "OpLine",
"class" : "Debug",
"opcode" : 8,
"operands" : [
{ "kind" : "IdRef", "name" : "'File'" },
{ "kind" : "LiteralInteger", "name" : "'Line'" },
{ "kind" : "LiteralInteger", "name" : "'Column'" }
]
},
{
"opname" : "OpExtension",
"class" : "Extension",
"opcode" : 10,
"operands" : [
{ "kind" : "LiteralString", "name" : "'Name'" }
]
},
{
"opname" : "OpExtInstImport",
"class" : "Extension",
"opcode" : 11,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "'Name'" }
]
},
{
"opname" : "OpExtInst",
"class" : "Extension",
"opcode" : 12,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Set'" },
{ "kind" : "LiteralExtInstInteger", "name" : "'Instruction'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
]
},
{
"opname" : "OpMemoryModel",
"class" : "Mode-Setting",
"opcode" : 14,
"operands" : [
{ "kind" : "AddressingModel" },
{ "kind" : "MemoryModel" }
]
},
{
"opname" : "OpEntryPoint",
"class" : "Mode-Setting",
"opcode" : 15,
"operands" : [
{ "kind" : "ExecutionModel" },
{ "kind" : "IdRef", "name" : "'Entry Point'" },
{ "kind" : "LiteralString", "name" : "'Name'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Interface'" }
]
},
{
"opname" : "OpExecutionMode",
"class" : "Mode-Setting",
"opcode" : 16,
"operands" : [
{ "kind" : "IdRef", "name" : "'Entry Point'" },
{ "kind" : "ExecutionMode", "name" : "'Mode'" }
]
},
{
"opname" : "OpCapability",
"class" : "Mode-Setting",
"opcode" : 17,
"operands" : [
{ "kind" : "Capability", "name" : "'Capability'" }
]
},
{
"opname" : "OpTypeVoid",
"class" : "Type-Declaration",
"opcode" : 19,
"operands" : [
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpTypeBool",
"class" : "Type-Declaration",
"opcode" : 20,
"operands" : [
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpTypeInt",
"class" : "Type-Declaration",
"opcode" : 21,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralInteger", "name" : "'Width'" },
{ "kind" : "LiteralInteger", "name" : "'Signedness'" }
]
},
{
"opname" : "OpTypeFloat",
"class" : "Type-Declaration",
"opcode" : 22,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralInteger", "name" : "'Width'" }
]
},
{
"opname" : "OpTypeVector",
"class" : "Type-Declaration",
"opcode" : 23,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Component Type'" },
{ "kind" : "LiteralInteger", "name" : "'Component Count'" }
]
},
{
"opname" : "OpTypeMatrix",
"class" : "Type-Declaration",
"opcode" : 24,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Column Type'" },
{ "kind" : "LiteralInteger", "name" : "'Column Count'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpTypeImage",
"class" : "Type-Declaration",
"opcode" : 25,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Type'" },
{ "kind" : "Dim" },
{ "kind" : "LiteralInteger", "name" : "'Depth'" },
{ "kind" : "LiteralInteger", "name" : "'Arrayed'" },
{ "kind" : "LiteralInteger", "name" : "'MS'" },
{ "kind" : "LiteralInteger", "name" : "'Sampled'" },
{ "kind" : "ImageFormat" },
{ "kind" : "AccessQualifier", "quantifier" : "?" }
]
},
{
"opname" : "OpTypeSampler",
"class" : "Type-Declaration",
"opcode" : 26,
"operands" : [
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpTypeSampledImage",
"class" : "Type-Declaration",
"opcode" : 27,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image Type'" }
]
},
{
"opname" : "OpTypeArray",
"class" : "Type-Declaration",
"opcode" : 28,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Element Type'" },
{ "kind" : "IdRef", "name" : "'Length'" }
]
},
{
"opname" : "OpTypeRuntimeArray",
"class" : "Type-Declaration",
"opcode" : 29,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Element Type'" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpTypeStruct",
"class" : "Type-Declaration",
"opcode" : 30,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
]
},
{
"opname" : "OpTypeOpaque",
"class" : "Type-Declaration",
"opcode" : 31,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "LiteralString", "name" : "The name of the opaque type." }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpTypePointer",
"class" : "Type-Declaration",
"opcode" : 32,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "StorageClass" },
{ "kind" : "IdRef", "name" : "'Type'" }
]
},
{
"opname" : "OpTypeFunction",
"class" : "Type-Declaration",
"opcode" : 33,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Return Type'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
]
},
{
"opname" : "OpTypeEvent",
"class" : "Type-Declaration",
"opcode" : 34,
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpTypeDeviceEvent",
"class" : "Type-Declaration",
"opcode" : 35,
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "DeviceEnqueue" ]
},
{
"opname" : "OpTypeReserveId",
"class" : "Type-Declaration",
"opcode" : 36,
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "Pipes" ]
},
{
"opname" : "OpTypeQueue",
"class" : "Type-Declaration",
"opcode" : 37,
"operands" : [
{ "kind" : "IdResult" }
],
"capabilities" : [ "DeviceEnqueue" ]
},
{
"opname" : "OpTypePipe",
"class" : "Type-Declaration",
"opcode" : 38,
"operands" : [
{ "kind" : "IdResult" },
{ "kind" : "AccessQualifier", "name" : "'Qualifier'" }
],
"capabilities" : [ "Pipes" ]
},
{
"opname" : "OpTypeForwardPointer",
"class" : "Type-Declaration",
"opcode" : 39,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer Type'" },
{ "kind" : "StorageClass" }
],
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
]
},
{
"opname" : "OpConstantTrue",
"class" : "Constant-Creation",
"opcode" : 41,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpConstantFalse",
"class" : "Constant-Creation",
"opcode" : 42,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpConstant",
"class" : "Constant-Creation",
"opcode" : 43,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
]
},
{
"opname" : "OpConstantComposite",
"class" : "Constant-Creation",
"opcode" : 44,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
]
},
{
"opname" : "OpConstantSampler",
"class" : "Constant-Creation",
"opcode" : 45,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "SamplerAddressingMode" },
{ "kind" : "LiteralInteger", "name" : "'Param'" },
{ "kind" : "SamplerFilterMode" }
],
"capabilities" : [ "LiteralSampler" ]
},
{
"opname" : "OpConstantNull",
"class" : "Constant-Creation",
"opcode" : 46,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpSpecConstantTrue",
"class" : "Constant-Creation",
"opcode" : 48,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpSpecConstantFalse",
"class" : "Constant-Creation",
"opcode" : 49,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpSpecConstant",
"class" : "Constant-Creation",
"opcode" : 50,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
]
},
{
"opname" : "OpSpecConstantComposite",
"class" : "Constant-Creation",
"opcode" : 51,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
]
},
{
"opname" : "OpSpecConstantOp",
"class" : "Constant-Creation",
"opcode" : 52,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
]
},
{
"opname" : "OpFunction",
"class" : "Function",
"opcode" : 54,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "FunctionControl" },
{ "kind" : "IdRef", "name" : "'Function Type'" }
]
},
{
"opname" : "OpFunctionParameter",
"class" : "Function",
"opcode" : 55,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpFunctionEnd",
"class" : "Function",
"opcode" : 56
},
{
"opname" : "OpFunctionCall",
"class" : "Function",
"opcode" : 57,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Function'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
]
},
{
"opname" : "OpVariable",
"class" : "Memory",
"opcode" : 59,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "StorageClass" },
{ "kind" : "IdRef", "quantifier" : "?", "name" : "'Initializer'" }
]
},
{
"opname" : "OpImageTexelPointer",
"class" : "Memory",
"opcode" : 60,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'Sample'" }
]
},
{
"opname" : "OpLoad",
"class" : "Memory",
"opcode" : 61,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
]
},
{
"opname" : "OpStore",
"class" : "Memory",
"opcode" : 62,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdRef", "name" : "'Object'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
]
},
{
"opname" : "OpCopyMemory",
"class" : "Memory",
"opcode" : 63,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "IdRef", "name" : "'Source'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
]
},
{
"opname" : "OpCopyMemorySized",
"class" : "Memory",
"opcode" : 64,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "IdRef", "name" : "'Source'" },
{ "kind" : "IdRef", "name" : "'Size'" },
{ "kind" : "MemoryAccess", "quantifier" : "?" },
{ "kind" : "MemoryAccess", "quantifier" : "?" }
],
"capabilities" : [ "Addresses" ]
},
{
"opname" : "OpAccessChain",
"class" : "Memory",
"opcode" : 65,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
]
},
{
"opname" : "OpInBoundsAccessChain",
"class" : "Memory",
"opcode" : 66,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
]
},
{
"opname" : "OpPtrAccessChain",
"class" : "Memory",
"opcode" : 67,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Element'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
],
"capabilities" : [
"Addresses",
"VariablePointers",
"VariablePointersStorageBuffer",
"PhysicalStorageBufferAddresses"
]
},
{
"opname" : "OpArrayLength",
"class" : "Memory",
"opcode" : 68,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Structure'" },
{ "kind" : "LiteralInteger", "name" : "'Array member'" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpGenericPtrMemSemantics",
"class" : "Memory",
"opcode" : 69,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpInBoundsPtrAccessChain",
"class" : "Memory",
"opcode" : 70,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Element'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Indexes'" }
],
"capabilities" : [ "Addresses" ]
},
{
"opname" : "OpDecorate",
"class" : "Annotation",
"opcode" : 71,
"operands" : [
{ "kind" : "IdRef", "name" : "'Target'" },
{ "kind" : "Decoration" }
]
},
{
"opname" : "OpMemberDecorate",
"class" : "Annotation",
"opcode" : 72,
"operands" : [
{ "kind" : "IdRef", "name" : "'Structure Type'" },
{ "kind" : "LiteralInteger", "name" : "'Member'" },
{ "kind" : "Decoration" }
]
},
{
"opname" : "OpDecorationGroup",
"class" : "Annotation",
"opcode" : 73,
"operands" : [
{ "kind" : "IdResult" }
]
},
{
"opname" : "OpGroupDecorate",
"class" : "Annotation",
"opcode" : 74,
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
]
},
{
"opname" : "OpGroupMemberDecorate",
"class" : "Annotation",
"opcode" : 75,
"operands" : [
{ "kind" : "IdRef", "name" : "'Decoration Group'" },
{ "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
]
},
{
"opname" : "OpVectorExtractDynamic",
"class" : "Composite",
"opcode" : 77,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Index'" }
]
},
{
"opname" : "OpVectorInsertDynamic",
"class" : "Composite",
"opcode" : 78,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Component'" },
{ "kind" : "IdRef", "name" : "'Index'" }
]
},
{
"opname" : "OpVectorShuffle",
"class" : "Composite",
"opcode" : 79,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
]
},
{
"opname" : "OpCompositeConstruct",
"class" : "Composite",
"opcode" : 80,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "quantifier" : "*", "name" : "'Constituents'" }
]
},
{
"opname" : "OpCompositeExtract",
"class" : "Composite",
"opcode" : 81,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Composite'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
]
},
{
"opname" : "OpCompositeInsert",
"class" : "Composite",
"opcode" : 82,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Object'" },
{ "kind" : "IdRef", "name" : "'Composite'" },
{ "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
]
},
{
"opname" : "OpCopyObject",
"class" : "Composite",
"opcode" : 83,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpTranspose",
"class" : "Composite",
"opcode" : 84,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Matrix'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpSampledImage",
"class" : "Image",
"opcode" : 86,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Sampler'" }
]
},
{
"opname" : "OpImageSampleImplicitLod",
"class" : "Image",
"opcode" : 87,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleExplicitLod",
"class" : "Image",
"opcode" : 88,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands" }
]
},
{
"opname" : "OpImageSampleDrefImplicitLod",
"class" : "Image",
"opcode" : 89,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleDrefExplicitLod",
"class" : "Image",
"opcode" : 90,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleProjImplicitLod",
"class" : "Image",
"opcode" : 91,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleProjExplicitLod",
"class" : "Image",
"opcode" : 92,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleProjDrefImplicitLod",
"class" : "Image",
"opcode" : 93,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageSampleProjDrefExplicitLod",
"class" : "Image",
"opcode" : 94,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageFetch",
"class" : "Image",
"opcode" : 95,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
]
},
{
"opname" : "OpImageGather",
"class" : "Image",
"opcode" : 96,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'Component'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageDrefGather",
"class" : "Image",
"opcode" : 97,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'D~ref~'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpImageRead",
"class" : "Image",
"opcode" : 98,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
]
},
{
"opname" : "OpImageWrite",
"class" : "Image",
"opcode" : 99,
"operands" : [
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" },
{ "kind" : "IdRef", "name" : "'Texel'" },
{ "kind" : "ImageOperands", "quantifier" : "?" }
]
},
{
"opname" : "OpImage",
"class" : "Image",
"opcode" : 100,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" }
]
},
{
"opname" : "OpImageQueryFormat",
"class" : "Image",
"opcode" : 101,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpImageQueryOrder",
"class" : "Image",
"opcode" : 102,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpImageQuerySizeLod",
"class" : "Image",
"opcode" : 103,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" },
{ "kind" : "IdRef", "name" : "'Level of Detail'" }
],
"capabilities" : [ "Kernel", "ImageQuery" ]
},
{
"opname" : "OpImageQuerySize",
"class" : "Image",
"opcode" : 104,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
"capabilities" : [ "Kernel", "ImageQuery" ]
},
{
"opname" : "OpImageQueryLod",
"class" : "Image",
"opcode" : 105,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Sampled Image'" },
{ "kind" : "IdRef", "name" : "'Coordinate'" }
],
"capabilities" : [ "ImageQuery" ]
},
{
"opname" : "OpImageQueryLevels",
"class" : "Image",
"opcode" : 106,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
"capabilities" : [ "Kernel", "ImageQuery" ]
},
{
"opname" : "OpImageQuerySamples",
"class" : "Image",
"opcode" : 107,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Image'" }
],
"capabilities" : [ "Kernel", "ImageQuery" ]
},
{
"opname" : "OpConvertFToU",
"class" : "Conversion",
"opcode" : 109,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
]
},
{
"opname" : "OpConvertFToS",
"class" : "Conversion",
"opcode" : 110,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
]
},
{
"opname" : "OpConvertSToF",
"class" : "Conversion",
"opcode" : 111,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
]
},
{
"opname" : "OpConvertUToF",
"class" : "Conversion",
"opcode" : 112,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
]
},
{
"opname" : "OpUConvert",
"class" : "Conversion",
"opcode" : 113,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
]
},
{
"opname" : "OpSConvert",
"class" : "Conversion",
"opcode" : 114,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
]
},
{
"opname" : "OpFConvert",
"class" : "Conversion",
"opcode" : 115,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Float Value'" }
]
},
{
"opname" : "OpQuantizeToF16",
"class" : "Conversion",
"opcode" : 116,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpConvertPtrToU",
"class" : "Conversion",
"opcode" : 117,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
]
},
{
"opname" : "OpSatConvertSToU",
"class" : "Conversion",
"opcode" : 118,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Signed Value'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpSatConvertUToS",
"class" : "Conversion",
"opcode" : 119,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Unsigned Value'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpConvertUToPtr",
"class" : "Conversion",
"opcode" : 120,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Integer Value'" }
],
"capabilities" : [
"Addresses",
"PhysicalStorageBufferAddresses"
]
},
{
"opname" : "OpPtrCastToGeneric",
"class" : "Conversion",
"opcode" : 121,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpGenericCastToPtr",
"class" : "Conversion",
"opcode" : 122,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpGenericCastToPtrExplicit",
"class" : "Conversion",
"opcode" : 123,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "StorageClass", "name" : "'Storage'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpBitcast",
"class" : "Conversion",
"opcode" : 124,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpSNegate",
"class" : "Arithmetic",
"opcode" : 126,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpFNegate",
"class" : "Arithmetic",
"opcode" : 127,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpIAdd",
"class" : "Arithmetic",
"opcode" : 128,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFAdd",
"class" : "Arithmetic",
"opcode" : 129,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpISub",
"class" : "Arithmetic",
"opcode" : 130,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFSub",
"class" : "Arithmetic",
"opcode" : 131,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpIMul",
"class" : "Arithmetic",
"opcode" : 132,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFMul",
"class" : "Arithmetic",
"opcode" : 133,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpUDiv",
"class" : "Arithmetic",
"opcode" : 134,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSDiv",
"class" : "Arithmetic",
"opcode" : 135,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFDiv",
"class" : "Arithmetic",
"opcode" : 136,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpUMod",
"class" : "Arithmetic",
"opcode" : 137,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSRem",
"class" : "Arithmetic",
"opcode" : 138,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSMod",
"class" : "Arithmetic",
"opcode" : 139,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFRem",
"class" : "Arithmetic",
"opcode" : 140,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFMod",
"class" : "Arithmetic",
"opcode" : 141,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpVectorTimesScalar",
"class" : "Arithmetic",
"opcode" : 142,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Scalar'" }
]
},
{
"opname" : "OpMatrixTimesScalar",
"class" : "Arithmetic",
"opcode" : 143,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Matrix'" },
{ "kind" : "IdRef", "name" : "'Scalar'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpVectorTimesMatrix",
"class" : "Arithmetic",
"opcode" : 144,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" },
{ "kind" : "IdRef", "name" : "'Matrix'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpMatrixTimesVector",
"class" : "Arithmetic",
"opcode" : 145,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Matrix'" },
{ "kind" : "IdRef", "name" : "'Vector'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpMatrixTimesMatrix",
"class" : "Arithmetic",
"opcode" : 146,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'LeftMatrix'" },
{ "kind" : "IdRef", "name" : "'RightMatrix'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpOuterProduct",
"class" : "Arithmetic",
"opcode" : 147,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" }
],
"capabilities" : [ "Matrix" ]
},
{
"opname" : "OpDot",
"class" : "Arithmetic",
"opcode" : 148,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector 1'" },
{ "kind" : "IdRef", "name" : "'Vector 2'" }
]
},
{
"opname" : "OpIAddCarry",
"class" : "Arithmetic",
"opcode" : 149,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpISubBorrow",
"class" : "Arithmetic",
"opcode" : 150,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpUMulExtended",
"class" : "Arithmetic",
"opcode" : 151,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSMulExtended",
"class" : "Arithmetic",
"opcode" : 152,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpAny",
"class" : "Relational_and_Logical",
"opcode" : 154,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" }
]
},
{
"opname" : "OpAll",
"class" : "Relational_and_Logical",
"opcode" : 155,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Vector'" }
]
},
{
"opname" : "OpIsNan",
"class" : "Relational_and_Logical",
"opcode" : 156,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
]
},
{
"opname" : "OpIsInf",
"class" : "Relational_and_Logical",
"opcode" : 157,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
]
},
{
"opname" : "OpIsFinite",
"class" : "Relational_and_Logical",
"opcode" : 158,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpIsNormal",
"class" : "Relational_and_Logical",
"opcode" : 159,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpSignBitSet",
"class" : "Relational_and_Logical",
"opcode" : 160,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpLessOrGreater",
"class" : "Relational_and_Logical",
"opcode" : 161,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpOrdered",
"class" : "Relational_and_Logical",
"opcode" : 162,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpUnordered",
"class" : "Relational_and_Logical",
"opcode" : 163,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'x'" },
{ "kind" : "IdRef", "name" : "'y'" }
],
"capabilities" : [ "Kernel" ]
},
{
"opname" : "OpLogicalEqual",
"class" : "Relational_and_Logical",
"opcode" : 164,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpLogicalNotEqual",
"class" : "Relational_and_Logical",
"opcode" : 165,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpLogicalOr",
"class" : "Relational_and_Logical",
"opcode" : 166,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpLogicalAnd",
"class" : "Relational_and_Logical",
"opcode" : 167,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpLogicalNot",
"class" : "Relational_and_Logical",
"opcode" : 168,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpSelect",
"class" : "Relational_and_Logical",
"opcode" : 169,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Condition'" },
{ "kind" : "IdRef", "name" : "'Object 1'" },
{ "kind" : "IdRef", "name" : "'Object 2'" }
]
},
{
"opname" : "OpIEqual",
"class" : "Relational_and_Logical",
"opcode" : 170,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpINotEqual",
"class" : "Relational_and_Logical",
"opcode" : 171,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpUGreaterThan",
"class" : "Relational_and_Logical",
"opcode" : 172,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSGreaterThan",
"class" : "Relational_and_Logical",
"opcode" : 173,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpUGreaterThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 174,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSGreaterThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 175,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpULessThan",
"class" : "Relational_and_Logical",
"opcode" : 176,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSLessThan",
"class" : "Relational_and_Logical",
"opcode" : 177,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpULessThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 178,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpSLessThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 179,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdEqual",
"class" : "Relational_and_Logical",
"opcode" : 180,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordEqual",
"class" : "Relational_and_Logical",
"opcode" : 181,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdNotEqual",
"class" : "Relational_and_Logical",
"opcode" : 182,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordNotEqual",
"class" : "Relational_and_Logical",
"opcode" : 183,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdLessThan",
"class" : "Relational_and_Logical",
"opcode" : 184,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordLessThan",
"class" : "Relational_and_Logical",
"opcode" : 185,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdGreaterThan",
"class" : "Relational_and_Logical",
"opcode" : 186,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordGreaterThan",
"class" : "Relational_and_Logical",
"opcode" : 187,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdLessThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 188,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordLessThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 189,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFOrdGreaterThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 190,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpFUnordGreaterThanEqual",
"class" : "Relational_and_Logical",
"opcode" : 191,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpShiftRightLogical",
"class" : "Bit",
"opcode" : 194,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
]
},
{
"opname" : "OpShiftRightArithmetic",
"class" : "Bit",
"opcode" : 195,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
]
},
{
"opname" : "OpShiftLeftLogical",
"class" : "Bit",
"opcode" : 196,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Shift'" }
]
},
{
"opname" : "OpBitwiseOr",
"class" : "Bit",
"opcode" : 197,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpBitwiseXor",
"class" : "Bit",
"opcode" : 198,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpBitwiseAnd",
"class" : "Bit",
"opcode" : 199,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand 1'" },
{ "kind" : "IdRef", "name" : "'Operand 2'" }
]
},
{
"opname" : "OpNot",
"class" : "Bit",
"opcode" : 200,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Operand'" }
]
},
{
"opname" : "OpBitFieldInsert",
"class" : "Bit",
"opcode" : 201,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Insert'" },
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
"capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitFieldSExtract",
"class" : "Bit",
"opcode" : 202,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
"capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitFieldUExtract",
"class" : "Bit",
"opcode" : 203,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" },
{ "kind" : "IdRef", "name" : "'Offset'" },
{ "kind" : "IdRef", "name" : "'Count'" }
],
"capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitReverse",
"class" : "Bit",
"opcode" : 204,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" }
],
"capabilities" : [ "Shader", "BitInstructions" ]
},
{
"opname" : "OpBitCount",
"class" : "Bit",
"opcode" : 205,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Base'" }
]
},
{
"opname" : "OpDPdx",
"class" : "Derivative",
"opcode" : 207,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpDPdy",
"class" : "Derivative",
"opcode" : 208,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpFwidth",
"class" : "Derivative",
"opcode" : 209,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "Shader" ]
},
{
"opname" : "OpDPdxFine",
"class" : "Derivative",
"opcode" : 210,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpDPdyFine",
"class" : "Derivative",
"opcode" : 211,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpFwidthFine",
"class" : "Derivative",
"opcode" : 212,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpDPdxCoarse",
"class" : "Derivative",
"opcode" : 213,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpDPdyCoarse",
"class" : "Derivative",
"opcode" : 214,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpFwidthCoarse",
"class" : "Derivative",
"opcode" : 215,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'P'" }
],
"capabilities" : [ "DerivativeControl" ]
},
{
"opname" : "OpEmitVertex",
"class" : "Primitive",
"opcode" : 218,
"capabilities" : [ "Geometry" ]
},
{
"opname" : "OpEndPrimitive",
"class" : "Primitive",
"opcode" : 219,
"capabilities" : [ "Geometry" ]
},
{
"opname" : "OpEmitStreamVertex",
"class" : "Primitive",
"opcode" : 220,
"operands" : [
{ "kind" : "IdRef", "name" : "'Stream'" }
],
"capabilities" : [ "GeometryStreams" ]
},
{
"opname" : "OpEndStreamPrimitive",
"class" : "Primitive",
"opcode" : 221,
"operands" : [
{ "kind" : "IdRef", "name" : "'Stream'" }
],
"capabilities" : [ "GeometryStreams" ]
},
{
"opname" : "OpControlBarrier",
"class" : "Barrier",
"opcode" : 224,
"operands" : [
{ "kind" : "IdScope", "name" : "'Execution'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpMemoryBarrier",
"class" : "Barrier",
"opcode" : 225,
"operands" : [
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpAtomicLoad",
"class" : "Atomic",
"opcode" : 227,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpAtomicStore",
"class" : "Atomic",
"opcode" : 228,
"operands" : [
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpAtomicExchange",
"class" : "Atomic",
"opcode" : 229,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpAtomicCompareExchange",
"class" : "Atomic",
"opcode" : 230,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Equal'" },
{ "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'Comparator'" }
]
},
{
"opname" : "OpAtomicCompareExchangeWeak",
"class" : "Atomic",
"opcode" : 231,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Equal'" },
{ "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
{ "kind" : "IdRef", "name" : "'Value'" },
{ "kind" : "IdRef", "name" : "'Comparator'" }
],
"capabilities" : [ "Kernel" ],
"lastVersion" : "1.3"
},
{
"opname" : "OpAtomicIIncrement",
"class" : "Atomic",
"opcode" : 232,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpAtomicIDecrement",
"class" : "Atomic",
"opcode" : 233,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
]
},
{
"opname" : "OpAtomicIAdd",
"class" : "Atomic",
"opcode" : 234,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpAtomicISub",
"class" : "Atomic",
"opcode" : 235,
"operands" : [
{ "kind" : "IdResultType" },
{ "kind" : "IdResult" },
{ "kind" : "IdRef", "name" : "'Pointer'" },
{ "kind" : "IdScope", "name" : "'Memory'" },
{ "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
{ "kind" : "IdRef", "name" : "'Value'" }
]
},
{
"opname" : "OpAtomicSMin",