Home | History | Annotate | Download | only in 1.2
      1 {
      2   "copyright" : [
      3     "Copyright (c) 2014-2016 The Khronos Group Inc.",
      4     "",
      5     "Permission is hereby granted, free of charge, to any person obtaining a copy",
      6     "of this software and/or associated documentation files (the \"Materials\"),",
      7     "to deal in the Materials without restriction, including without limitation",
      8     "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
      9     "and/or sell copies of the Materials, and to permit persons to whom the",
     10     "Materials are furnished to do so, subject to the following conditions:",
     11     "",
     12     "The above copyright notice and this permission notice shall be included in",
     13     "all copies or substantial portions of the Materials.",
     14     "",
     15     "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
     16     "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
     17     "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
     18     "",
     19     "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
     20     "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
     21     "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
     22     "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
     23     "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
     24     "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
     25     "IN THE MATERIALS."
     26   ],
     27   "magic_number" : "0x07230203",
     28   "major_version" : 1,
     29   "minor_version" : 2,
     30   "revision" : 2,
     31   "instructions" : [
     32     {
     33       "opname" : "OpNop",
     34       "opcode" : 0
     35     },
     36     {
     37       "opname" : "OpUndef",
     38       "opcode" : 1,
     39       "operands" : [
     40         { "kind" : "IdResultType" },
     41         { "kind" : "IdResult" }
     42       ]
     43     },
     44     {
     45       "opname" : "OpSourceContinued",
     46       "opcode" : 2,
     47       "operands" : [
     48         { "kind" : "LiteralString", "name" : "'Continued Source'" }
     49       ]
     50     },
     51     {
     52       "opname" : "OpSource",
     53       "opcode" : 3,
     54       "operands" : [
     55         { "kind" : "SourceLanguage" },
     56         { "kind" : "LiteralInteger",                     "name" : "'Version'" },
     57         { "kind" : "IdRef",          "quantifier" : "?", "name" : "'File'" },
     58         { "kind" : "LiteralString",  "quantifier" : "?", "name" : "'Source'" }
     59       ]
     60     },
     61     {
     62       "opname" : "OpSourceExtension",
     63       "opcode" : 4,
     64       "operands" : [
     65         { "kind" : "LiteralString", "name" : "'Extension'" }
     66       ]
     67     },
     68     {
     69       "opname" : "OpName",
     70       "opcode" : 5,
     71       "operands" : [
     72         { "kind" : "IdRef",         "name" : "'Target'" },
     73         { "kind" : "LiteralString", "name" : "'Name'" }
     74       ]
     75     },
     76     {
     77       "opname" : "OpMemberName",
     78       "opcode" : 6,
     79       "operands" : [
     80         { "kind" : "IdRef",          "name" : "'Type'" },
     81         { "kind" : "LiteralInteger", "name" : "'Member'" },
     82         { "kind" : "LiteralString",  "name" : "'Name'" }
     83       ]
     84     },
     85     {
     86       "opname" : "OpString",
     87       "opcode" : 7,
     88       "operands" : [
     89         { "kind" : "IdResult" },
     90         { "kind" : "LiteralString", "name" : "'String'" }
     91       ]
     92     },
     93     {
     94       "opname" : "OpLine",
     95       "opcode" : 8,
     96       "operands" : [
     97         { "kind" : "IdRef",          "name" : "'File'" },
     98         { "kind" : "LiteralInteger", "name" : "'Line'" },
     99         { "kind" : "LiteralInteger", "name" : "'Column'" }
    100       ]
    101     },
    102     {
    103       "opname" : "OpExtension",
    104       "opcode" : 10,
    105       "operands" : [
    106         { "kind" : "LiteralString", "name" : "'Name'" }
    107       ]
    108     },
    109     {
    110       "opname" : "OpExtInstImport",
    111       "opcode" : 11,
    112       "operands" : [
    113         { "kind" : "IdResult" },
    114         { "kind" : "LiteralString", "name" : "'Name'" }
    115       ]
    116     },
    117     {
    118       "opname" : "OpExtInst",
    119       "opcode" : 12,
    120       "operands" : [
    121         { "kind" : "IdResultType" },
    122         { "kind" : "IdResult" },
    123         { "kind" : "IdRef",                                     "name" : "'Set'" },
    124         { "kind" : "LiteralExtInstInteger",                     "name" : "'Instruction'" },
    125         { "kind" : "IdRef",                 "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
    126       ]
    127     },
    128     {
    129       "opname" : "OpMemoryModel",
    130       "opcode" : 14,
    131       "operands" : [
    132         { "kind" : "AddressingModel" },
    133         { "kind" : "MemoryModel" }
    134       ]
    135     },
    136     {
    137       "opname" : "OpEntryPoint",
    138       "opcode" : 15,
    139       "operands" : [
    140         { "kind" : "ExecutionModel" },
    141         { "kind" : "IdRef",                              "name" : "'Entry Point'" },
    142         { "kind" : "LiteralString",                      "name" : "'Name'" },
    143         { "kind" : "IdRef",          "quantifier" : "*", "name" : "'Interface'" }
    144       ]
    145     },
    146     {
    147       "opname" : "OpExecutionMode",
    148       "opcode" : 16,
    149       "operands" : [
    150         { "kind" : "IdRef",         "name" : "'Entry Point'" },
    151         { "kind" : "ExecutionMode", "name" : "'Mode'" }
    152       ]
    153     },
    154     {
    155       "opname" : "OpCapability",
    156       "opcode" : 17,
    157       "operands" : [
    158         { "kind" : "Capability", "name" : "'Capability'" }
    159       ]
    160     },
    161     {
    162       "opname" : "OpTypeVoid",
    163       "opcode" : 19,
    164       "operands" : [
    165         { "kind" : "IdResult" }
    166       ]
    167     },
    168     {
    169       "opname" : "OpTypeBool",
    170       "opcode" : 20,
    171       "operands" : [
    172         { "kind" : "IdResult" }
    173       ]
    174     },
    175     {
    176       "opname" : "OpTypeInt",
    177       "opcode" : 21,
    178       "operands" : [
    179         { "kind" : "IdResult" },
    180         { "kind" : "LiteralInteger", "name" : "'Width'" },
    181         { "kind" : "LiteralInteger", "name" : "'Signedness'" }
    182       ]
    183     },
    184     {
    185       "opname" : "OpTypeFloat",
    186       "opcode" : 22,
    187       "operands" : [
    188         { "kind" : "IdResult" },
    189         { "kind" : "LiteralInteger", "name" : "'Width'" }
    190       ]
    191     },
    192     {
    193       "opname" : "OpTypeVector",
    194       "opcode" : 23,
    195       "operands" : [
    196         { "kind" : "IdResult" },
    197         { "kind" : "IdRef",          "name" : "'Component Type'" },
    198         { "kind" : "LiteralInteger", "name" : "'Component Count'" }
    199       ]
    200     },
    201     {
    202       "opname" : "OpTypeMatrix",
    203       "opcode" : 24,
    204       "operands" : [
    205         { "kind" : "IdResult" },
    206         { "kind" : "IdRef",          "name" : "'Column Type'" },
    207         { "kind" : "LiteralInteger", "name" : "'Column Count'" }
    208       ],
    209       "capabilities" : [ "Matrix" ]
    210     },
    211     {
    212       "opname" : "OpTypeImage",
    213       "opcode" : 25,
    214       "operands" : [
    215         { "kind" : "IdResult" },
    216         { "kind" : "IdRef",                               "name" : "'Sampled Type'" },
    217         { "kind" : "Dim" },
    218         { "kind" : "LiteralInteger",                      "name" : "'Depth'" },
    219         { "kind" : "LiteralInteger",                      "name" : "'Arrayed'" },
    220         { "kind" : "LiteralInteger",                      "name" : "'MS'" },
    221         { "kind" : "LiteralInteger",                      "name" : "'Sampled'" },
    222         { "kind" : "ImageFormat" },
    223         { "kind" : "AccessQualifier", "quantifier" : "?" }
    224       ]
    225     },
    226     {
    227       "opname" : "OpTypeSampler",
    228       "opcode" : 26,
    229       "operands" : [
    230         { "kind" : "IdResult" }
    231       ]
    232     },
    233     {
    234       "opname" : "OpTypeSampledImage",
    235       "opcode" : 27,
    236       "operands" : [
    237         { "kind" : "IdResult" },
    238         { "kind" : "IdRef",    "name" : "'Image Type'" }
    239       ]
    240     },
    241     {
    242       "opname" : "OpTypeArray",
    243       "opcode" : 28,
    244       "operands" : [
    245         { "kind" : "IdResult" },
    246         { "kind" : "IdRef",    "name" : "'Element Type'" },
    247         { "kind" : "IdRef",    "name" : "'Length'" }
    248       ]
    249     },
    250     {
    251       "opname" : "OpTypeRuntimeArray",
    252       "opcode" : 29,
    253       "operands" : [
    254         { "kind" : "IdResult" },
    255         { "kind" : "IdRef",    "name" : "'Element Type'" }
    256       ],
    257       "capabilities" : [ "Shader" ]
    258     },
    259     {
    260       "opname" : "OpTypeStruct",
    261       "opcode" : 30,
    262       "operands" : [
    263         { "kind" : "IdResult" },
    264         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
    265       ]
    266     },
    267     {
    268       "opname" : "OpTypeOpaque",
    269       "opcode" : 31,
    270       "operands" : [
    271         { "kind" : "IdResult" },
    272         { "kind" : "LiteralString", "name" : "The name of the opaque type." }
    273       ],
    274       "capabilities" : [ "Kernel" ]
    275     },
    276     {
    277       "opname" : "OpTypePointer",
    278       "opcode" : 32,
    279       "operands" : [
    280         { "kind" : "IdResult" },
    281         { "kind" : "StorageClass" },
    282         { "kind" : "IdRef",        "name" : "'Type'" }
    283       ]
    284     },
    285     {
    286       "opname" : "OpTypeFunction",
    287       "opcode" : 33,
    288       "operands" : [
    289         { "kind" : "IdResult" },
    290         { "kind" : "IdRef",                        "name" : "'Return Type'" },
    291         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
    292       ]
    293     },
    294     {
    295       "opname" : "OpTypeEvent",
    296       "opcode" : 34,
    297       "operands" : [
    298         { "kind" : "IdResult" }
    299       ],
    300       "capabilities" : [ "Kernel" ]
    301     },
    302     {
    303       "opname" : "OpTypeDeviceEvent",
    304       "opcode" : 35,
    305       "operands" : [
    306         { "kind" : "IdResult" }
    307       ],
    308       "capabilities" : [ "DeviceEnqueue" ]
    309     },
    310     {
    311       "opname" : "OpTypeReserveId",
    312       "opcode" : 36,
    313       "operands" : [
    314         { "kind" : "IdResult" }
    315       ],
    316       "capabilities" : [ "Pipes" ]
    317     },
    318     {
    319       "opname" : "OpTypeQueue",
    320       "opcode" : 37,
    321       "operands" : [
    322         { "kind" : "IdResult" }
    323       ],
    324       "capabilities" : [ "DeviceEnqueue" ]
    325     },
    326     {
    327       "opname" : "OpTypePipe",
    328       "opcode" : 38,
    329       "operands" : [
    330         { "kind" : "IdResult" },
    331         { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
    332       ],
    333       "capabilities" : [ "Pipes" ]
    334     },
    335     {
    336       "opname" : "OpTypeForwardPointer",
    337       "opcode" : 39,
    338       "operands" : [
    339         { "kind" : "IdRef",        "name" : "'Pointer Type'" },
    340         { "kind" : "StorageClass" }
    341       ],
    342       "capabilities" : [ "Addresses" ]
    343     },
    344     {
    345       "opname" : "OpConstantTrue",
    346       "opcode" : 41,
    347       "operands" : [
    348         { "kind" : "IdResultType" },
    349         { "kind" : "IdResult" }
    350       ]
    351     },
    352     {
    353       "opname" : "OpConstantFalse",
    354       "opcode" : 42,
    355       "operands" : [
    356         { "kind" : "IdResultType" },
    357         { "kind" : "IdResult" }
    358       ]
    359     },
    360     {
    361       "opname" : "OpConstant",
    362       "opcode" : 43,
    363       "operands" : [
    364         { "kind" : "IdResultType" },
    365         { "kind" : "IdResult" },
    366         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
    367       ]
    368     },
    369     {
    370       "opname" : "OpConstantComposite",
    371       "opcode" : 44,
    372       "operands" : [
    373         { "kind" : "IdResultType" },
    374         { "kind" : "IdResult" },
    375         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    376       ]
    377     },
    378     {
    379       "opname" : "OpConstantSampler",
    380       "opcode" : 45,
    381       "operands" : [
    382         { "kind" : "IdResultType" },
    383         { "kind" : "IdResult" },
    384         { "kind" : "SamplerAddressingMode" },
    385         { "kind" : "LiteralInteger",        "name" : "'Param'" },
    386         { "kind" : "SamplerFilterMode" }
    387       ],
    388       "capabilities" : [ "LiteralSampler" ]
    389     },
    390     {
    391       "opname" : "OpConstantNull",
    392       "opcode" : 46,
    393       "operands" : [
    394         { "kind" : "IdResultType" },
    395         { "kind" : "IdResult" }
    396       ]
    397     },
    398     {
    399       "opname" : "OpSpecConstantTrue",
    400       "opcode" : 48,
    401       "operands" : [
    402         { "kind" : "IdResultType" },
    403         { "kind" : "IdResult" }
    404       ]
    405     },
    406     {
    407       "opname" : "OpSpecConstantFalse",
    408       "opcode" : 49,
    409       "operands" : [
    410         { "kind" : "IdResultType" },
    411         { "kind" : "IdResult" }
    412       ]
    413     },
    414     {
    415       "opname" : "OpSpecConstant",
    416       "opcode" : 50,
    417       "operands" : [
    418         { "kind" : "IdResultType" },
    419         { "kind" : "IdResult" },
    420         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
    421       ]
    422     },
    423     {
    424       "opname" : "OpSpecConstantComposite",
    425       "opcode" : 51,
    426       "operands" : [
    427         { "kind" : "IdResultType" },
    428         { "kind" : "IdResult" },
    429         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    430       ]
    431     },
    432     {
    433       "opname" : "OpSpecConstantOp",
    434       "opcode" : 52,
    435       "operands" : [
    436         { "kind" : "IdResultType" },
    437         { "kind" : "IdResult" },
    438         { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
    439       ]
    440     },
    441     {
    442       "opname" : "OpFunction",
    443       "opcode" : 54,
    444       "operands" : [
    445         { "kind" : "IdResultType" },
    446         { "kind" : "IdResult" },
    447         { "kind" : "FunctionControl" },
    448         { "kind" : "IdRef",           "name" : "'Function Type'" }
    449       ]
    450     },
    451     {
    452       "opname" : "OpFunctionParameter",
    453       "opcode" : 55,
    454       "operands" : [
    455         { "kind" : "IdResultType" },
    456         { "kind" : "IdResult" }
    457       ]
    458     },
    459     {
    460       "opname" : "OpFunctionEnd",
    461       "opcode" : 56
    462     },
    463     {
    464       "opname" : "OpFunctionCall",
    465       "opcode" : 57,
    466       "operands" : [
    467         { "kind" : "IdResultType" },
    468         { "kind" : "IdResult" },
    469         { "kind" : "IdRef",                            "name" : "'Function'" },
    470         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
    471       ]
    472     },
    473     {
    474       "opname" : "OpVariable",
    475       "opcode" : 59,
    476       "operands" : [
    477         { "kind" : "IdResultType" },
    478         { "kind" : "IdResult" },
    479         { "kind" : "StorageClass" },
    480         { "kind" : "IdRef",        "quantifier" : "?", "name" : "'Initializer'" }
    481       ]
    482     },
    483     {
    484       "opname" : "OpImageTexelPointer",
    485       "opcode" : 60,
    486       "operands" : [
    487         { "kind" : "IdResultType" },
    488         { "kind" : "IdResult" },
    489         { "kind" : "IdRef",        "name" : "'Image'" },
    490         { "kind" : "IdRef",        "name" : "'Coordinate'" },
    491         { "kind" : "IdRef",        "name" : "'Sample'" }
    492       ]
    493     },
    494     {
    495       "opname" : "OpLoad",
    496       "opcode" : 61,
    497       "operands" : [
    498         { "kind" : "IdResultType" },
    499         { "kind" : "IdResult" },
    500         { "kind" : "IdRef",                            "name" : "'Pointer'" },
    501         { "kind" : "MemoryAccess", "quantifier" : "?" }
    502       ]
    503     },
    504     {
    505       "opname" : "OpStore",
    506       "opcode" : 62,
    507       "operands" : [
    508         { "kind" : "IdRef",                            "name" : "'Pointer'" },
    509         { "kind" : "IdRef",                            "name" : "'Object'" },
    510         { "kind" : "MemoryAccess", "quantifier" : "?" }
    511       ]
    512     },
    513     {
    514       "opname" : "OpCopyMemory",
    515       "opcode" : 63,
    516       "operands" : [
    517         { "kind" : "IdRef",                            "name" : "'Target'" },
    518         { "kind" : "IdRef",                            "name" : "'Source'" },
    519         { "kind" : "MemoryAccess", "quantifier" : "?" }
    520       ]
    521     },
    522     {
    523       "opname" : "OpCopyMemorySized",
    524       "opcode" : 64,
    525       "operands" : [
    526         { "kind" : "IdRef",                            "name" : "'Target'" },
    527         { "kind" : "IdRef",                            "name" : "'Source'" },
    528         { "kind" : "IdRef",                            "name" : "'Size'" },
    529         { "kind" : "MemoryAccess", "quantifier" : "?" }
    530       ],
    531       "capabilities" : [ "Addresses" ]
    532     },
    533     {
    534       "opname" : "OpAccessChain",
    535       "opcode" : 65,
    536       "operands" : [
    537         { "kind" : "IdResultType" },
    538         { "kind" : "IdResult" },
    539         { "kind" : "IdRef",                            "name" : "'Base'" },
    540         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    541       ]
    542     },
    543     {
    544       "opname" : "OpInBoundsAccessChain",
    545       "opcode" : 66,
    546       "operands" : [
    547         { "kind" : "IdResultType" },
    548         { "kind" : "IdResult" },
    549         { "kind" : "IdRef",                            "name" : "'Base'" },
    550         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    551       ]
    552     },
    553     {
    554       "opname" : "OpPtrAccessChain",
    555       "opcode" : 67,
    556       "operands" : [
    557         { "kind" : "IdResultType" },
    558         { "kind" : "IdResult" },
    559         { "kind" : "IdRef",                            "name" : "'Base'" },
    560         { "kind" : "IdRef",                            "name" : "'Element'" },
    561         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    562       ],
    563       "capabilities" : [
    564         "Addresses",
    565         "VariablePointers",
    566         "VariablePointersStorageBuffer"
    567       ]
    568     },
    569     {
    570       "opname" : "OpArrayLength",
    571       "opcode" : 68,
    572       "operands" : [
    573         { "kind" : "IdResultType" },
    574         { "kind" : "IdResult" },
    575         { "kind" : "IdRef",          "name" : "'Structure'" },
    576         { "kind" : "LiteralInteger", "name" : "'Array member'" }
    577       ],
    578       "capabilities" : [ "Shader" ]
    579     },
    580     {
    581       "opname" : "OpGenericPtrMemSemantics",
    582       "opcode" : 69,
    583       "operands" : [
    584         { "kind" : "IdResultType" },
    585         { "kind" : "IdResult" },
    586         { "kind" : "IdRef",        "name" : "'Pointer'" }
    587       ],
    588       "capabilities" : [ "Kernel" ]
    589     },
    590     {
    591       "opname" : "OpInBoundsPtrAccessChain",
    592       "opcode" : 70,
    593       "operands" : [
    594         { "kind" : "IdResultType" },
    595         { "kind" : "IdResult" },
    596         { "kind" : "IdRef",                            "name" : "'Base'" },
    597         { "kind" : "IdRef",                            "name" : "'Element'" },
    598         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
    599       ],
    600       "capabilities" : [ "Addresses" ]
    601     },
    602     {
    603       "opname" : "OpDecorate",
    604       "opcode" : 71,
    605       "operands" : [
    606         { "kind" : "IdRef",      "name" : "'Target'" },
    607         { "kind" : "Decoration" }
    608       ]
    609     },
    610     {
    611       "opname" : "OpMemberDecorate",
    612       "opcode" : 72,
    613       "operands" : [
    614         { "kind" : "IdRef",          "name" : "'Structure Type'" },
    615         { "kind" : "LiteralInteger", "name" : "'Member'" },
    616         { "kind" : "Decoration" }
    617       ]
    618     },
    619     {
    620       "opname" : "OpDecorationGroup",
    621       "opcode" : 73,
    622       "operands" : [
    623         { "kind" : "IdResult" }
    624       ]
    625     },
    626     {
    627       "opname" : "OpGroupDecorate",
    628       "opcode" : 74,
    629       "operands" : [
    630         { "kind" : "IdRef",                     "name" : "'Decoration Group'" },
    631         { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
    632       ]
    633     },
    634     {
    635       "opname" : "OpGroupMemberDecorate",
    636       "opcode" : 75,
    637       "operands" : [
    638         { "kind" : "IdRef",                                       "name" : "'Decoration Group'" },
    639         { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
    640       ]
    641     },
    642     {
    643       "opname" : "OpVectorExtractDynamic",
    644       "opcode" : 77,
    645       "operands" : [
    646         { "kind" : "IdResultType" },
    647         { "kind" : "IdResult" },
    648         { "kind" : "IdRef",        "name" : "'Vector'" },
    649         { "kind" : "IdRef",        "name" : "'Index'" }
    650       ]
    651     },
    652     {
    653       "opname" : "OpVectorInsertDynamic",
    654       "opcode" : 78,
    655       "operands" : [
    656         { "kind" : "IdResultType" },
    657         { "kind" : "IdResult" },
    658         { "kind" : "IdRef",        "name" : "'Vector'" },
    659         { "kind" : "IdRef",        "name" : "'Component'" },
    660         { "kind" : "IdRef",        "name" : "'Index'" }
    661       ]
    662     },
    663     {
    664       "opname" : "OpVectorShuffle",
    665       "opcode" : 79,
    666       "operands" : [
    667         { "kind" : "IdResultType" },
    668         { "kind" : "IdResult" },
    669         { "kind" : "IdRef",                              "name" : "'Vector 1'" },
    670         { "kind" : "IdRef",                              "name" : "'Vector 2'" },
    671         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
    672       ]
    673     },
    674     {
    675       "opname" : "OpCompositeConstruct",
    676       "opcode" : 80,
    677       "operands" : [
    678         { "kind" : "IdResultType" },
    679         { "kind" : "IdResult" },
    680         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
    681       ]
    682     },
    683     {
    684       "opname" : "OpCompositeExtract",
    685       "opcode" : 81,
    686       "operands" : [
    687         { "kind" : "IdResultType" },
    688         { "kind" : "IdResult" },
    689         { "kind" : "IdRef",                              "name" : "'Composite'" },
    690         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
    691       ]
    692     },
    693     {
    694       "opname" : "OpCompositeInsert",
    695       "opcode" : 82,
    696       "operands" : [
    697         { "kind" : "IdResultType" },
    698         { "kind" : "IdResult" },
    699         { "kind" : "IdRef",                              "name" : "'Object'" },
    700         { "kind" : "IdRef",                              "name" : "'Composite'" },
    701         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
    702       ]
    703     },
    704     {
    705       "opname" : "OpCopyObject",
    706       "opcode" : 83,
    707       "operands" : [
    708         { "kind" : "IdResultType" },
    709         { "kind" : "IdResult" },
    710         { "kind" : "IdRef",        "name" : "'Operand'" }
    711       ]
    712     },
    713     {
    714       "opname" : "OpTranspose",
    715       "opcode" : 84,
    716       "operands" : [
    717         { "kind" : "IdResultType" },
    718         { "kind" : "IdResult" },
    719         { "kind" : "IdRef",        "name" : "'Matrix'" }
    720       ],
    721       "capabilities" : [ "Matrix" ]
    722     },
    723     {
    724       "opname" : "OpSampledImage",
    725       "opcode" : 86,
    726       "operands" : [
    727         { "kind" : "IdResultType" },
    728         { "kind" : "IdResult" },
    729         { "kind" : "IdRef",        "name" : "'Image'" },
    730         { "kind" : "IdRef",        "name" : "'Sampler'" }
    731       ]
    732     },
    733     {
    734       "opname" : "OpImageSampleImplicitLod",
    735       "opcode" : 87,
    736       "operands" : [
    737         { "kind" : "IdResultType" },
    738         { "kind" : "IdResult" },
    739         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    740         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    741         { "kind" : "ImageOperands", "quantifier" : "?" }
    742       ],
    743       "capabilities" : [ "Shader" ]
    744     },
    745     {
    746       "opname" : "OpImageSampleExplicitLod",
    747       "opcode" : 88,
    748       "operands" : [
    749         { "kind" : "IdResultType" },
    750         { "kind" : "IdResult" },
    751         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    752         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    753         { "kind" : "ImageOperands" }
    754       ]
    755     },
    756     {
    757       "opname" : "OpImageSampleDrefImplicitLod",
    758       "opcode" : 89,
    759       "operands" : [
    760         { "kind" : "IdResultType" },
    761         { "kind" : "IdResult" },
    762         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    763         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    764         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    765         { "kind" : "ImageOperands", "quantifier" : "?" }
    766       ],
    767       "capabilities" : [ "Shader" ]
    768     },
    769     {
    770       "opname" : "OpImageSampleDrefExplicitLod",
    771       "opcode" : 90,
    772       "operands" : [
    773         { "kind" : "IdResultType" },
    774         { "kind" : "IdResult" },
    775         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    776         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    777         { "kind" : "IdRef",         "name" : "'D~ref~'" },
    778         { "kind" : "ImageOperands" }
    779       ],
    780       "capabilities" : [ "Shader" ]
    781     },
    782     {
    783       "opname" : "OpImageSampleProjImplicitLod",
    784       "opcode" : 91,
    785       "operands" : [
    786         { "kind" : "IdResultType" },
    787         { "kind" : "IdResult" },
    788         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    789         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    790         { "kind" : "ImageOperands", "quantifier" : "?" }
    791       ],
    792       "capabilities" : [ "Shader" ]
    793     },
    794     {
    795       "opname" : "OpImageSampleProjExplicitLod",
    796       "opcode" : 92,
    797       "operands" : [
    798         { "kind" : "IdResultType" },
    799         { "kind" : "IdResult" },
    800         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    801         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    802         { "kind" : "ImageOperands" }
    803       ],
    804       "capabilities" : [ "Shader" ]
    805     },
    806     {
    807       "opname" : "OpImageSampleProjDrefImplicitLod",
    808       "opcode" : 93,
    809       "operands" : [
    810         { "kind" : "IdResultType" },
    811         { "kind" : "IdResult" },
    812         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    813         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    814         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    815         { "kind" : "ImageOperands", "quantifier" : "?" }
    816       ],
    817       "capabilities" : [ "Shader" ]
    818     },
    819     {
    820       "opname" : "OpImageSampleProjDrefExplicitLod",
    821       "opcode" : 94,
    822       "operands" : [
    823         { "kind" : "IdResultType" },
    824         { "kind" : "IdResult" },
    825         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
    826         { "kind" : "IdRef",         "name" : "'Coordinate'" },
    827         { "kind" : "IdRef",         "name" : "'D~ref~'" },
    828         { "kind" : "ImageOperands" }
    829       ],
    830       "capabilities" : [ "Shader" ]
    831     },
    832     {
    833       "opname" : "OpImageFetch",
    834       "opcode" : 95,
    835       "operands" : [
    836         { "kind" : "IdResultType" },
    837         { "kind" : "IdResult" },
    838         { "kind" : "IdRef",                             "name" : "'Image'" },
    839         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    840         { "kind" : "ImageOperands", "quantifier" : "?" }
    841       ]
    842     },
    843     {
    844       "opname" : "OpImageGather",
    845       "opcode" : 96,
    846       "operands" : [
    847         { "kind" : "IdResultType" },
    848         { "kind" : "IdResult" },
    849         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    850         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    851         { "kind" : "IdRef",                             "name" : "'Component'" },
    852         { "kind" : "ImageOperands", "quantifier" : "?" }
    853       ],
    854       "capabilities" : [ "Shader" ]
    855     },
    856     {
    857       "opname" : "OpImageDrefGather",
    858       "opcode" : 97,
    859       "operands" : [
    860         { "kind" : "IdResultType" },
    861         { "kind" : "IdResult" },
    862         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
    863         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    864         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
    865         { "kind" : "ImageOperands", "quantifier" : "?" }
    866       ],
    867       "capabilities" : [ "Shader" ]
    868     },
    869     {
    870       "opname" : "OpImageRead",
    871       "opcode" : 98,
    872       "operands" : [
    873         { "kind" : "IdResultType" },
    874         { "kind" : "IdResult" },
    875         { "kind" : "IdRef",                             "name" : "'Image'" },
    876         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    877         { "kind" : "ImageOperands", "quantifier" : "?" }
    878       ]
    879     },
    880     {
    881       "opname" : "OpImageWrite",
    882       "opcode" : 99,
    883       "operands" : [
    884         { "kind" : "IdRef",                             "name" : "'Image'" },
    885         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
    886         { "kind" : "IdRef",                             "name" : "'Texel'" },
    887         { "kind" : "ImageOperands", "quantifier" : "?" }
    888       ]
    889     },
    890     {
    891       "opname" : "OpImage",
    892       "opcode" : 100,
    893       "operands" : [
    894         { "kind" : "IdResultType" },
    895         { "kind" : "IdResult" },
    896         { "kind" : "IdRef",        "name" : "'Sampled Image'" }
    897       ]
    898     },
    899     {
    900       "opname" : "OpImageQueryFormat",
    901       "opcode" : 101,
    902       "operands" : [
    903         { "kind" : "IdResultType" },
    904         { "kind" : "IdResult" },
    905         { "kind" : "IdRef",        "name" : "'Image'" }
    906       ],
    907       "capabilities" : [ "Kernel" ]
    908     },
    909     {
    910       "opname" : "OpImageQueryOrder",
    911       "opcode" : 102,
    912       "operands" : [
    913         { "kind" : "IdResultType" },
    914         { "kind" : "IdResult" },
    915         { "kind" : "IdRef",        "name" : "'Image'" }
    916       ],
    917       "capabilities" : [ "Kernel" ]
    918     },
    919     {
    920       "opname" : "OpImageQuerySizeLod",
    921       "opcode" : 103,
    922       "operands" : [
    923         { "kind" : "IdResultType" },
    924         { "kind" : "IdResult" },
    925         { "kind" : "IdRef",        "name" : "'Image'" },
    926         { "kind" : "IdRef",        "name" : "'Level of Detail'" }
    927       ],
    928       "capabilities" : [ "Kernel", "ImageQuery" ]
    929     },
    930     {
    931       "opname" : "OpImageQuerySize",
    932       "opcode" : 104,
    933       "operands" : [
    934         { "kind" : "IdResultType" },
    935         { "kind" : "IdResult" },
    936         { "kind" : "IdRef",        "name" : "'Image'" }
    937       ],
    938       "capabilities" : [ "Kernel", "ImageQuery" ]
    939     },
    940     {
    941       "opname" : "OpImageQueryLod",
    942       "opcode" : 105,
    943       "operands" : [
    944         { "kind" : "IdResultType" },
    945         { "kind" : "IdResult" },
    946         { "kind" : "IdRef",        "name" : "'Sampled Image'" },
    947         { "kind" : "IdRef",        "name" : "'Coordinate'" }
    948       ],
    949       "capabilities" : [ "ImageQuery" ]
    950     },
    951     {
    952       "opname" : "OpImageQueryLevels",
    953       "opcode" : 106,
    954       "operands" : [
    955         { "kind" : "IdResultType" },
    956         { "kind" : "IdResult" },
    957         { "kind" : "IdRef",        "name" : "'Image'" }
    958       ],
    959       "capabilities" : [ "Kernel", "ImageQuery" ]
    960     },
    961     {
    962       "opname" : "OpImageQuerySamples",
    963       "opcode" : 107,
    964       "operands" : [
    965         { "kind" : "IdResultType" },
    966         { "kind" : "IdResult" },
    967         { "kind" : "IdRef",        "name" : "'Image'" }
    968       ],
    969       "capabilities" : [ "Kernel", "ImageQuery" ]
    970     },
    971     {
    972       "opname" : "OpConvertFToU",
    973       "opcode" : 109,
    974       "operands" : [
    975         { "kind" : "IdResultType" },
    976         { "kind" : "IdResult" },
    977         { "kind" : "IdRef",        "name" : "'Float Value'" }
    978       ]
    979     },
    980     {
    981       "opname" : "OpConvertFToS",
    982       "opcode" : 110,
    983       "operands" : [
    984         { "kind" : "IdResultType" },
    985         { "kind" : "IdResult" },
    986         { "kind" : "IdRef",        "name" : "'Float Value'" }
    987       ]
    988     },
    989     {
    990       "opname" : "OpConvertSToF",
    991       "opcode" : 111,
    992       "operands" : [
    993         { "kind" : "IdResultType" },
    994         { "kind" : "IdResult" },
    995         { "kind" : "IdRef",        "name" : "'Signed Value'" }
    996       ]
    997     },
    998     {
    999       "opname" : "OpConvertUToF",
   1000       "opcode" : 112,
   1001       "operands" : [
   1002         { "kind" : "IdResultType" },
   1003         { "kind" : "IdResult" },
   1004         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1005       ]
   1006     },
   1007     {
   1008       "opname" : "OpUConvert",
   1009       "opcode" : 113,
   1010       "operands" : [
   1011         { "kind" : "IdResultType" },
   1012         { "kind" : "IdResult" },
   1013         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1014       ]
   1015     },
   1016     {
   1017       "opname" : "OpSConvert",
   1018       "opcode" : 114,
   1019       "operands" : [
   1020         { "kind" : "IdResultType" },
   1021         { "kind" : "IdResult" },
   1022         { "kind" : "IdRef",        "name" : "'Signed Value'" }
   1023       ]
   1024     },
   1025     {
   1026       "opname" : "OpFConvert",
   1027       "opcode" : 115,
   1028       "operands" : [
   1029         { "kind" : "IdResultType" },
   1030         { "kind" : "IdResult" },
   1031         { "kind" : "IdRef",        "name" : "'Float Value'" }
   1032       ]
   1033     },
   1034     {
   1035       "opname" : "OpQuantizeToF16",
   1036       "opcode" : 116,
   1037       "operands" : [
   1038         { "kind" : "IdResultType" },
   1039         { "kind" : "IdResult" },
   1040         { "kind" : "IdRef",        "name" : "'Value'" }
   1041       ]
   1042     },
   1043     {
   1044       "opname" : "OpConvertPtrToU",
   1045       "opcode" : 117,
   1046       "operands" : [
   1047         { "kind" : "IdResultType" },
   1048         { "kind" : "IdResult" },
   1049         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1050       ],
   1051       "capabilities" : [ "Addresses" ]
   1052     },
   1053     {
   1054       "opname" : "OpSatConvertSToU",
   1055       "opcode" : 118,
   1056       "operands" : [
   1057         { "kind" : "IdResultType" },
   1058         { "kind" : "IdResult" },
   1059         { "kind" : "IdRef",        "name" : "'Signed Value'" }
   1060       ],
   1061       "capabilities" : [ "Kernel" ]
   1062     },
   1063     {
   1064       "opname" : "OpSatConvertUToS",
   1065       "opcode" : 119,
   1066       "operands" : [
   1067         { "kind" : "IdResultType" },
   1068         { "kind" : "IdResult" },
   1069         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
   1070       ],
   1071       "capabilities" : [ "Kernel" ]
   1072     },
   1073     {
   1074       "opname" : "OpConvertUToPtr",
   1075       "opcode" : 120,
   1076       "operands" : [
   1077         { "kind" : "IdResultType" },
   1078         { "kind" : "IdResult" },
   1079         { "kind" : "IdRef",        "name" : "'Integer Value'" }
   1080       ],
   1081       "capabilities" : [ "Addresses" ]
   1082     },
   1083     {
   1084       "opname" : "OpPtrCastToGeneric",
   1085       "opcode" : 121,
   1086       "operands" : [
   1087         { "kind" : "IdResultType" },
   1088         { "kind" : "IdResult" },
   1089         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1090       ],
   1091       "capabilities" : [ "Kernel" ]
   1092     },
   1093     {
   1094       "opname" : "OpGenericCastToPtr",
   1095       "opcode" : 122,
   1096       "operands" : [
   1097         { "kind" : "IdResultType" },
   1098         { "kind" : "IdResult" },
   1099         { "kind" : "IdRef",        "name" : "'Pointer'" }
   1100       ],
   1101       "capabilities" : [ "Kernel" ]
   1102     },
   1103     {
   1104       "opname" : "OpGenericCastToPtrExplicit",
   1105       "opcode" : 123,
   1106       "operands" : [
   1107         { "kind" : "IdResultType" },
   1108         { "kind" : "IdResult" },
   1109         { "kind" : "IdRef",        "name" : "'Pointer'" },
   1110         { "kind" : "StorageClass", "name" : "'Storage'" }
   1111       ],
   1112       "capabilities" : [ "Kernel" ]
   1113     },
   1114     {
   1115       "opname" : "OpBitcast",
   1116       "opcode" : 124,
   1117       "operands" : [
   1118         { "kind" : "IdResultType" },
   1119         { "kind" : "IdResult" },
   1120         { "kind" : "IdRef",        "name" : "'Operand'" }
   1121       ]
   1122     },
   1123     {
   1124       "opname" : "OpSNegate",
   1125       "opcode" : 126,
   1126       "operands" : [
   1127         { "kind" : "IdResultType" },
   1128         { "kind" : "IdResult" },
   1129         { "kind" : "IdRef",        "name" : "'Operand'" }
   1130       ]
   1131     },
   1132     {
   1133       "opname" : "OpFNegate",
   1134       "opcode" : 127,
   1135       "operands" : [
   1136         { "kind" : "IdResultType" },
   1137         { "kind" : "IdResult" },
   1138         { "kind" : "IdRef",        "name" : "'Operand'" }
   1139       ]
   1140     },
   1141     {
   1142       "opname" : "OpIAdd",
   1143       "opcode" : 128,
   1144       "operands" : [
   1145         { "kind" : "IdResultType" },
   1146         { "kind" : "IdResult" },
   1147         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1148         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1149       ]
   1150     },
   1151     {
   1152       "opname" : "OpFAdd",
   1153       "opcode" : 129,
   1154       "operands" : [
   1155         { "kind" : "IdResultType" },
   1156         { "kind" : "IdResult" },
   1157         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1158         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1159       ]
   1160     },
   1161     {
   1162       "opname" : "OpISub",
   1163       "opcode" : 130,
   1164       "operands" : [
   1165         { "kind" : "IdResultType" },
   1166         { "kind" : "IdResult" },
   1167         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1168         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1169       ]
   1170     },
   1171     {
   1172       "opname" : "OpFSub",
   1173       "opcode" : 131,
   1174       "operands" : [
   1175         { "kind" : "IdResultType" },
   1176         { "kind" : "IdResult" },
   1177         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1178         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1179       ]
   1180     },
   1181     {
   1182       "opname" : "OpIMul",
   1183       "opcode" : 132,
   1184       "operands" : [
   1185         { "kind" : "IdResultType" },
   1186         { "kind" : "IdResult" },
   1187         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1188         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1189       ]
   1190     },
   1191     {
   1192       "opname" : "OpFMul",
   1193       "opcode" : 133,
   1194       "operands" : [
   1195         { "kind" : "IdResultType" },
   1196         { "kind" : "IdResult" },
   1197         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1198         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1199       ]
   1200     },
   1201     {
   1202       "opname" : "OpUDiv",
   1203       "opcode" : 134,
   1204       "operands" : [
   1205         { "kind" : "IdResultType" },
   1206         { "kind" : "IdResult" },
   1207         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1208         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1209       ]
   1210     },
   1211     {
   1212       "opname" : "OpSDiv",
   1213       "opcode" : 135,
   1214       "operands" : [
   1215         { "kind" : "IdResultType" },
   1216         { "kind" : "IdResult" },
   1217         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1218         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1219       ]
   1220     },
   1221     {
   1222       "opname" : "OpFDiv",
   1223       "opcode" : 136,
   1224       "operands" : [
   1225         { "kind" : "IdResultType" },
   1226         { "kind" : "IdResult" },
   1227         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1228         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1229       ]
   1230     },
   1231     {
   1232       "opname" : "OpUMod",
   1233       "opcode" : 137,
   1234       "operands" : [
   1235         { "kind" : "IdResultType" },
   1236         { "kind" : "IdResult" },
   1237         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1238         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1239       ]
   1240     },
   1241     {
   1242       "opname" : "OpSRem",
   1243       "opcode" : 138,
   1244       "operands" : [
   1245         { "kind" : "IdResultType" },
   1246         { "kind" : "IdResult" },
   1247         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1248         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1249       ]
   1250     },
   1251     {
   1252       "opname" : "OpSMod",
   1253       "opcode" : 139,
   1254       "operands" : [
   1255         { "kind" : "IdResultType" },
   1256         { "kind" : "IdResult" },
   1257         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1258         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1259       ]
   1260     },
   1261     {
   1262       "opname" : "OpFRem",
   1263       "opcode" : 140,
   1264       "operands" : [
   1265         { "kind" : "IdResultType" },
   1266         { "kind" : "IdResult" },
   1267         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1268         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1269       ]
   1270     },
   1271     {
   1272       "opname" : "OpFMod",
   1273       "opcode" : 141,
   1274       "operands" : [
   1275         { "kind" : "IdResultType" },
   1276         { "kind" : "IdResult" },
   1277         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1278         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1279       ]
   1280     },
   1281     {
   1282       "opname" : "OpVectorTimesScalar",
   1283       "opcode" : 142,
   1284       "operands" : [
   1285         { "kind" : "IdResultType" },
   1286         { "kind" : "IdResult" },
   1287         { "kind" : "IdRef",        "name" : "'Vector'" },
   1288         { "kind" : "IdRef",        "name" : "'Scalar'" }
   1289       ]
   1290     },
   1291     {
   1292       "opname" : "OpMatrixTimesScalar",
   1293       "opcode" : 143,
   1294       "operands" : [
   1295         { "kind" : "IdResultType" },
   1296         { "kind" : "IdResult" },
   1297         { "kind" : "IdRef",        "name" : "'Matrix'" },
   1298         { "kind" : "IdRef",        "name" : "'Scalar'" }
   1299       ],
   1300       "capabilities" : [ "Matrix" ]
   1301     },
   1302     {
   1303       "opname" : "OpVectorTimesMatrix",
   1304       "opcode" : 144,
   1305       "operands" : [
   1306         { "kind" : "IdResultType" },
   1307         { "kind" : "IdResult" },
   1308         { "kind" : "IdRef",        "name" : "'Vector'" },
   1309         { "kind" : "IdRef",        "name" : "'Matrix'" }
   1310       ],
   1311       "capabilities" : [ "Matrix" ]
   1312     },
   1313     {
   1314       "opname" : "OpMatrixTimesVector",
   1315       "opcode" : 145,
   1316       "operands" : [
   1317         { "kind" : "IdResultType" },
   1318         { "kind" : "IdResult" },
   1319         { "kind" : "IdRef",        "name" : "'Matrix'" },
   1320         { "kind" : "IdRef",        "name" : "'Vector'" }
   1321       ],
   1322       "capabilities" : [ "Matrix" ]
   1323     },
   1324     {
   1325       "opname" : "OpMatrixTimesMatrix",
   1326       "opcode" : 146,
   1327       "operands" : [
   1328         { "kind" : "IdResultType" },
   1329         { "kind" : "IdResult" },
   1330         { "kind" : "IdRef",        "name" : "'LeftMatrix'" },
   1331         { "kind" : "IdRef",        "name" : "'RightMatrix'" }
   1332       ],
   1333       "capabilities" : [ "Matrix" ]
   1334     },
   1335     {
   1336       "opname" : "OpOuterProduct",
   1337       "opcode" : 147,
   1338       "operands" : [
   1339         { "kind" : "IdResultType" },
   1340         { "kind" : "IdResult" },
   1341         { "kind" : "IdRef",        "name" : "'Vector 1'" },
   1342         { "kind" : "IdRef",        "name" : "'Vector 2'" }
   1343       ],
   1344       "capabilities" : [ "Matrix" ]
   1345     },
   1346     {
   1347       "opname" : "OpDot",
   1348       "opcode" : 148,
   1349       "operands" : [
   1350         { "kind" : "IdResultType" },
   1351         { "kind" : "IdResult" },
   1352         { "kind" : "IdRef",        "name" : "'Vector 1'" },
   1353         { "kind" : "IdRef",        "name" : "'Vector 2'" }
   1354       ]
   1355     },
   1356     {
   1357       "opname" : "OpIAddCarry",
   1358       "opcode" : 149,
   1359       "operands" : [
   1360         { "kind" : "IdResultType" },
   1361         { "kind" : "IdResult" },
   1362         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1363         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1364       ]
   1365     },
   1366     {
   1367       "opname" : "OpISubBorrow",
   1368       "opcode" : 150,
   1369       "operands" : [
   1370         { "kind" : "IdResultType" },
   1371         { "kind" : "IdResult" },
   1372         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1373         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1374       ]
   1375     },
   1376     {
   1377       "opname" : "OpUMulExtended",
   1378       "opcode" : 151,
   1379       "operands" : [
   1380         { "kind" : "IdResultType" },
   1381         { "kind" : "IdResult" },
   1382         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1383         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1384       ]
   1385     },
   1386     {
   1387       "opname" : "OpSMulExtended",
   1388       "opcode" : 152,
   1389       "operands" : [
   1390         { "kind" : "IdResultType" },
   1391         { "kind" : "IdResult" },
   1392         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1393         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1394       ]
   1395     },
   1396     {
   1397       "opname" : "OpAny",
   1398       "opcode" : 154,
   1399       "operands" : [
   1400         { "kind" : "IdResultType" },
   1401         { "kind" : "IdResult" },
   1402         { "kind" : "IdRef",        "name" : "'Vector'" }
   1403       ]
   1404     },
   1405     {
   1406       "opname" : "OpAll",
   1407       "opcode" : 155,
   1408       "operands" : [
   1409         { "kind" : "IdResultType" },
   1410         { "kind" : "IdResult" },
   1411         { "kind" : "IdRef",        "name" : "'Vector'" }
   1412       ]
   1413     },
   1414     {
   1415       "opname" : "OpIsNan",
   1416       "opcode" : 156,
   1417       "operands" : [
   1418         { "kind" : "IdResultType" },
   1419         { "kind" : "IdResult" },
   1420         { "kind" : "IdRef",        "name" : "'x'" }
   1421       ]
   1422     },
   1423     {
   1424       "opname" : "OpIsInf",
   1425       "opcode" : 157,
   1426       "operands" : [
   1427         { "kind" : "IdResultType" },
   1428         { "kind" : "IdResult" },
   1429         { "kind" : "IdRef",        "name" : "'x'" }
   1430       ]
   1431     },
   1432     {
   1433       "opname" : "OpIsFinite",
   1434       "opcode" : 158,
   1435       "operands" : [
   1436         { "kind" : "IdResultType" },
   1437         { "kind" : "IdResult" },
   1438         { "kind" : "IdRef",        "name" : "'x'" }
   1439       ],
   1440       "capabilities" : [ "Kernel" ]
   1441     },
   1442     {
   1443       "opname" : "OpIsNormal",
   1444       "opcode" : 159,
   1445       "operands" : [
   1446         { "kind" : "IdResultType" },
   1447         { "kind" : "IdResult" },
   1448         { "kind" : "IdRef",        "name" : "'x'" }
   1449       ],
   1450       "capabilities" : [ "Kernel" ]
   1451     },
   1452     {
   1453       "opname" : "OpSignBitSet",
   1454       "opcode" : 160,
   1455       "operands" : [
   1456         { "kind" : "IdResultType" },
   1457         { "kind" : "IdResult" },
   1458         { "kind" : "IdRef",        "name" : "'x'" }
   1459       ],
   1460       "capabilities" : [ "Kernel" ]
   1461     },
   1462     {
   1463       "opname" : "OpLessOrGreater",
   1464       "opcode" : 161,
   1465       "operands" : [
   1466         { "kind" : "IdResultType" },
   1467         { "kind" : "IdResult" },
   1468         { "kind" : "IdRef",        "name" : "'x'" },
   1469         { "kind" : "IdRef",        "name" : "'y'" }
   1470       ],
   1471       "capabilities" : [ "Kernel" ]
   1472     },
   1473     {
   1474       "opname" : "OpOrdered",
   1475       "opcode" : 162,
   1476       "operands" : [
   1477         { "kind" : "IdResultType" },
   1478         { "kind" : "IdResult" },
   1479         { "kind" : "IdRef",        "name" : "'x'" },
   1480         { "kind" : "IdRef",        "name" : "'y'" }
   1481       ],
   1482       "capabilities" : [ "Kernel" ]
   1483     },
   1484     {
   1485       "opname" : "OpUnordered",
   1486       "opcode" : 163,
   1487       "operands" : [
   1488         { "kind" : "IdResultType" },
   1489         { "kind" : "IdResult" },
   1490         { "kind" : "IdRef",        "name" : "'x'" },
   1491         { "kind" : "IdRef",        "name" : "'y'" }
   1492       ],
   1493       "capabilities" : [ "Kernel" ]
   1494     },
   1495     {
   1496       "opname" : "OpLogicalEqual",
   1497       "opcode" : 164,
   1498       "operands" : [
   1499         { "kind" : "IdResultType" },
   1500         { "kind" : "IdResult" },
   1501         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1502         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1503       ]
   1504     },
   1505     {
   1506       "opname" : "OpLogicalNotEqual",
   1507       "opcode" : 165,
   1508       "operands" : [
   1509         { "kind" : "IdResultType" },
   1510         { "kind" : "IdResult" },
   1511         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1512         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1513       ]
   1514     },
   1515     {
   1516       "opname" : "OpLogicalOr",
   1517       "opcode" : 166,
   1518       "operands" : [
   1519         { "kind" : "IdResultType" },
   1520         { "kind" : "IdResult" },
   1521         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1522         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1523       ]
   1524     },
   1525     {
   1526       "opname" : "OpLogicalAnd",
   1527       "opcode" : 167,
   1528       "operands" : [
   1529         { "kind" : "IdResultType" },
   1530         { "kind" : "IdResult" },
   1531         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1532         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1533       ]
   1534     },
   1535     {
   1536       "opname" : "OpLogicalNot",
   1537       "opcode" : 168,
   1538       "operands" : [
   1539         { "kind" : "IdResultType" },
   1540         { "kind" : "IdResult" },
   1541         { "kind" : "IdRef",        "name" : "'Operand'" }
   1542       ]
   1543     },
   1544     {
   1545       "opname" : "OpSelect",
   1546       "opcode" : 169,
   1547       "operands" : [
   1548         { "kind" : "IdResultType" },
   1549         { "kind" : "IdResult" },
   1550         { "kind" : "IdRef",        "name" : "'Condition'" },
   1551         { "kind" : "IdRef",        "name" : "'Object 1'" },
   1552         { "kind" : "IdRef",        "name" : "'Object 2'" }
   1553       ]
   1554     },
   1555     {
   1556       "opname" : "OpIEqual",
   1557       "opcode" : 170,
   1558       "operands" : [
   1559         { "kind" : "IdResultType" },
   1560         { "kind" : "IdResult" },
   1561         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1562         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1563       ]
   1564     },
   1565     {
   1566       "opname" : "OpINotEqual",
   1567       "opcode" : 171,
   1568       "operands" : [
   1569         { "kind" : "IdResultType" },
   1570         { "kind" : "IdResult" },
   1571         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1572         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1573       ]
   1574     },
   1575     {
   1576       "opname" : "OpUGreaterThan",
   1577       "opcode" : 172,
   1578       "operands" : [
   1579         { "kind" : "IdResultType" },
   1580         { "kind" : "IdResult" },
   1581         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1582         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1583       ]
   1584     },
   1585     {
   1586       "opname" : "OpSGreaterThan",
   1587       "opcode" : 173,
   1588       "operands" : [
   1589         { "kind" : "IdResultType" },
   1590         { "kind" : "IdResult" },
   1591         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1592         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1593       ]
   1594     },
   1595     {
   1596       "opname" : "OpUGreaterThanEqual",
   1597       "opcode" : 174,
   1598       "operands" : [
   1599         { "kind" : "IdResultType" },
   1600         { "kind" : "IdResult" },
   1601         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1602         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1603       ]
   1604     },
   1605     {
   1606       "opname" : "OpSGreaterThanEqual",
   1607       "opcode" : 175,
   1608       "operands" : [
   1609         { "kind" : "IdResultType" },
   1610         { "kind" : "IdResult" },
   1611         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1612         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1613       ]
   1614     },
   1615     {
   1616       "opname" : "OpULessThan",
   1617       "opcode" : 176,
   1618       "operands" : [
   1619         { "kind" : "IdResultType" },
   1620         { "kind" : "IdResult" },
   1621         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1622         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1623       ]
   1624     },
   1625     {
   1626       "opname" : "OpSLessThan",
   1627       "opcode" : 177,
   1628       "operands" : [
   1629         { "kind" : "IdResultType" },
   1630         { "kind" : "IdResult" },
   1631         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1632         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1633       ]
   1634     },
   1635     {
   1636       "opname" : "OpULessThanEqual",
   1637       "opcode" : 178,
   1638       "operands" : [
   1639         { "kind" : "IdResultType" },
   1640         { "kind" : "IdResult" },
   1641         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1642         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1643       ]
   1644     },
   1645     {
   1646       "opname" : "OpSLessThanEqual",
   1647       "opcode" : 179,
   1648       "operands" : [
   1649         { "kind" : "IdResultType" },
   1650         { "kind" : "IdResult" },
   1651         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1652         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1653       ]
   1654     },
   1655     {
   1656       "opname" : "OpFOrdEqual",
   1657       "opcode" : 180,
   1658       "operands" : [
   1659         { "kind" : "IdResultType" },
   1660         { "kind" : "IdResult" },
   1661         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1662         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1663       ]
   1664     },
   1665     {
   1666       "opname" : "OpFUnordEqual",
   1667       "opcode" : 181,
   1668       "operands" : [
   1669         { "kind" : "IdResultType" },
   1670         { "kind" : "IdResult" },
   1671         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1672         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1673       ]
   1674     },
   1675     {
   1676       "opname" : "OpFOrdNotEqual",
   1677       "opcode" : 182,
   1678       "operands" : [
   1679         { "kind" : "IdResultType" },
   1680         { "kind" : "IdResult" },
   1681         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1682         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1683       ]
   1684     },
   1685     {
   1686       "opname" : "OpFUnordNotEqual",
   1687       "opcode" : 183,
   1688       "operands" : [
   1689         { "kind" : "IdResultType" },
   1690         { "kind" : "IdResult" },
   1691         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1692         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1693       ]
   1694     },
   1695     {
   1696       "opname" : "OpFOrdLessThan",
   1697       "opcode" : 184,
   1698       "operands" : [
   1699         { "kind" : "IdResultType" },
   1700         { "kind" : "IdResult" },
   1701         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1702         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1703       ]
   1704     },
   1705     {
   1706       "opname" : "OpFUnordLessThan",
   1707       "opcode" : 185,
   1708       "operands" : [
   1709         { "kind" : "IdResultType" },
   1710         { "kind" : "IdResult" },
   1711         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1712         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1713       ]
   1714     },
   1715     {
   1716       "opname" : "OpFOrdGreaterThan",
   1717       "opcode" : 186,
   1718       "operands" : [
   1719         { "kind" : "IdResultType" },
   1720         { "kind" : "IdResult" },
   1721         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1722         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1723       ]
   1724     },
   1725     {
   1726       "opname" : "OpFUnordGreaterThan",
   1727       "opcode" : 187,
   1728       "operands" : [
   1729         { "kind" : "IdResultType" },
   1730         { "kind" : "IdResult" },
   1731         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1732         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1733       ]
   1734     },
   1735     {
   1736       "opname" : "OpFOrdLessThanEqual",
   1737       "opcode" : 188,
   1738       "operands" : [
   1739         { "kind" : "IdResultType" },
   1740         { "kind" : "IdResult" },
   1741         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1742         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1743       ]
   1744     },
   1745     {
   1746       "opname" : "OpFUnordLessThanEqual",
   1747       "opcode" : 189,
   1748       "operands" : [
   1749         { "kind" : "IdResultType" },
   1750         { "kind" : "IdResult" },
   1751         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1752         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1753       ]
   1754     },
   1755     {
   1756       "opname" : "OpFOrdGreaterThanEqual",
   1757       "opcode" : 190,
   1758       "operands" : [
   1759         { "kind" : "IdResultType" },
   1760         { "kind" : "IdResult" },
   1761         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1762         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1763       ]
   1764     },
   1765     {
   1766       "opname" : "OpFUnordGreaterThanEqual",
   1767       "opcode" : 191,
   1768       "operands" : [
   1769         { "kind" : "IdResultType" },
   1770         { "kind" : "IdResult" },
   1771         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1772         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1773       ]
   1774     },
   1775     {
   1776       "opname" : "OpShiftRightLogical",
   1777       "opcode" : 194,
   1778       "operands" : [
   1779         { "kind" : "IdResultType" },
   1780         { "kind" : "IdResult" },
   1781         { "kind" : "IdRef",        "name" : "'Base'" },
   1782         { "kind" : "IdRef",        "name" : "'Shift'" }
   1783       ]
   1784     },
   1785     {
   1786       "opname" : "OpShiftRightArithmetic",
   1787       "opcode" : 195,
   1788       "operands" : [
   1789         { "kind" : "IdResultType" },
   1790         { "kind" : "IdResult" },
   1791         { "kind" : "IdRef",        "name" : "'Base'" },
   1792         { "kind" : "IdRef",        "name" : "'Shift'" }
   1793       ]
   1794     },
   1795     {
   1796       "opname" : "OpShiftLeftLogical",
   1797       "opcode" : 196,
   1798       "operands" : [
   1799         { "kind" : "IdResultType" },
   1800         { "kind" : "IdResult" },
   1801         { "kind" : "IdRef",        "name" : "'Base'" },
   1802         { "kind" : "IdRef",        "name" : "'Shift'" }
   1803       ]
   1804     },
   1805     {
   1806       "opname" : "OpBitwiseOr",
   1807       "opcode" : 197,
   1808       "operands" : [
   1809         { "kind" : "IdResultType" },
   1810         { "kind" : "IdResult" },
   1811         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1812         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1813       ]
   1814     },
   1815     {
   1816       "opname" : "OpBitwiseXor",
   1817       "opcode" : 198,
   1818       "operands" : [
   1819         { "kind" : "IdResultType" },
   1820         { "kind" : "IdResult" },
   1821         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1822         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1823       ]
   1824     },
   1825     {
   1826       "opname" : "OpBitwiseAnd",
   1827       "opcode" : 199,
   1828       "operands" : [
   1829         { "kind" : "IdResultType" },
   1830         { "kind" : "IdResult" },
   1831         { "kind" : "IdRef",        "name" : "'Operand 1'" },
   1832         { "kind" : "IdRef",        "name" : "'Operand 2'" }
   1833       ]
   1834     },
   1835     {
   1836       "opname" : "OpNot",
   1837       "opcode" : 200,
   1838       "operands" : [
   1839         { "kind" : "IdResultType" },
   1840         { "kind" : "IdResult" },
   1841         { "kind" : "IdRef",        "name" : "'Operand'" }
   1842       ]
   1843     },
   1844     {
   1845       "opname" : "OpBitFieldInsert",
   1846       "opcode" : 201,
   1847       "operands" : [
   1848         { "kind" : "IdResultType" },
   1849         { "kind" : "IdResult" },
   1850         { "kind" : "IdRef",        "name" : "'Base'" },
   1851         { "kind" : "IdRef",        "name" : "'Insert'" },
   1852         { "kind" : "IdRef",        "name" : "'Offset'" },
   1853         { "kind" : "IdRef",        "name" : "'Count'" }
   1854       ],
   1855       "capabilities" : [ "Shader" ]
   1856     },
   1857     {
   1858       "opname" : "OpBitFieldSExtract",
   1859       "opcode" : 202,
   1860       "operands" : [
   1861         { "kind" : "IdResultType" },
   1862         { "kind" : "IdResult" },
   1863         { "kind" : "IdRef",        "name" : "'Base'" },
   1864         { "kind" : "IdRef",        "name" : "'Offset'" },
   1865         { "kind" : "IdRef",        "name" : "'Count'" }
   1866       ],
   1867       "capabilities" : [ "Shader" ]
   1868     },
   1869     {
   1870       "opname" : "OpBitFieldUExtract",
   1871       "opcode" : 203,
   1872       "operands" : [
   1873         { "kind" : "IdResultType" },
   1874         { "kind" : "IdResult" },
   1875         { "kind" : "IdRef",        "name" : "'Base'" },
   1876         { "kind" : "IdRef",        "name" : "'Offset'" },
   1877         { "kind" : "IdRef",        "name" : "'Count'" }
   1878       ],
   1879       "capabilities" : [ "Shader" ]
   1880     },
   1881     {
   1882       "opname" : "OpBitReverse",
   1883       "opcode" : 204,
   1884       "operands" : [
   1885         { "kind" : "IdResultType" },
   1886         { "kind" : "IdResult" },
   1887         { "kind" : "IdRef",        "name" : "'Base'" }
   1888       ],
   1889       "capabilities" : [ "Shader" ]
   1890     },
   1891     {
   1892       "opname" : "OpBitCount",
   1893       "opcode" : 205,
   1894       "operands" : [
   1895         { "kind" : "IdResultType" },
   1896         { "kind" : "IdResult" },
   1897         { "kind" : "IdRef",        "name" : "'Base'" }
   1898       ]
   1899     },
   1900     {
   1901       "opname" : "OpDPdx",
   1902       "opcode" : 207,
   1903       "operands" : [
   1904         { "kind" : "IdResultType" },
   1905         { "kind" : "IdResult" },
   1906         { "kind" : "IdRef",        "name" : "'P'" }
   1907       ],
   1908       "capabilities" : [ "Shader" ]
   1909     },
   1910     {
   1911       "opname" : "OpDPdy",
   1912       "opcode" : 208,
   1913       "operands" : [
   1914         { "kind" : "IdResultType" },
   1915         { "kind" : "IdResult" },
   1916         { "kind" : "IdRef",        "name" : "'P'" }
   1917       ],
   1918       "capabilities" : [ "Shader" ]
   1919     },
   1920     {
   1921       "opname" : "OpFwidth",
   1922       "opcode" : 209,
   1923       "operands" : [
   1924         { "kind" : "IdResultType" },
   1925         { "kind" : "IdResult" },
   1926         { "kind" : "IdRef",        "name" : "'P'" }
   1927       ],
   1928       "capabilities" : [ "Shader" ]
   1929     },
   1930     {
   1931       "opname" : "OpDPdxFine",
   1932       "opcode" : 210,
   1933       "operands" : [
   1934         { "kind" : "IdResultType" },
   1935         { "kind" : "IdResult" },
   1936         { "kind" : "IdRef",        "name" : "'P'" }
   1937       ],
   1938       "capabilities" : [ "DerivativeControl" ]
   1939     },
   1940     {
   1941       "opname" : "OpDPdyFine",
   1942       "opcode" : 211,
   1943       "operands" : [
   1944         { "kind" : "IdResultType" },
   1945         { "kind" : "IdResult" },
   1946         { "kind" : "IdRef",        "name" : "'P'" }
   1947       ],
   1948       "capabilities" : [ "DerivativeControl" ]
   1949     },
   1950     {
   1951       "opname" : "OpFwidthFine",
   1952       "opcode" : 212,
   1953       "operands" : [
   1954         { "kind" : "IdResultType" },
   1955         { "kind" : "IdResult" },
   1956         { "kind" : "IdRef",        "name" : "'P'" }
   1957       ],
   1958       "capabilities" : [ "DerivativeControl" ]
   1959     },
   1960     {
   1961       "opname" : "OpDPdxCoarse",
   1962       "opcode" : 213,
   1963       "operands" : [
   1964         { "kind" : "IdResultType" },
   1965         { "kind" : "IdResult" },
   1966         { "kind" : "IdRef",        "name" : "'P'" }
   1967       ],
   1968       "capabilities" : [ "DerivativeControl" ]
   1969     },
   1970     {
   1971       "opname" : "OpDPdyCoarse",
   1972       "opcode" : 214,
   1973       "operands" : [
   1974         { "kind" : "IdResultType" },
   1975         { "kind" : "IdResult" },
   1976         { "kind" : "IdRef",        "name" : "'P'" }
   1977       ],
   1978       "capabilities" : [ "DerivativeControl" ]
   1979     },
   1980     {
   1981       "opname" : "OpFwidthCoarse",
   1982       "opcode" : 215,
   1983       "operands" : [
   1984         { "kind" : "IdResultType" },
   1985         { "kind" : "IdResult" },
   1986         { "kind" : "IdRef",        "name" : "'P'" }
   1987       ],
   1988       "capabilities" : [ "DerivativeControl" ]
   1989     },
   1990     {
   1991       "opname" : "OpEmitVertex",
   1992       "opcode" : 218,
   1993       "capabilities" : [ "Geometry" ]
   1994     },
   1995     {
   1996       "opname" : "OpEndPrimitive",
   1997       "opcode" : 219,
   1998       "capabilities" : [ "Geometry" ]
   1999     },
   2000     {
   2001       "opname" : "OpEmitStreamVertex",
   2002       "opcode" : 220,
   2003       "operands" : [
   2004         { "kind" : "IdRef", "name" : "'Stream'" }
   2005       ],
   2006       "capabilities" : [ "GeometryStreams" ]
   2007     },
   2008     {
   2009       "opname" : "OpEndStreamPrimitive",
   2010       "opcode" : 221,
   2011       "operands" : [
   2012         { "kind" : "IdRef", "name" : "'Stream'" }
   2013       ],
   2014       "capabilities" : [ "GeometryStreams" ]
   2015     },
   2016     {
   2017       "opname" : "OpControlBarrier",
   2018       "opcode" : 224,
   2019       "operands" : [
   2020         { "kind" : "IdScope",           "name" : "'Execution'" },
   2021         { "kind" : "IdScope",           "name" : "'Memory'" },
   2022         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2023       ]
   2024     },
   2025     {
   2026       "opname" : "OpMemoryBarrier",
   2027       "opcode" : 225,
   2028       "operands" : [
   2029         { "kind" : "IdScope",           "name" : "'Memory'" },
   2030         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2031       ]
   2032     },
   2033     {
   2034       "opname" : "OpAtomicLoad",
   2035       "opcode" : 227,
   2036       "operands" : [
   2037         { "kind" : "IdResultType" },
   2038         { "kind" : "IdResult" },
   2039         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2040         { "kind" : "IdScope",           "name" : "'Scope'" },
   2041         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2042       ]
   2043     },
   2044     {
   2045       "opname" : "OpAtomicStore",
   2046       "opcode" : 228,
   2047       "operands" : [
   2048         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2049         { "kind" : "IdScope",           "name" : "'Scope'" },
   2050         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2051         { "kind" : "IdRef",             "name" : "'Value'" }
   2052       ]
   2053     },
   2054     {
   2055       "opname" : "OpAtomicExchange",
   2056       "opcode" : 229,
   2057       "operands" : [
   2058         { "kind" : "IdResultType" },
   2059         { "kind" : "IdResult" },
   2060         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2061         { "kind" : "IdScope",           "name" : "'Scope'" },
   2062         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2063         { "kind" : "IdRef",             "name" : "'Value'" }
   2064       ]
   2065     },
   2066     {
   2067       "opname" : "OpAtomicCompareExchange",
   2068       "opcode" : 230,
   2069       "operands" : [
   2070         { "kind" : "IdResultType" },
   2071         { "kind" : "IdResult" },
   2072         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2073         { "kind" : "IdScope",           "name" : "'Scope'" },
   2074         { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
   2075         { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
   2076         { "kind" : "IdRef",             "name" : "'Value'" },
   2077         { "kind" : "IdRef",             "name" : "'Comparator'" }
   2078       ]
   2079     },
   2080     {
   2081       "opname" : "OpAtomicCompareExchangeWeak",
   2082       "opcode" : 231,
   2083       "operands" : [
   2084         { "kind" : "IdResultType" },
   2085         { "kind" : "IdResult" },
   2086         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2087         { "kind" : "IdScope",           "name" : "'Scope'" },
   2088         { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
   2089         { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
   2090         { "kind" : "IdRef",             "name" : "'Value'" },
   2091         { "kind" : "IdRef",             "name" : "'Comparator'" }
   2092       ],
   2093       "capabilities" : [ "Kernel" ]
   2094     },
   2095     {
   2096       "opname" : "OpAtomicIIncrement",
   2097       "opcode" : 232,
   2098       "operands" : [
   2099         { "kind" : "IdResultType" },
   2100         { "kind" : "IdResult" },
   2101         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2102         { "kind" : "IdScope",           "name" : "'Scope'" },
   2103         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2104       ]
   2105     },
   2106     {
   2107       "opname" : "OpAtomicIDecrement",
   2108       "opcode" : 233,
   2109       "operands" : [
   2110         { "kind" : "IdResultType" },
   2111         { "kind" : "IdResult" },
   2112         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2113         { "kind" : "IdScope",           "name" : "'Scope'" },
   2114         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2115       ]
   2116     },
   2117     {
   2118       "opname" : "OpAtomicIAdd",
   2119       "opcode" : 234,
   2120       "operands" : [
   2121         { "kind" : "IdResultType" },
   2122         { "kind" : "IdResult" },
   2123         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2124         { "kind" : "IdScope",           "name" : "'Scope'" },
   2125         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2126         { "kind" : "IdRef",             "name" : "'Value'" }
   2127       ]
   2128     },
   2129     {
   2130       "opname" : "OpAtomicISub",
   2131       "opcode" : 235,
   2132       "operands" : [
   2133         { "kind" : "IdResultType" },
   2134         { "kind" : "IdResult" },
   2135         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2136         { "kind" : "IdScope",           "name" : "'Scope'" },
   2137         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2138         { "kind" : "IdRef",             "name" : "'Value'" }
   2139       ]
   2140     },
   2141     {
   2142       "opname" : "OpAtomicSMin",
   2143       "opcode" : 236,
   2144       "operands" : [
   2145         { "kind" : "IdResultType" },
   2146         { "kind" : "IdResult" },
   2147         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2148         { "kind" : "IdScope",           "name" : "'Scope'" },
   2149         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2150         { "kind" : "IdRef",             "name" : "'Value'" }
   2151       ]
   2152     },
   2153     {
   2154       "opname" : "OpAtomicUMin",
   2155       "opcode" : 237,
   2156       "operands" : [
   2157         { "kind" : "IdResultType" },
   2158         { "kind" : "IdResult" },
   2159         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2160         { "kind" : "IdScope",           "name" : "'Scope'" },
   2161         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2162         { "kind" : "IdRef",             "name" : "'Value'" }
   2163       ]
   2164     },
   2165     {
   2166       "opname" : "OpAtomicSMax",
   2167       "opcode" : 238,
   2168       "operands" : [
   2169         { "kind" : "IdResultType" },
   2170         { "kind" : "IdResult" },
   2171         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2172         { "kind" : "IdScope",           "name" : "'Scope'" },
   2173         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2174         { "kind" : "IdRef",             "name" : "'Value'" }
   2175       ]
   2176     },
   2177     {
   2178       "opname" : "OpAtomicUMax",
   2179       "opcode" : 239,
   2180       "operands" : [
   2181         { "kind" : "IdResultType" },
   2182         { "kind" : "IdResult" },
   2183         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2184         { "kind" : "IdScope",           "name" : "'Scope'" },
   2185         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2186         { "kind" : "IdRef",             "name" : "'Value'" }
   2187       ]
   2188     },
   2189     {
   2190       "opname" : "OpAtomicAnd",
   2191       "opcode" : 240,
   2192       "operands" : [
   2193         { "kind" : "IdResultType" },
   2194         { "kind" : "IdResult" },
   2195         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2196         { "kind" : "IdScope",           "name" : "'Scope'" },
   2197         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2198         { "kind" : "IdRef",             "name" : "'Value'" }
   2199       ]
   2200     },
   2201     {
   2202       "opname" : "OpAtomicOr",
   2203       "opcode" : 241,
   2204       "operands" : [
   2205         { "kind" : "IdResultType" },
   2206         { "kind" : "IdResult" },
   2207         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2208         { "kind" : "IdScope",           "name" : "'Scope'" },
   2209         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2210         { "kind" : "IdRef",             "name" : "'Value'" }
   2211       ]
   2212     },
   2213     {
   2214       "opname" : "OpAtomicXor",
   2215       "opcode" : 242,
   2216       "operands" : [
   2217         { "kind" : "IdResultType" },
   2218         { "kind" : "IdResult" },
   2219         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2220         { "kind" : "IdScope",           "name" : "'Scope'" },
   2221         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
   2222         { "kind" : "IdRef",             "name" : "'Value'" }
   2223       ]
   2224     },
   2225     {
   2226       "opname" : "OpPhi",
   2227       "opcode" : 245,
   2228       "operands" : [
   2229         { "kind" : "IdResultType" },
   2230         { "kind" : "IdResult" },
   2231         { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
   2232       ]
   2233     },
   2234     {
   2235       "opname" : "OpLoopMerge",
   2236       "opcode" : 246,
   2237       "operands" : [
   2238         { "kind" : "IdRef",       "name" : "'Merge Block'" },
   2239         { "kind" : "IdRef",       "name" : "'Continue Target'" },
   2240         { "kind" : "LoopControl" }
   2241       ]
   2242     },
   2243     {
   2244       "opname" : "OpSelectionMerge",
   2245       "opcode" : 247,
   2246       "operands" : [
   2247         { "kind" : "IdRef",            "name" : "'Merge Block'" },
   2248         { "kind" : "SelectionControl" }
   2249       ]
   2250     },
   2251     {
   2252       "opname" : "OpLabel",
   2253       "opcode" : 248,
   2254       "operands" : [
   2255         { "kind" : "IdResult" }
   2256       ]
   2257     },
   2258     {
   2259       "opname" : "OpBranch",
   2260       "opcode" : 249,
   2261       "operands" : [
   2262         { "kind" : "IdRef", "name" : "'Target Label'" }
   2263       ]
   2264     },
   2265     {
   2266       "opname" : "OpBranchConditional",
   2267       "opcode" : 250,
   2268       "operands" : [
   2269         { "kind" : "IdRef",                              "name" : "'Condition'" },
   2270         { "kind" : "IdRef",                              "name" : "'True Label'" },
   2271         { "kind" : "IdRef",                              "name" : "'False Label'" },
   2272         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
   2273       ]
   2274     },
   2275     {
   2276       "opname" : "OpSwitch",
   2277       "opcode" : 251,
   2278       "operands" : [
   2279         { "kind" : "IdRef",                                       "name" : "'Selector'" },
   2280         { "kind" : "IdRef",                                       "name" : "'Default'" },
   2281         { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
   2282       ]
   2283     },
   2284     {
   2285       "opname" : "OpKill",
   2286       "opcode" : 252,
   2287       "capabilities" : [ "Shader" ]
   2288     },
   2289     {
   2290       "opname" : "OpReturn",
   2291       "opcode" : 253
   2292     },
   2293     {
   2294       "opname" : "OpReturnValue",
   2295       "opcode" : 254,
   2296       "operands" : [
   2297         { "kind" : "IdRef", "name" : "'Value'" }
   2298       ]
   2299     },
   2300     {
   2301       "opname" : "OpUnreachable",
   2302       "opcode" : 255
   2303     },
   2304     {
   2305       "opname" : "OpLifetimeStart",
   2306       "opcode" : 256,
   2307       "operands" : [
   2308         { "kind" : "IdRef",          "name" : "'Pointer'" },
   2309         { "kind" : "LiteralInteger", "name" : "'Size'" }
   2310       ],
   2311       "capabilities" : [ "Kernel" ]
   2312     },
   2313     {
   2314       "opname" : "OpLifetimeStop",
   2315       "opcode" : 257,
   2316       "operands" : [
   2317         { "kind" : "IdRef",          "name" : "'Pointer'" },
   2318         { "kind" : "LiteralInteger", "name" : "'Size'" }
   2319       ],
   2320       "capabilities" : [ "Kernel" ]
   2321     },
   2322     {
   2323       "opname" : "OpGroupAsyncCopy",
   2324       "opcode" : 259,
   2325       "operands" : [
   2326         { "kind" : "IdResultType" },
   2327         { "kind" : "IdResult" },
   2328         { "kind" : "IdScope",      "name" : "'Execution'" },
   2329         { "kind" : "IdRef",        "name" : "'Destination'" },
   2330         { "kind" : "IdRef",        "name" : "'Source'" },
   2331         { "kind" : "IdRef",        "name" : "'Num Elements'" },
   2332         { "kind" : "IdRef",        "name" : "'Stride'" },
   2333         { "kind" : "IdRef",        "name" : "'Event'" }
   2334       ],
   2335       "capabilities" : [ "Kernel" ]
   2336     },
   2337     {
   2338       "opname" : "OpGroupWaitEvents",
   2339       "opcode" : 260,
   2340       "operands" : [
   2341         { "kind" : "IdScope", "name" : "'Execution'" },
   2342         { "kind" : "IdRef",   "name" : "'Num Events'" },
   2343         { "kind" : "IdRef",   "name" : "'Events List'" }
   2344       ],
   2345       "capabilities" : [ "Kernel" ]
   2346     },
   2347     {
   2348       "opname" : "OpGroupAll",
   2349       "opcode" : 261,
   2350       "operands" : [
   2351         { "kind" : "IdResultType" },
   2352         { "kind" : "IdResult" },
   2353         { "kind" : "IdScope",      "name" : "'Execution'" },
   2354         { "kind" : "IdRef",        "name" : "'Predicate'" }
   2355       ],
   2356       "capabilities" : [ "Groups" ]
   2357     },
   2358     {
   2359       "opname" : "OpGroupAny",
   2360       "opcode" : 262,
   2361       "operands" : [
   2362         { "kind" : "IdResultType" },
   2363         { "kind" : "IdResult" },
   2364         { "kind" : "IdScope",      "name" : "'Execution'" },
   2365         { "kind" : "IdRef",        "name" : "'Predicate'" }
   2366       ],
   2367       "capabilities" : [ "Groups" ]
   2368     },
   2369     {
   2370       "opname" : "OpGroupBroadcast",
   2371       "opcode" : 263,
   2372       "operands" : [
   2373         { "kind" : "IdResultType" },
   2374         { "kind" : "IdResult" },
   2375         { "kind" : "IdScope",      "name" : "'Execution'" },
   2376         { "kind" : "IdRef",        "name" : "'Value'" },
   2377         { "kind" : "IdRef",        "name" : "'LocalId'" }
   2378       ],
   2379       "capabilities" : [ "Groups" ]
   2380     },
   2381     {
   2382       "opname" : "OpGroupIAdd",
   2383       "opcode" : 264,
   2384       "operands" : [
   2385         { "kind" : "IdResultType" },
   2386         { "kind" : "IdResult" },
   2387         { "kind" : "IdScope",        "name" : "'Execution'" },
   2388         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2389         { "kind" : "IdRef",          "name" : "'X'" }
   2390       ],
   2391       "capabilities" : [ "Groups" ]
   2392     },
   2393     {
   2394       "opname" : "OpGroupFAdd",
   2395       "opcode" : 265,
   2396       "operands" : [
   2397         { "kind" : "IdResultType" },
   2398         { "kind" : "IdResult" },
   2399         { "kind" : "IdScope",        "name" : "'Execution'" },
   2400         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2401         { "kind" : "IdRef",          "name" : "'X'" }
   2402       ],
   2403       "capabilities" : [ "Groups" ]
   2404     },
   2405     {
   2406       "opname" : "OpGroupFMin",
   2407       "opcode" : 266,
   2408       "operands" : [
   2409         { "kind" : "IdResultType" },
   2410         { "kind" : "IdResult" },
   2411         { "kind" : "IdScope",        "name" : "'Execution'" },
   2412         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2413         { "kind" : "IdRef",          "name" : "'X'" }
   2414       ],
   2415       "capabilities" : [ "Groups" ]
   2416     },
   2417     {
   2418       "opname" : "OpGroupUMin",
   2419       "opcode" : 267,
   2420       "operands" : [
   2421         { "kind" : "IdResultType" },
   2422         { "kind" : "IdResult" },
   2423         { "kind" : "IdScope",        "name" : "'Execution'" },
   2424         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2425         { "kind" : "IdRef",          "name" : "'X'" }
   2426       ],
   2427       "capabilities" : [ "Groups" ]
   2428     },
   2429     {
   2430       "opname" : "OpGroupSMin",
   2431       "opcode" : 268,
   2432       "operands" : [
   2433         { "kind" : "IdResultType" },
   2434         { "kind" : "IdResult" },
   2435         { "kind" : "IdScope",        "name" : "'Execution'" },
   2436         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2437         { "kind" : "IdRef",          "name" : "'X'" }
   2438       ],
   2439       "capabilities" : [ "Groups" ]
   2440     },
   2441     {
   2442       "opname" : "OpGroupFMax",
   2443       "opcode" : 269,
   2444       "operands" : [
   2445         { "kind" : "IdResultType" },
   2446         { "kind" : "IdResult" },
   2447         { "kind" : "IdScope",        "name" : "'Execution'" },
   2448         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2449         { "kind" : "IdRef",          "name" : "'X'" }
   2450       ],
   2451       "capabilities" : [ "Groups" ]
   2452     },
   2453     {
   2454       "opname" : "OpGroupUMax",
   2455       "opcode" : 270,
   2456       "operands" : [
   2457         { "kind" : "IdResultType" },
   2458         { "kind" : "IdResult" },
   2459         { "kind" : "IdScope",        "name" : "'Execution'" },
   2460         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2461         { "kind" : "IdRef",          "name" : "'X'" }
   2462       ],
   2463       "capabilities" : [ "Groups" ]
   2464     },
   2465     {
   2466       "opname" : "OpGroupSMax",
   2467       "opcode" : 271,
   2468       "operands" : [
   2469         { "kind" : "IdResultType" },
   2470         { "kind" : "IdResult" },
   2471         { "kind" : "IdScope",        "name" : "'Execution'" },
   2472         { "kind" : "GroupOperation", "name" : "'Operation'" },
   2473         { "kind" : "IdRef",          "name" : "'X'" }
   2474       ],
   2475       "capabilities" : [ "Groups" ]
   2476     },
   2477     {
   2478       "opname" : "OpReadPipe",
   2479       "opcode" : 274,
   2480       "operands" : [
   2481         { "kind" : "IdResultType" },
   2482         { "kind" : "IdResult" },
   2483         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2484         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2485         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2486         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2487       ],
   2488       "capabilities" : [ "Pipes" ]
   2489     },
   2490     {
   2491       "opname" : "OpWritePipe",
   2492       "opcode" : 275,
   2493       "operands" : [
   2494         { "kind" : "IdResultType" },
   2495         { "kind" : "IdResult" },
   2496         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2497         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2498         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2499         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2500       ],
   2501       "capabilities" : [ "Pipes" ]
   2502     },
   2503     {
   2504       "opname" : "OpReservedReadPipe",
   2505       "opcode" : 276,
   2506       "operands" : [
   2507         { "kind" : "IdResultType" },
   2508         { "kind" : "IdResult" },
   2509         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2510         { "kind" : "IdRef",        "name" : "'Reserve Id'" },
   2511         { "kind" : "IdRef",        "name" : "'Index'" },
   2512         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2513         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2514         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2515       ],
   2516       "capabilities" : [ "Pipes" ]
   2517     },
   2518     {
   2519       "opname" : "OpReservedWritePipe",
   2520       "opcode" : 277,
   2521       "operands" : [
   2522         { "kind" : "IdResultType" },
   2523         { "kind" : "IdResult" },
   2524         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2525         { "kind" : "IdRef",        "name" : "'Reserve Id'" },
   2526         { "kind" : "IdRef",        "name" : "'Index'" },
   2527         { "kind" : "IdRef",        "name" : "'Pointer'" },
   2528         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2529         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2530       ],
   2531       "capabilities" : [ "Pipes" ]
   2532     },
   2533     {
   2534       "opname" : "OpReserveReadPipePackets",
   2535       "opcode" : 278,
   2536       "operands" : [
   2537         { "kind" : "IdResultType" },
   2538         { "kind" : "IdResult" },
   2539         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2540         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2541         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2542         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2543       ],
   2544       "capabilities" : [ "Pipes" ]
   2545     },
   2546     {
   2547       "opname" : "OpReserveWritePipePackets",
   2548       "opcode" : 279,
   2549       "operands" : [
   2550         { "kind" : "IdResultType" },
   2551         { "kind" : "IdResult" },
   2552         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2553         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2554         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2555         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2556       ],
   2557       "capabilities" : [ "Pipes" ]
   2558     },
   2559     {
   2560       "opname" : "OpCommitReadPipe",
   2561       "opcode" : 280,
   2562       "operands" : [
   2563         { "kind" : "IdRef", "name" : "'Pipe'" },
   2564         { "kind" : "IdRef", "name" : "'Reserve Id'" },
   2565         { "kind" : "IdRef", "name" : "'Packet Size'" },
   2566         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
   2567       ],
   2568       "capabilities" : [ "Pipes" ]
   2569     },
   2570     {
   2571       "opname" : "OpCommitWritePipe",
   2572       "opcode" : 281,
   2573       "operands" : [
   2574         { "kind" : "IdRef", "name" : "'Pipe'" },
   2575         { "kind" : "IdRef", "name" : "'Reserve Id'" },
   2576         { "kind" : "IdRef", "name" : "'Packet Size'" },
   2577         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
   2578       ],
   2579       "capabilities" : [ "Pipes" ]
   2580     },
   2581     {
   2582       "opname" : "OpIsValidReserveId",
   2583       "opcode" : 282,
   2584       "operands" : [
   2585         { "kind" : "IdResultType" },
   2586         { "kind" : "IdResult" },
   2587         { "kind" : "IdRef",        "name" : "'Reserve Id'" }
   2588       ],
   2589       "capabilities" : [ "Pipes" ]
   2590     },
   2591     {
   2592       "opname" : "OpGetNumPipePackets",
   2593       "opcode" : 283,
   2594       "operands" : [
   2595         { "kind" : "IdResultType" },
   2596         { "kind" : "IdResult" },
   2597         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2598         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2599         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2600       ],
   2601       "capabilities" : [ "Pipes" ]
   2602     },
   2603     {
   2604       "opname" : "OpGetMaxPipePackets",
   2605       "opcode" : 284,
   2606       "operands" : [
   2607         { "kind" : "IdResultType" },
   2608         { "kind" : "IdResult" },
   2609         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2610         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2611         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2612       ],
   2613       "capabilities" : [ "Pipes" ]
   2614     },
   2615     {
   2616       "opname" : "OpGroupReserveReadPipePackets",
   2617       "opcode" : 285,
   2618       "operands" : [
   2619         { "kind" : "IdResultType" },
   2620         { "kind" : "IdResult" },
   2621         { "kind" : "IdScope",      "name" : "'Execution'" },
   2622         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2623         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2624         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2625         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2626       ],
   2627       "capabilities" : [ "Pipes" ]
   2628     },
   2629     {
   2630       "opname" : "OpGroupReserveWritePipePackets",
   2631       "opcode" : 286,
   2632       "operands" : [
   2633         { "kind" : "IdResultType" },
   2634         { "kind" : "IdResult" },
   2635         { "kind" : "IdScope",      "name" : "'Execution'" },
   2636         { "kind" : "IdRef",        "name" : "'Pipe'" },
   2637         { "kind" : "IdRef",        "name" : "'Num Packets'" },
   2638         { "kind" : "IdRef",        "name" : "'Packet Size'" },
   2639         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
   2640       ],
   2641       "capabilities" : [ "Pipes" ]
   2642     },
   2643     {
   2644       "opname" : "OpGroupCommitReadPipe",
   2645       "opcode" : 287,
   2646       "operands" : [
   2647         { "kind" : "IdScope", "name" : "'Execution'" },
   2648         { "kind" : "IdRef",   "name" : "'Pipe'" },
   2649         { "kind" : "IdRef",   "name" : "'Reserve Id'" },
   2650         { "kind" : "IdRef",   "name" : "'Packet Size'" },
   2651         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
   2652       ],
   2653       "capabilities" : [ "Pipes" ]
   2654     },
   2655     {
   2656       "opname" : "OpGroupCommitWritePipe",
   2657       "opcode" : 288,
   2658       "operands" : [
   2659         { "kind" : "IdScope", "name" : "'Execution'" },
   2660         { "kind" : "IdRef",   "name" : "'Pipe'" },
   2661         { "kind" : "IdRef",   "name" : "'Reserve Id'" },
   2662         { "kind" : "IdRef",   "name" : "'Packet Size'" },
   2663         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
   2664       ],
   2665       "capabilities" : [ "Pipes" ]
   2666     },
   2667     {
   2668       "opname" : "OpEnqueueMarker",
   2669       "opcode" : 291,
   2670       "operands" : [
   2671         { "kind" : "IdResultType" },
   2672         { "kind" : "IdResult" },
   2673         { "kind" : "IdRef",        "name" : "'Queue'" },
   2674         { "kind" : "IdRef",        "name" : "'Num Events'" },
   2675         { "kind" : "IdRef",        "name" : "'Wait Events'" },
   2676         { "kind" : "IdRef",        "name" : "'Ret Event'" }
   2677       ],
   2678       "capabilities" : [ "DeviceEnqueue" ]
   2679     },
   2680     {
   2681       "opname" : "OpEnqueueKernel",
   2682       "opcode" : 292,
   2683       "operands" : [
   2684         { "kind" : "IdResultType" },
   2685         { "kind" : "IdResult" },
   2686         { "kind" : "IdRef",                            "name" : "'Queue'" },
   2687         { "kind" : "IdRef",                            "name" : "'Flags'" },
   2688         { "kind" : "IdRef",                            "name" : "'ND Range'" },
   2689         { "kind" : "IdRef",                            "name" : "'Num Events'" },
   2690         { "kind" : "IdRef",                            "name" : "'Wait Events'" },
   2691         { "kind" : "IdRef",                            "name" : "'Ret Event'" },
   2692         { "kind" : "IdRef",                            "name" : "'Invoke'" },
   2693         { "kind" : "IdRef",                            "name" : "'Param'" },
   2694         { "kind" : "IdRef",                            "name" : "'Param Size'" },
   2695         { "kind" : "IdRef",                            "name" : "'Param Align'" },
   2696         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Local Size'" }
   2697       ],
   2698       "capabilities" : [ "DeviceEnqueue" ]
   2699     },
   2700     {
   2701       "opname" : "OpGetKernelNDrangeSubGroupCount",
   2702       "opcode" : 293,
   2703       "operands" : [
   2704         { "kind" : "IdResultType" },
   2705         { "kind" : "IdResult" },
   2706         { "kind" : "IdRef",        "name" : "'ND Range'" },
   2707         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2708         { "kind" : "IdRef",        "name" : "'Param'" },
   2709         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2710         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2711       ],
   2712       "capabilities" : [ "DeviceEnqueue" ]
   2713     },
   2714     {
   2715       "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
   2716       "opcode" : 294,
   2717       "operands" : [
   2718         { "kind" : "IdResultType" },
   2719         { "kind" : "IdResult" },
   2720         { "kind" : "IdRef",        "name" : "'ND Range'" },
   2721         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2722         { "kind" : "IdRef",        "name" : "'Param'" },
   2723         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2724         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2725       ],
   2726       "capabilities" : [ "DeviceEnqueue" ]
   2727     },
   2728     {
   2729       "opname" : "OpGetKernelWorkGroupSize",
   2730       "opcode" : 295,
   2731       "operands" : [
   2732         { "kind" : "IdResultType" },
   2733         { "kind" : "IdResult" },
   2734         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2735         { "kind" : "IdRef",        "name" : "'Param'" },
   2736         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2737         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2738       ],
   2739       "capabilities" : [ "DeviceEnqueue" ]
   2740     },
   2741     {
   2742       "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
   2743       "opcode" : 296,
   2744       "operands" : [
   2745         { "kind" : "IdResultType" },
   2746         { "kind" : "IdResult" },
   2747         { "kind" : "IdRef",        "name" : "'Invoke'" },
   2748         { "kind" : "IdRef",        "name" : "'Param'" },
   2749         { "kind" : "IdRef",        "name" : "'Param Size'" },
   2750         { "kind" : "IdRef",        "name" : "'Param Align'" }
   2751       ],
   2752       "capabilities" : [ "DeviceEnqueue" ]
   2753     },
   2754     {
   2755       "opname" : "OpRetainEvent",
   2756       "opcode" : 297,
   2757       "operands" : [
   2758         { "kind" : "IdRef", "name" : "'Event'" }
   2759       ],
   2760       "capabilities" : [ "DeviceEnqueue" ]
   2761     },
   2762     {
   2763       "opname" : "OpReleaseEvent",
   2764       "opcode" : 298,
   2765       "operands" : [
   2766         { "kind" : "IdRef", "name" : "'Event'" }
   2767       ],
   2768       "capabilities" : [ "DeviceEnqueue" ]
   2769     },
   2770     {
   2771       "opname" : "OpCreateUserEvent",
   2772       "opcode" : 299,
   2773       "operands" : [
   2774         { "kind" : "IdResultType" },
   2775         { "kind" : "IdResult" }
   2776       ],
   2777       "capabilities" : [ "DeviceEnqueue" ]
   2778     },
   2779     {
   2780       "opname" : "OpIsValidEvent",
   2781       "opcode" : 300,
   2782       "operands" : [
   2783         { "kind" : "IdResultType" },
   2784         { "kind" : "IdResult" },
   2785         { "kind" : "IdRef",        "name" : "'Event'" }
   2786       ],
   2787       "capabilities" : [ "DeviceEnqueue" ]
   2788     },
   2789     {
   2790       "opname" : "OpSetUserEventStatus",
   2791       "opcode" : 301,
   2792       "operands" : [
   2793         { "kind" : "IdRef", "name" : "'Event'" },
   2794         { "kind" : "IdRef", "name" : "'Status'" }
   2795       ],
   2796       "capabilities" : [ "DeviceEnqueue" ]
   2797     },
   2798     {
   2799       "opname" : "OpCaptureEventProfilingInfo",
   2800       "opcode" : 302,
   2801       "operands" : [
   2802         { "kind" : "IdRef", "name" : "'Event'" },
   2803         { "kind" : "IdRef", "name" : "'Profiling Info'" },
   2804         { "kind" : "IdRef", "name" : "'Value'" }
   2805       ],
   2806       "capabilities" : [ "DeviceEnqueue" ]
   2807     },
   2808     {
   2809       "opname" : "OpGetDefaultQueue",
   2810       "opcode" : 303,
   2811       "operands" : [
   2812         { "kind" : "IdResultType" },
   2813         { "kind" : "IdResult" }
   2814       ],
   2815       "capabilities" : [ "DeviceEnqueue" ]
   2816     },
   2817     {
   2818       "opname" : "OpBuildNDRange",
   2819       "opcode" : 304,
   2820       "operands" : [
   2821         { "kind" : "IdResultType" },
   2822         { "kind" : "IdResult" },
   2823         { "kind" : "IdRef",        "name" : "'GlobalWorkSize'" },
   2824         { "kind" : "IdRef",        "name" : "'LocalWorkSize'" },
   2825         { "kind" : "IdRef",        "name" : "'GlobalWorkOffset'" }
   2826       ],
   2827       "capabilities" : [ "DeviceEnqueue" ]
   2828     },
   2829     {
   2830       "opname" : "OpImageSparseSampleImplicitLod",
   2831       "opcode" : 305,
   2832       "operands" : [
   2833         { "kind" : "IdResultType" },
   2834         { "kind" : "IdResult" },
   2835         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2836         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2837         { "kind" : "ImageOperands", "quantifier" : "?" }
   2838       ],
   2839       "capabilities" : [ "SparseResidency" ]
   2840     },
   2841     {
   2842       "opname" : "OpImageSparseSampleExplicitLod",
   2843       "opcode" : 306,
   2844       "operands" : [
   2845         { "kind" : "IdResultType" },
   2846         { "kind" : "IdResult" },
   2847         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2848         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2849         { "kind" : "ImageOperands" }
   2850       ],
   2851       "capabilities" : [ "SparseResidency" ]
   2852     },
   2853     {
   2854       "opname" : "OpImageSparseSampleDrefImplicitLod",
   2855       "opcode" : 307,
   2856       "operands" : [
   2857         { "kind" : "IdResultType" },
   2858         { "kind" : "IdResult" },
   2859         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2860         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2861         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2862         { "kind" : "ImageOperands", "quantifier" : "?" }
   2863       ],
   2864       "capabilities" : [ "SparseResidency" ]
   2865     },
   2866     {
   2867       "opname" : "OpImageSparseSampleDrefExplicitLod",
   2868       "opcode" : 308,
   2869       "operands" : [
   2870         { "kind" : "IdResultType" },
   2871         { "kind" : "IdResult" },
   2872         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2873         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2874         { "kind" : "IdRef",         "name" : "'D~ref~'" },
   2875         { "kind" : "ImageOperands" }
   2876       ],
   2877       "capabilities" : [ "SparseResidency" ]
   2878     },
   2879     {
   2880       "opname" : "OpImageSparseSampleProjImplicitLod",
   2881       "opcode" : 309,
   2882       "operands" : [
   2883         { "kind" : "IdResultType" },
   2884         { "kind" : "IdResult" },
   2885         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2886         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2887         { "kind" : "ImageOperands", "quantifier" : "?" }
   2888       ],
   2889       "capabilities" : [ "SparseResidency" ]
   2890     },
   2891     {
   2892       "opname" : "OpImageSparseSampleProjExplicitLod",
   2893       "opcode" : 310,
   2894       "operands" : [
   2895         { "kind" : "IdResultType" },
   2896         { "kind" : "IdResult" },
   2897         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2898         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2899         { "kind" : "ImageOperands" }
   2900       ],
   2901       "capabilities" : [ "SparseResidency" ]
   2902     },
   2903     {
   2904       "opname" : "OpImageSparseSampleProjDrefImplicitLod",
   2905       "opcode" : 311,
   2906       "operands" : [
   2907         { "kind" : "IdResultType" },
   2908         { "kind" : "IdResult" },
   2909         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2910         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2911         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2912         { "kind" : "ImageOperands", "quantifier" : "?" }
   2913       ],
   2914       "capabilities" : [ "SparseResidency" ]
   2915     },
   2916     {
   2917       "opname" : "OpImageSparseSampleProjDrefExplicitLod",
   2918       "opcode" : 312,
   2919       "operands" : [
   2920         { "kind" : "IdResultType" },
   2921         { "kind" : "IdResult" },
   2922         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2923         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2924         { "kind" : "IdRef",         "name" : "'D~ref~'" },
   2925         { "kind" : "ImageOperands" }
   2926       ],
   2927       "capabilities" : [ "SparseResidency" ]
   2928     },
   2929     {
   2930       "opname" : "OpImageSparseFetch",
   2931       "opcode" : 313,
   2932       "operands" : [
   2933         { "kind" : "IdResultType" },
   2934         { "kind" : "IdResult" },
   2935         { "kind" : "IdRef",                             "name" : "'Image'" },
   2936         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2937         { "kind" : "ImageOperands", "quantifier" : "?" }
   2938       ],
   2939       "capabilities" : [ "SparseResidency" ]
   2940     },
   2941     {
   2942       "opname" : "OpImageSparseGather",
   2943       "opcode" : 314,
   2944       "operands" : [
   2945         { "kind" : "IdResultType" },
   2946         { "kind" : "IdResult" },
   2947         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2948         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2949         { "kind" : "IdRef",                             "name" : "'Component'" },
   2950         { "kind" : "ImageOperands", "quantifier" : "?" }
   2951       ],
   2952       "capabilities" : [ "SparseResidency" ]
   2953     },
   2954     {
   2955       "opname" : "OpImageSparseDrefGather",
   2956       "opcode" : 315,
   2957       "operands" : [
   2958         { "kind" : "IdResultType" },
   2959         { "kind" : "IdResult" },
   2960         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2961         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2962         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2963         { "kind" : "ImageOperands", "quantifier" : "?" }
   2964       ],
   2965       "capabilities" : [ "SparseResidency" ]
   2966     },
   2967     {
   2968       "opname" : "OpImageSparseTexelsResident",
   2969       "opcode" : 316,
   2970       "operands" : [
   2971         { "kind" : "IdResultType" },
   2972         { "kind" : "IdResult" },
   2973         { "kind" : "IdRef",        "name" : "'Resident Code'" }
   2974       ],
   2975       "capabilities" : [ "SparseResidency" ]
   2976     },
   2977     {
   2978       "opname" : "OpNoLine",
   2979       "opcode" : 317
   2980     },
   2981     {
   2982       "opname" : "OpAtomicFlagTestAndSet",
   2983       "opcode" : 318,
   2984       "operands" : [
   2985         { "kind" : "IdResultType" },
   2986         { "kind" : "IdResult" },
   2987         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2988         { "kind" : "IdScope",           "name" : "'Scope'" },
   2989         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2990       ],
   2991       "capabilities" : [ "Kernel" ]
   2992     },
   2993     {
   2994       "opname" : "OpAtomicFlagClear",
   2995       "opcode" : 319,
   2996       "operands" : [
   2997         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2998         { "kind" : "IdScope",           "name" : "'Scope'" },
   2999         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3000       ],
   3001       "capabilities" : [ "Kernel" ]
   3002     },
   3003     {
   3004       "opname" : "OpImageSparseRead",
   3005       "opcode" : 320,
   3006       "operands" : [
   3007         { "kind" : "IdResultType" },
   3008         { "kind" : "IdResult" },
   3009         { "kind" : "IdRef",                             "name" : "'Image'" },
   3010         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   3011         { "kind" : "ImageOperands", "quantifier" : "?" }
   3012       ],
   3013       "capabilities" : [ "SparseResidency" ]
   3014     },
   3015     {
   3016       "opname" : "OpSizeOf",
   3017       "opcode" : 321,
   3018       "operands" : [
   3019         { "kind" : "IdResultType" },
   3020         { "kind" : "IdResult" },
   3021         { "kind" : "IdRef",        "name" : "'Pointer'" }
   3022       ],
   3023       "capabilities" : [ "Addresses" ]
   3024     },
   3025     {
   3026       "opname" : "OpTypePipeStorage",
   3027       "opcode" : 322,
   3028       "operands" : [
   3029         { "kind" : "IdResult" }
   3030       ],
   3031       "capabilities" : [ "PipeStorage" ]
   3032     },
   3033     {
   3034       "opname" : "OpConstantPipeStorage",
   3035       "opcode" : 323,
   3036       "operands" : [
   3037         { "kind" : "IdResultType" },
   3038         { "kind" : "IdResult" },
   3039         { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
   3040         { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
   3041         { "kind" : "LiteralInteger", "name" : "'Capacity'" }
   3042       ],
   3043       "capabilities" : [ "PipeStorage" ]
   3044     },
   3045     {
   3046       "opname" : "OpCreatePipeFromPipeStorage",
   3047       "opcode" : 324,
   3048       "operands" : [
   3049         { "kind" : "IdResultType" },
   3050         { "kind" : "IdResult" },
   3051         { "kind" : "IdRef",        "name" : "'Pipe Storage'" }
   3052       ],
   3053       "capabilities" : [ "PipeStorage" ]
   3054     },
   3055     {
   3056       "opname" : "OpGetKernelLocalSizeForSubgroupCount",
   3057       "opcode" : 325,
   3058       "operands" : [
   3059         { "kind" : "IdResultType" },
   3060         { "kind" : "IdResult" },
   3061         { "kind" : "IdRef",        "name" : "'Subgroup Count'" },
   3062         { "kind" : "IdRef",        "name" : "'Invoke'" },
   3063         { "kind" : "IdRef",        "name" : "'Param'" },
   3064         { "kind" : "IdRef",        "name" : "'Param Size'" },
   3065         { "kind" : "IdRef",        "name" : "'Param Align'" }
   3066       ],
   3067       "capabilities" : [ "SubgroupDispatch" ]
   3068     },
   3069     {
   3070       "opname" : "OpGetKernelMaxNumSubgroups",
   3071       "opcode" : 326,
   3072       "operands" : [
   3073         { "kind" : "IdResultType" },
   3074         { "kind" : "IdResult" },
   3075         { "kind" : "IdRef",        "name" : "'Invoke'" },
   3076         { "kind" : "IdRef",        "name" : "'Param'" },
   3077         { "kind" : "IdRef",        "name" : "'Param Size'" },
   3078         { "kind" : "IdRef",        "name" : "'Param Align'" }
   3079       ],
   3080       "capabilities" : [ "SubgroupDispatch" ]
   3081     },
   3082     {
   3083       "opname" : "OpTypeNamedBarrier",
   3084       "opcode" : 327,
   3085       "operands" : [
   3086         { "kind" : "IdResult" }
   3087       ],
   3088       "capabilities" : [ "NamedBarrier" ]
   3089     },
   3090     {
   3091       "opname" : "OpNamedBarrierInitialize",
   3092       "opcode" : 328,
   3093       "operands" : [
   3094         { "kind" : "IdResultType" },
   3095         { "kind" : "IdResult" },
   3096         { "kind" : "IdRef",        "name" : "'Subgroup Count'" }
   3097       ],
   3098       "capabilities" : [ "NamedBarrier" ]
   3099     },
   3100     {
   3101       "opname" : "OpMemoryNamedBarrier",
   3102       "opcode" : 329,
   3103       "operands" : [
   3104         { "kind" : "IdRef",             "name" : "'Named Barrier'" },
   3105         { "kind" : "IdScope",           "name" : "'Memory'" },
   3106         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3107       ],
   3108       "capabilities" : [ "NamedBarrier" ]
   3109     },
   3110     {
   3111       "opname" : "OpModuleProcessed",
   3112       "opcode" : 330,
   3113       "operands" : [
   3114         { "kind" : "LiteralString", "name" : "'Process'" }
   3115       ]
   3116     },
   3117     {
   3118       "opname" : "OpExecutionModeId",
   3119       "opcode" : 331,
   3120       "operands" : [
   3121         { "kind" : "IdRef",           "name" : "'Entry Point'" },
   3122         { "kind" : "ExecutionMode",   "name" : "'Mode'" }
   3123       ]
   3124     },
   3125     {
   3126       "opname" : "OpDecorateId",
   3127       "opcode" : 332,
   3128       "operands" : [
   3129         { "kind" : "IdRef",      "name" : "'Target'" },
   3130         { "kind" : "Decoration" }
   3131       ]
   3132     },
   3133     {
   3134       "opname" : "OpSubgroupBallotKHR",
   3135       "opcode" : 4421,
   3136       "operands" : [
   3137         { "kind" : "IdResultType" },
   3138         { "kind" : "IdResult" },
   3139         { "kind" : "IdRef", "name" : "'Predicate'" }
   3140       ],
   3141       "capabilities" : [ "SubgroupBallotKHR" ]
   3142     },
   3143     {
   3144       "opname" : "OpSubgroupFirstInvocationKHR",
   3145       "opcode" : 4422,
   3146       "operands" : [
   3147         { "kind" : "IdResultType" },
   3148         { "kind" : "IdResult" },
   3149         { "kind" : "IdRef", "name" : "'Value'" }
   3150       ],
   3151       "capabilities" : [ "SubgroupBallotKHR" ]
   3152     },
   3153     {
   3154       "opname" : "OpSubgroupAllKHR",
   3155       "opcode" : 4428,
   3156       "operands" : [
   3157         { "kind" : "IdResultType" },
   3158         { "kind" : "IdResult" },
   3159         { "kind" : "IdRef", "name" : "'Predicate'" }
   3160       ],
   3161       "capabilities" : [ "SubgroupVoteKHR" ]
   3162     },
   3163     {
   3164       "opname" : "OpSubgroupAnyKHR",
   3165       "opcode" : 4429,
   3166       "operands" : [
   3167         { "kind" : "IdResultType" },
   3168         { "kind" : "IdResult" },
   3169         { "kind" : "IdRef", "name" : "'Predicate'" }
   3170       ],
   3171       "capabilities" : [ "SubgroupVoteKHR" ]
   3172     },
   3173     {
   3174       "opname" : "OpSubgroupAllEqualKHR",
   3175       "opcode" : 4430,
   3176       "operands" : [
   3177         { "kind" : "IdResultType" },
   3178         { "kind" : "IdResult" },
   3179         { "kind" : "IdRef", "name" : "'Predicate'" }
   3180       ],
   3181       "capabilities" : [ "SubgroupVoteKHR" ]
   3182     },
   3183     {
   3184       "opname" : "OpSubgroupReadInvocationKHR",
   3185       "opcode" : 4432,
   3186       "operands" : [
   3187         { "kind" : "IdResultType" },
   3188         { "kind" : "IdResult" },
   3189         { "kind" : "IdRef", "name" : "'Value'" },
   3190         { "kind" : "IdRef", "name" : "'Index'" }
   3191       ],
   3192       "capabilities" : [ "SubgroupBallotKHR" ]
   3193     },
   3194     {
   3195       "opname" : "OpGroupIAddNonUniformAMD",
   3196       "opcode" : 5000,
   3197       "operands" : [
   3198         { "kind" : "IdResultType" },
   3199         { "kind" : "IdResult" },
   3200         { "kind" : "IdScope",        "name" : "'Execution'" },
   3201         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3202         { "kind" : "IdRef",          "name" : "'X'" }
   3203       ],
   3204       "capabilities" : [ "Groups" ]
   3205     },
   3206     {
   3207       "opname" : "OpGroupFAddNonUniformAMD",
   3208       "opcode" : 5001,
   3209       "operands" : [
   3210         { "kind" : "IdResultType" },
   3211         { "kind" : "IdResult" },
   3212         { "kind" : "IdScope",        "name" : "'Execution'" },
   3213         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3214         { "kind" : "IdRef",          "name" : "'X'" }
   3215       ],
   3216       "capabilities" : [ "Groups" ]
   3217     },
   3218     {
   3219       "opname" : "OpGroupFMinNonUniformAMD",
   3220       "opcode" : 5002,
   3221       "operands" : [
   3222         { "kind" : "IdResultType" },
   3223         { "kind" : "IdResult" },
   3224         { "kind" : "IdScope",        "name" : "'Execution'" },
   3225         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3226         { "kind" : "IdRef",          "name" : "'X'" }
   3227       ],
   3228       "capabilities" : [ "Groups" ]
   3229     },
   3230     {
   3231       "opname" : "OpGroupUMinNonUniformAMD",
   3232       "opcode" : 5003,
   3233       "operands" : [
   3234         { "kind" : "IdResultType" },
   3235         { "kind" : "IdResult" },
   3236         { "kind" : "IdScope",        "name" : "'Execution'" },
   3237         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3238         { "kind" : "IdRef",          "name" : "'X'" }
   3239       ],
   3240       "capabilities" : [ "Groups" ]
   3241     },
   3242     {
   3243       "opname" : "OpGroupSMinNonUniformAMD",
   3244       "opcode" : 5004,
   3245       "operands" : [
   3246         { "kind" : "IdResultType" },
   3247         { "kind" : "IdResult" },
   3248         { "kind" : "IdScope",        "name" : "'Execution'" },
   3249         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3250         { "kind" : "IdRef",          "name" : "'X'" }
   3251       ],
   3252       "capabilities" : [ "Groups" ]
   3253     },
   3254     {
   3255       "opname" : "OpGroupFMaxNonUniformAMD",
   3256       "opcode" : 5005,
   3257       "operands" : [
   3258         { "kind" : "IdResultType" },
   3259         { "kind" : "IdResult" },
   3260         { "kind" : "IdScope",        "name" : "'Execution'" },
   3261         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3262         { "kind" : "IdRef",          "name" : "'X'" }
   3263       ],
   3264       "capabilities" : [ "Groups" ]
   3265     },
   3266     {
   3267       "opname" : "OpGroupUMaxNonUniformAMD",
   3268       "opcode" : 5006,
   3269       "operands" : [
   3270         { "kind" : "IdResultType" },
   3271         { "kind" : "IdResult" },
   3272         { "kind" : "IdScope",        "name" : "'Execution'" },
   3273         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3274         { "kind" : "IdRef",          "name" : "'X'" }
   3275       ],
   3276       "capabilities" : [ "Groups" ]
   3277     },
   3278     {
   3279       "opname" : "OpGroupSMaxNonUniformAMD",
   3280       "opcode" : 5007,
   3281       "operands" : [
   3282         { "kind" : "IdResultType" },
   3283         { "kind" : "IdResult" },
   3284         { "kind" : "IdScope",        "name" : "'Execution'" },
   3285         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3286         { "kind" : "IdRef",          "name" : "'X'" }
   3287       ],
   3288       "capabilities" : [ "Groups" ]
   3289     },
   3290     {
   3291       "opname" : "OpFragmentMaskFetchAMD",
   3292       "opcode" : 5011,
   3293       "operands" : [
   3294         { "kind" : "IdResultType" },
   3295         { "kind" : "IdResult" },
   3296         { "kind" : "IdRef", "name" : "'Image'" },
   3297         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3298       ],
   3299       "capabilities" : [ "FragmentMaskAMD" ]
   3300     },
   3301     {
   3302       "opname" : "OpFragmentFetchAMD",
   3303       "opcode" : 5012,
   3304       "operands" : [
   3305         { "kind" : "IdResultType" },
   3306         { "kind" : "IdResult" },
   3307         { "kind" : "IdRef", "name" : "'Image'" },
   3308         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3309         { "kind" : "IdRef", "name" : "'Fragment Index'" }
   3310       ],
   3311       "capabilities" : [ "FragmentMaskAMD" ]
   3312     },
   3313     {
   3314       "opname" : "OpSubgroupShuffleINTEL",
   3315       "opcode" : 5571,
   3316       "operands" : [
   3317         { "kind" : "IdResultType" },
   3318         { "kind" : "IdResult" },
   3319         { "kind" : "IdRef", "name" : "'Data'" },
   3320         { "kind" : "IdRef", "name" : "'InvocationId'" }
   3321       ],
   3322       "capabilities" : [ "SubgroupShuffleINTEL" ]
   3323     },
   3324     {
   3325       "opname" : "OpSubgroupShuffleDownINTEL",
   3326       "opcode" : 5572,
   3327       "operands" : [
   3328         { "kind" : "IdResultType" },
   3329         { "kind" : "IdResult" },
   3330         { "kind" : "IdRef", "name" : "'Current'" },
   3331         { "kind" : "IdRef", "name" : "'Next'" },
   3332         { "kind" : "IdRef", "name" : "'Delta'" }
   3333       ],
   3334       "capabilities" : [ "SubgroupShuffleINTEL" ]
   3335     },
   3336     {
   3337       "opname" : "OpSubgroupShuffleUpINTEL",
   3338       "opcode" : 5573,
   3339       "operands" : [
   3340         { "kind" : "IdResultType" },
   3341         { "kind" : "IdResult" },
   3342         { "kind" : "IdRef", "name" : "'Previous'" },
   3343         { "kind" : "IdRef", "name" : "'Current'" },
   3344         { "kind" : "IdRef", "name" : "'Delta'" }
   3345       ],
   3346       "capabilities" : [ "SubgroupShuffleINTEL" ]
   3347     },
   3348     {
   3349       "opname" : "OpSubgroupShuffleXorINTEL",
   3350       "opcode" : 5574,
   3351       "operands" : [
   3352         { "kind" : "IdResultType" },
   3353         { "kind" : "IdResult" },
   3354         { "kind" : "IdRef", "name" : "'Data'" },
   3355         { "kind" : "IdRef", "name" : "'Value'" }
   3356       ],
   3357       "capabilities" : [ "SubgroupShuffleINTEL" ]
   3358     },
   3359     {
   3360       "opname" : "OpSubgroupBlockReadINTEL",
   3361       "opcode" : 5575,
   3362       "operands" : [
   3363         { "kind" : "IdResultType" },
   3364         { "kind" : "IdResult" },
   3365         { "kind" : "IdRef", "name" : "'Ptr'" }
   3366       ],
   3367       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
   3368     },
   3369     {
   3370       "opname" : "OpSubgroupBlockWriteINTEL",
   3371       "opcode" : 5576,
   3372       "operands" : [
   3373         { "kind" : "IdRef", "name" : "'Ptr'" },
   3374         { "kind" : "IdRef", "name" : "'Data'" }
   3375       ],
   3376       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ]
   3377     },
   3378     {
   3379       "opname" : "OpSubgroupImageBlockReadINTEL",
   3380       "opcode" : 5577,
   3381       "operands" : [
   3382         { "kind" : "IdResultType" },
   3383         { "kind" : "IdResult" },
   3384         { "kind" : "IdRef", "name" : "'Image'" },
   3385         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3386       ],
   3387       "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
   3388     },
   3389     {
   3390       "opname" : "OpSubgroupImageBlockWriteINTEL",
   3391       "opcode" : 5578,
   3392       "operands" : [
   3393         { "kind" : "IdRef", "name" : "'Image'" },
   3394         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3395         { "kind" : "IdRef", "name" : "'Data'" }
   3396       ],
   3397       "capabilities" : [ "SubgroupImageBlockIOINTEL" ]
   3398     },
   3399     {
   3400       "opname" : "OpDecorateStringGOOGLE",
   3401       "opcode" : 5632,
   3402       "operands" : [
   3403         { "kind" : "IdRef",         "name" : "'Target'" },
   3404         { "kind" : "Decoration" }
   3405       ],
   3406       "extensions" : [ "SPV_GOOGLE_decorate_string" ]
   3407     },
   3408     {
   3409       "opname" : "OpMemberDecorateStringGOOGLE",
   3410       "opcode" : 5633,
   3411       "operands" : [
   3412         { "kind" : "IdRef",          "name" : "'Struct Type'" },
   3413         { "kind" : "LiteralInteger", "name" : "'Member'" },
   3414         { "kind" : "Decoration" }
   3415       ],
   3416       "extensions" : [ "SPV_GOOGLE_decorate_string" ]
   3417     }
   3418   ],
   3419   "operand_kinds" : [
   3420     {
   3421       "category" : "BitEnum",
   3422       "kind" : "ImageOperands",
   3423       "enumerants" : [
   3424         {
   3425           "enumerant" : "None",
   3426           "value" : "0x0000"
   3427         },
   3428         {
   3429           "enumerant" : "Bias",
   3430           "value" : "0x0001",
   3431           "capabilities" : [ "Shader" ],
   3432           "parameters" : [
   3433             { "kind" : "IdRef" }
   3434           ]
   3435         },
   3436         {
   3437           "enumerant" : "Lod",
   3438           "value" : "0x0002",
   3439           "parameters" : [
   3440             { "kind" : "IdRef" }
   3441           ]
   3442         },
   3443         {
   3444           "enumerant" : "Grad",
   3445           "value" : "0x0004",
   3446           "parameters" : [
   3447             { "kind" : "IdRef" },
   3448             { "kind" : "IdRef" }
   3449           ]
   3450         },
   3451         {
   3452           "enumerant" : "ConstOffset",
   3453           "value" : "0x0008",
   3454           "parameters" : [
   3455             { "kind" : "IdRef" }
   3456           ]
   3457         },
   3458         {
   3459           "enumerant" : "Offset",
   3460           "value" : "0x0010",
   3461           "capabilities" : [ "ImageGatherExtended" ],
   3462           "parameters" : [
   3463             { "kind" : "IdRef" }
   3464           ]
   3465         },
   3466         {
   3467           "enumerant" : "ConstOffsets",
   3468           "value" : "0x0020",
   3469           "parameters" : [
   3470             { "kind" : "IdRef" }
   3471           ]
   3472         },
   3473         {
   3474           "enumerant" : "Sample",
   3475           "value" : "0x0040",
   3476           "parameters" : [
   3477             { "kind" : "IdRef" }
   3478           ]
   3479         },
   3480         {
   3481           "enumerant" : "MinLod",
   3482           "value" : "0x0080",
   3483           "capabilities" : [ "MinLod" ],
   3484           "parameters" : [
   3485             { "kind" : "IdRef" }
   3486           ]
   3487         }
   3488       ]
   3489     },
   3490     {
   3491       "category" : "BitEnum",
   3492       "kind" : "FPFastMathMode",
   3493       "enumerants" : [
   3494         {
   3495           "enumerant" : "None",
   3496           "value" : "0x0000"
   3497         },
   3498         {
   3499           "enumerant" : "NotNaN",
   3500           "value" : "0x0001",
   3501           "capabilities" : [ "Kernel" ]
   3502         },
   3503         {
   3504           "enumerant" : "NotInf",
   3505           "value" : "0x0002",
   3506           "capabilities" : [ "Kernel" ]
   3507         },
   3508         {
   3509           "enumerant" : "NSZ",
   3510           "value" : "0x0004",
   3511           "capabilities" : [ "Kernel" ]
   3512         },
   3513         {
   3514           "enumerant" : "AllowRecip",
   3515           "value" : "0x0008",
   3516           "capabilities" : [ "Kernel" ]
   3517         },
   3518         {
   3519           "enumerant" : "Fast",
   3520           "value" : "0x0010",
   3521           "capabilities" : [ "Kernel" ]
   3522         }
   3523       ]
   3524     },
   3525     {
   3526       "category" : "BitEnum",
   3527       "kind" : "SelectionControl",
   3528       "enumerants" : [
   3529         {
   3530           "enumerant" : "None",
   3531           "value" : "0x0000"
   3532         },
   3533         {
   3534           "enumerant" : "Flatten",
   3535           "value" : "0x0001"
   3536         },
   3537         {
   3538           "enumerant" : "DontFlatten",
   3539           "value" : "0x0002"
   3540         }
   3541       ]
   3542     },
   3543     {
   3544       "category" : "BitEnum",
   3545       "kind" : "LoopControl",
   3546       "enumerants" : [
   3547         {
   3548           "enumerant" : "None",
   3549           "value" : "0x0000"
   3550         },
   3551         {
   3552           "enumerant" : "Unroll",
   3553           "value" : "0x0001"
   3554         },
   3555         {
   3556           "enumerant" : "DontUnroll",
   3557           "value" : "0x0002"
   3558         },
   3559         {
   3560           "enumerant" : "DependencyInfinite",
   3561           "value" : "0x0004"
   3562         },
   3563         {
   3564           "enumerant" : "DependencyLength",
   3565           "value" : "0x0008",
   3566           "parameters" : [
   3567             { "kind" : "LiteralInteger" }
   3568           ]
   3569 
   3570         }
   3571       ]
   3572     },
   3573     {
   3574       "category" : "BitEnum",
   3575       "kind" : "FunctionControl",
   3576       "enumerants" : [
   3577         {
   3578           "enumerant" : "None",
   3579           "value" : "0x0000"
   3580         },
   3581         {
   3582           "enumerant" : "Inline",
   3583           "value" : "0x0001"
   3584         },
   3585         {
   3586           "enumerant" : "DontInline",
   3587           "value" : "0x0002"
   3588         },
   3589         {
   3590           "enumerant" : "Pure",
   3591           "value" : "0x0004"
   3592         },
   3593         {
   3594           "enumerant" : "Const",
   3595           "value" : "0x0008"
   3596         }
   3597       ]
   3598     },
   3599     {
   3600       "category" : "BitEnum",
   3601       "kind" : "MemorySemantics",
   3602       "enumerants" : [
   3603         {
   3604           "enumerant" : "Relaxed",
   3605           "value" : "0x0000"
   3606         },
   3607         {
   3608           "enumerant" : "None",
   3609           "value" : "0x0000"
   3610         },
   3611         {
   3612           "enumerant" : "Acquire",
   3613           "value" : "0x0002"
   3614         },
   3615         {
   3616           "enumerant" : "Release",
   3617           "value" : "0x0004"
   3618         },
   3619         {
   3620           "enumerant" : "AcquireRelease",
   3621           "value" : "0x0008"
   3622         },
   3623         {
   3624           "enumerant" : "SequentiallyConsistent",
   3625           "value" : "0x0010"
   3626         },
   3627         {
   3628           "enumerant" : "UniformMemory",
   3629           "value" : "0x0040",
   3630           "capabilities" : [ "Shader" ]
   3631         },
   3632         {
   3633           "enumerant" : "SubgroupMemory",
   3634           "value" : "0x0080"
   3635         },
   3636         {
   3637           "enumerant" : "WorkgroupMemory",
   3638           "value" : "0x0100"
   3639         },
   3640         {
   3641           "enumerant" : "CrossWorkgroupMemory",
   3642           "value" : "0x0200"
   3643         },
   3644         {
   3645           "enumerant" : "AtomicCounterMemory",
   3646           "value" : "0x0400",
   3647           "capabilities" : [ "AtomicStorage" ]
   3648         },
   3649         {
   3650           "enumerant" : "ImageMemory",
   3651           "value" : "0x0800"
   3652         }
   3653       ]
   3654     },
   3655     {
   3656       "category" : "BitEnum",
   3657       "kind" : "MemoryAccess",
   3658       "enumerants" : [
   3659         {
   3660           "enumerant" : "None",
   3661           "value" : "0x0000"
   3662         },
   3663         {
   3664           "enumerant" : "Volatile",
   3665           "value" : "0x0001"
   3666         },
   3667         {
   3668           "enumerant" : "Aligned",
   3669           "value" : "0x0002",
   3670           "parameters" : [
   3671             { "kind" : "LiteralInteger" }
   3672           ]
   3673         },
   3674         {
   3675           "enumerant" : "Nontemporal",
   3676           "value" : "0x0004"
   3677         }
   3678       ]
   3679     },
   3680     {
   3681       "category" : "BitEnum",
   3682       "kind" : "KernelProfilingInfo",
   3683       "enumerants" : [
   3684         {
   3685           "enumerant" : "None",
   3686           "value" : "0x0000"
   3687         },
   3688         {
   3689           "enumerant" : "CmdExecTime",
   3690           "value" : "0x0001",
   3691           "capabilities" : [ "Kernel" ]
   3692         }
   3693       ]
   3694     },
   3695     {
   3696       "category" : "ValueEnum",
   3697       "kind" : "SourceLanguage",
   3698       "enumerants" : [
   3699         {
   3700           "enumerant" : "Unknown",
   3701           "value" : 0
   3702         },
   3703         {
   3704           "enumerant" : "ESSL",
   3705           "value" : 1
   3706         },
   3707         {
   3708           "enumerant" : "GLSL",
   3709           "value" : 2
   3710         },
   3711         {
   3712           "enumerant" : "OpenCL_C",
   3713           "value" : 3
   3714         },
   3715         {
   3716           "enumerant" : "OpenCL_CPP",
   3717           "value" : 4
   3718         },
   3719         {
   3720           "enumerant" : "HLSL",
   3721           "value" : 5
   3722         }
   3723       ]
   3724     },
   3725     {
   3726       "category" : "ValueEnum",
   3727       "kind" : "ExecutionModel",
   3728       "enumerants" : [
   3729         {
   3730           "enumerant" : "Vertex",
   3731           "value" : 0,
   3732           "capabilities" : [ "Shader" ]
   3733         },
   3734         {
   3735           "enumerant" : "TessellationControl",
   3736           "value" : 1,
   3737           "capabilities" : [ "Tessellation" ]
   3738         },
   3739         {
   3740           "enumerant" : "TessellationEvaluation",
   3741           "value" : 2,
   3742           "capabilities" : [ "Tessellation" ]
   3743         },
   3744         {
   3745           "enumerant" : "Geometry",
   3746           "value" : 3,
   3747           "capabilities" : [ "Geometry" ]
   3748         },
   3749         {
   3750           "enumerant" : "Fragment",
   3751           "value" : 4,
   3752           "capabilities" : [ "Shader" ]
   3753         },
   3754         {
   3755           "enumerant" : "GLCompute",
   3756           "value" : 5,
   3757           "capabilities" : [ "Shader" ]
   3758         },
   3759         {
   3760           "enumerant" : "Kernel",
   3761           "value" : 6,
   3762           "capabilities" : [ "Kernel" ]
   3763         }
   3764       ]
   3765     },
   3766     {
   3767       "category" : "ValueEnum",
   3768       "kind" : "AddressingModel",
   3769       "enumerants" : [
   3770         {
   3771           "enumerant" : "Logical",
   3772           "value" : 0
   3773         },
   3774         {
   3775           "enumerant" : "Physical32",
   3776           "value" : 1,
   3777           "capabilities" : [ "Addresses" ]
   3778         },
   3779         {
   3780           "enumerant" : "Physical64",
   3781           "value" : 2,
   3782           "capabilities" : [ "Addresses" ]
   3783         }
   3784       ]
   3785     },
   3786     {
   3787       "category" : "ValueEnum",
   3788       "kind" : "MemoryModel",
   3789       "enumerants" : [
   3790         {
   3791           "enumerant" : "Simple",
   3792           "value" : 0,
   3793           "capabilities" : [ "Shader" ]
   3794         },
   3795         {
   3796           "enumerant" : "GLSL450",
   3797           "value" : 1,
   3798           "capabilities" : [ "Shader" ]
   3799         },
   3800         {
   3801           "enumerant" : "OpenCL",
   3802           "value" : 2,
   3803           "capabilities" : [ "Kernel" ]
   3804         }
   3805       ]
   3806     },
   3807     {
   3808       "category" : "ValueEnum",
   3809       "kind" : "ExecutionMode",
   3810       "enumerants" : [
   3811         {
   3812           "enumerant" : "Invocations",
   3813           "value" : 0,
   3814           "capabilities" : [ "Geometry" ],
   3815           "parameters" : [
   3816             { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
   3817           ]
   3818         },
   3819         {
   3820           "enumerant" : "SpacingEqual",
   3821           "value" : 1,
   3822           "capabilities" : [ "Tessellation" ]
   3823         },
   3824         {
   3825           "enumerant" : "SpacingFractionalEven",
   3826           "value" : 2,
   3827           "capabilities" : [ "Tessellation" ]
   3828         },
   3829         {
   3830           "enumerant" : "SpacingFractionalOdd",
   3831           "value" : 3,
   3832           "capabilities" : [ "Tessellation" ]
   3833         },
   3834         {
   3835           "enumerant" : "VertexOrderCw",
   3836           "value" : 4,
   3837           "capabilities" : [ "Tessellation" ]
   3838         },
   3839         {
   3840           "enumerant" : "VertexOrderCcw",
   3841           "value" : 5,
   3842           "capabilities" : [ "Tessellation" ]
   3843         },
   3844         {
   3845           "enumerant" : "PixelCenterInteger",
   3846           "value" : 6,
   3847           "capabilities" : [ "Shader" ]
   3848         },
   3849         {
   3850           "enumerant" : "OriginUpperLeft",
   3851           "value" : 7,
   3852           "capabilities" : [ "Shader" ]
   3853         },
   3854         {
   3855           "enumerant" : "OriginLowerLeft",
   3856           "value" : 8,
   3857           "capabilities" : [ "Shader" ]
   3858         },
   3859         {
   3860           "enumerant" : "EarlyFragmentTests",
   3861           "value" : 9,
   3862           "capabilities" : [ "Shader" ]
   3863         },
   3864         {
   3865           "enumerant" : "PointMode",
   3866           "value" : 10,
   3867           "capabilities" : [ "Tessellation" ]
   3868         },
   3869         {
   3870           "enumerant" : "Xfb",
   3871           "value" : 11,
   3872           "capabilities" : [ "TransformFeedback" ]
   3873         },
   3874         {
   3875           "enumerant" : "DepthReplacing",
   3876           "value" : 12,
   3877           "capabilities" : [ "Shader" ]
   3878         },
   3879         {
   3880           "enumerant" : "DepthGreater",
   3881           "value" : 14,
   3882           "capabilities" : [ "Shader" ]
   3883         },
   3884         {
   3885           "enumerant" : "DepthLess",
   3886           "value" : 15,
   3887           "capabilities" : [ "Shader" ]
   3888         },
   3889         {
   3890           "enumerant" : "DepthUnchanged",
   3891           "value" : 16,
   3892           "capabilities" : [ "Shader" ]
   3893         },
   3894         {
   3895           "enumerant" : "LocalSize",
   3896           "value" : 17,
   3897           "parameters" : [
   3898             { "kind" : "LiteralInteger", "name" : "'x size'" },
   3899             { "kind" : "LiteralInteger", "name" : "'y size'" },
   3900             { "kind" : "LiteralInteger", "name" : "'z size'" }
   3901           ]
   3902         },
   3903         {
   3904           "enumerant" : "LocalSizeHint",
   3905           "value" : 18,
   3906           "capabilities" : [ "Kernel" ],
   3907           "parameters" : [
   3908             { "kind" : "LiteralInteger", "name" : "'x size'" },
   3909             { "kind" : "LiteralInteger", "name" : "'y size'" },
   3910             { "kind" : "LiteralInteger", "name" : "'z size'" }
   3911           ]
   3912         },
   3913         {
   3914           "enumerant" : "InputPoints",
   3915           "value" : 19,
   3916           "capabilities" : [ "Geometry" ]
   3917         },
   3918         {
   3919           "enumerant" : "InputLines",
   3920           "value" : 20,
   3921           "capabilities" : [ "Geometry" ]
   3922         },
   3923         {
   3924           "enumerant" : "InputLinesAdjacency",
   3925           "value" : 21,
   3926           "capabilities" : [ "Geometry" ]
   3927         },
   3928         {
   3929           "enumerant" : "Triangles",
   3930           "value" : 22,
   3931           "capabilities" : [ "Geometry", "Tessellation" ]
   3932         },
   3933         {
   3934           "enumerant" : "InputTrianglesAdjacency",
   3935           "value" : 23,
   3936           "capabilities" : [ "Geometry" ]
   3937         },
   3938         {
   3939           "enumerant" : "Quads",
   3940           "value" : 24,
   3941           "capabilities" : [ "Tessellation" ]
   3942         },
   3943         {
   3944           "enumerant" : "Isolines",
   3945           "value" : 25,
   3946           "capabilities" : [ "Tessellation" ]
   3947         },
   3948         {
   3949           "enumerant" : "OutputVertices",
   3950           "value" : 26,
   3951           "capabilities" : [ "Geometry", "Tessellation" ],
   3952           "parameters" : [
   3953             { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
   3954           ]
   3955         },
   3956         {
   3957           "enumerant" : "OutputPoints",
   3958           "value" : 27,
   3959           "capabilities" : [ "Geometry" ]
   3960         },
   3961         {
   3962           "enumerant" : "OutputLineStrip",
   3963           "value" : 28,
   3964           "capabilities" : [ "Geometry" ]
   3965         },
   3966         {
   3967           "enumerant" : "OutputTriangleStrip",
   3968           "value" : 29,
   3969           "capabilities" : [ "Geometry" ]
   3970         },
   3971         {
   3972           "enumerant" : "VecTypeHint",
   3973           "value" : 30,
   3974           "capabilities" : [ "Kernel" ],
   3975           "parameters" : [
   3976             { "kind" : "LiteralInteger", "name" : "'Vector type'" }
   3977           ]
   3978         },
   3979         {
   3980           "enumerant" : "ContractionOff",
   3981           "value" : 31,
   3982           "capabilities" : [ "Kernel" ]
   3983         },
   3984         {
   3985           "enumerant" : "Initializer",
   3986           "value" : 33,
   3987           "capabilities" : [ "Kernel" ]
   3988         },
   3989         {
   3990           "enumerant" : "Finalizer",
   3991           "value" : 34,
   3992           "capabilities" : [ "Kernel" ]
   3993         },
   3994         {
   3995           "enumerant" : "SubgroupSize",
   3996           "value" : 35,
   3997           "capabilities" : [ "SubgroupDispatch" ],
   3998           "parameters" : [
   3999             { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
   4000           ]
   4001         },
   4002         {
   4003           "enumerant" : "SubgroupsPerWorkgroup",
   4004           "value" : 36,
   4005           "capabilities" : [ "SubgroupDispatch" ],
   4006           "parameters" : [
   4007             { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
   4008           ]
   4009         },
   4010         {
   4011           "enumerant" : "SubgroupsPerWorkgroupId",
   4012           "value" : 37,
   4013           "capabilities" : [ "SubgroupDispatch" ],
   4014           "parameters" : [
   4015             { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
   4016           ]
   4017         },
   4018         {
   4019           "enumerant" : "LocalSizeId",
   4020           "value" : 38,
   4021           "parameters" : [
   4022             { "kind" : "IdRef", "name" : "'x size'" },
   4023             { "kind" : "IdRef", "name" : "'y size'" },
   4024             { "kind" : "IdRef", "name" : "'z size'" }
   4025           ]
   4026         },
   4027         {
   4028           "enumerant" : "LocalSizeHintId",
   4029           "value" : 39,
   4030           "capabilities" : [ "Kernel" ],
   4031           "parameters" : [
   4032             { "kind" : "IdRef", "name" : "'Local Size Hint'" }
   4033           ]
   4034         },
   4035         {
   4036           "enumerant" : "PostDepthCoverage",
   4037           "value" : 4446,
   4038           "capabilities" : [ "SampleMaskPostDepthCoverage" ]
   4039         },
   4040         {
   4041           "enumerant" : "StencilRefReplacingEXT",
   4042           "value" : 5027,
   4043           "capabilities" : [ "StencilExportEXT" ]
   4044         }
   4045       ]
   4046     },
   4047     {
   4048       "category" : "ValueEnum",
   4049       "kind" : "StorageClass",
   4050       "enumerants" : [
   4051         {
   4052           "enumerant" : "UniformConstant",
   4053           "value" : 0
   4054         },
   4055         {
   4056           "enumerant" : "Input",
   4057           "value" : 1
   4058         },
   4059         {
   4060           "enumerant" : "Uniform",
   4061           "value" : 2,
   4062           "capabilities" : [ "Shader" ]
   4063         },
   4064         {
   4065           "enumerant" : "Output",
   4066           "value" : 3,
   4067           "capabilities" : [ "Shader" ]
   4068         },
   4069         {
   4070           "enumerant" : "Workgroup",
   4071           "value" : 4
   4072         },
   4073         {
   4074           "enumerant" : "CrossWorkgroup",
   4075           "value" : 5
   4076         },
   4077         {
   4078           "enumerant" : "Private",
   4079           "value" : 6,
   4080           "capabilities" : [ "Shader" ]
   4081         },
   4082         {
   4083           "enumerant" : "Function",
   4084           "value" : 7
   4085         },
   4086         {
   4087           "enumerant" : "Generic",
   4088           "value" : 8,
   4089           "capabilities" : [ "GenericPointer" ]
   4090         },
   4091         {
   4092           "enumerant" : "PushConstant",
   4093           "value" : 9,
   4094           "capabilities" : [ "Shader" ]
   4095         },
   4096         {
   4097           "enumerant" : "AtomicCounter",
   4098           "value" : 10,
   4099           "capabilities" : [ "AtomicStorage" ]
   4100         },
   4101         {
   4102           "enumerant" : "Image",
   4103           "value" : 11
   4104         },
   4105         {
   4106           "enumerant" : "StorageBuffer",
   4107           "value" : 12,
   4108           "extensions" : [
   4109             "SPV_KHR_storage_buffer_storage_class",
   4110             "SPV_KHR_variable_pointers"
   4111           ],
   4112           "capabilities" : [ "Shader" ]
   4113         }
   4114       ]
   4115     },
   4116     {
   4117       "category" : "ValueEnum",
   4118       "kind" : "Dim",
   4119       "enumerants" : [
   4120         {
   4121           "enumerant" : "1D",
   4122           "value" : 0,
   4123           "capabilities" : [ "Sampled1D" ]
   4124         },
   4125         {
   4126           "enumerant" : "2D",
   4127           "value" : 1
   4128         },
   4129         {
   4130           "enumerant" : "3D",
   4131           "value" : 2
   4132         },
   4133         {
   4134           "enumerant" : "Cube",
   4135           "value" : 3,
   4136           "capabilities" : [ "Shader" ]
   4137         },
   4138         {
   4139           "enumerant" : "Rect",
   4140           "value" : 4,
   4141           "capabilities" : [ "SampledRect" ]
   4142         },
   4143         {
   4144           "enumerant" : "Buffer",
   4145           "value" : 5,
   4146           "capabilities" : [ "SampledBuffer" ]
   4147         },
   4148         {
   4149           "enumerant" : "SubpassData",
   4150           "value" : 6,
   4151           "capabilities" : [ "InputAttachment" ]
   4152         }
   4153       ]
   4154     },
   4155     {
   4156       "category" : "ValueEnum",
   4157       "kind" : "SamplerAddressingMode",
   4158       "enumerants" : [
   4159         {
   4160           "enumerant" : "None",
   4161           "value" : 0,
   4162           "capabilities" : [ "Kernel" ]
   4163         },
   4164         {
   4165           "enumerant" : "ClampToEdge",
   4166           "value" : 1,
   4167           "capabilities" : [ "Kernel" ]
   4168         },
   4169         {
   4170           "enumerant" : "Clamp",
   4171           "value" : 2,
   4172           "capabilities" : [ "Kernel" ]
   4173         },
   4174         {
   4175           "enumerant" : "Repeat",
   4176           "value" : 3,
   4177           "capabilities" : [ "Kernel" ]
   4178         },
   4179         {
   4180           "enumerant" : "RepeatMirrored",
   4181           "value" : 4,
   4182           "capabilities" : [ "Kernel" ]
   4183         }
   4184       ]
   4185     },
   4186     {
   4187       "category" : "ValueEnum",
   4188       "kind" : "SamplerFilterMode",
   4189       "enumerants" : [
   4190         {
   4191           "enumerant" : "Nearest",
   4192           "value" : 0,
   4193           "capabilities" : [ "Kernel" ]
   4194         },
   4195         {
   4196           "enumerant" : "Linear",
   4197           "value" : 1,
   4198           "capabilities" : [ "Kernel" ]
   4199         }
   4200       ]
   4201     },
   4202     {
   4203       "category" : "ValueEnum",
   4204       "kind" : "ImageFormat",
   4205       "enumerants" : [
   4206         {
   4207           "enumerant" : "Unknown",
   4208           "value" : 0
   4209         },
   4210         {
   4211           "enumerant" : "Rgba32f",
   4212           "value" : 1,
   4213           "capabilities" : [ "Shader" ]
   4214         },
   4215         {
   4216           "enumerant" : "Rgba16f",
   4217           "value" : 2,
   4218           "capabilities" : [ "Shader" ]
   4219         },
   4220         {
   4221           "enumerant" : "R32f",
   4222           "value" : 3,
   4223           "capabilities" : [ "Shader" ]
   4224         },
   4225         {
   4226           "enumerant" : "Rgba8",
   4227           "value" : 4,
   4228           "capabilities" : [ "Shader" ]
   4229         },
   4230         {
   4231           "enumerant" : "Rgba8Snorm",
   4232           "value" : 5,
   4233           "capabilities" : [ "Shader" ]
   4234         },
   4235         {
   4236           "enumerant" : "Rg32f",
   4237           "value" : 6,
   4238           "capabilities" : [ "StorageImageExtendedFormats" ]
   4239         },
   4240         {
   4241           "enumerant" : "Rg16f",
   4242           "value" : 7,
   4243           "capabilities" : [ "StorageImageExtendedFormats" ]
   4244         },
   4245         {
   4246           "enumerant" : "R11fG11fB10f",
   4247           "value" : 8,
   4248           "capabilities" : [ "StorageImageExtendedFormats" ]
   4249         },
   4250         {
   4251           "enumerant" : "R16f",
   4252           "value" : 9,
   4253           "capabilities" : [ "StorageImageExtendedFormats" ]
   4254         },
   4255         {
   4256           "enumerant" : "Rgba16",
   4257           "value" : 10,
   4258           "capabilities" : [ "StorageImageExtendedFormats" ]
   4259         },
   4260         {
   4261           "enumerant" : "Rgb10A2",
   4262           "value" : 11,
   4263           "capabilities" : [ "StorageImageExtendedFormats" ]
   4264         },
   4265         {
   4266           "enumerant" : "Rg16",
   4267           "value" : 12,
   4268           "capabilities" : [ "StorageImageExtendedFormats" ]
   4269         },
   4270         {
   4271           "enumerant" : "Rg8",
   4272           "value" : 13,
   4273           "capabilities" : [ "StorageImageExtendedFormats" ]
   4274         },
   4275         {
   4276           "enumerant" : "R16",
   4277           "value" : 14,
   4278           "capabilities" : [ "StorageImageExtendedFormats" ]
   4279         },
   4280         {
   4281           "enumerant" : "R8",
   4282           "value" : 15,
   4283           "capabilities" : [ "StorageImageExtendedFormats" ]
   4284         },
   4285         {
   4286           "enumerant" : "Rgba16Snorm",
   4287           "value" : 16,
   4288           "capabilities" : [ "StorageImageExtendedFormats" ]
   4289         },
   4290         {
   4291           "enumerant" : "Rg16Snorm",
   4292           "value" : 17,
   4293           "capabilities" : [ "StorageImageExtendedFormats" ]
   4294         },
   4295         {
   4296           "enumerant" : "Rg8Snorm",
   4297           "value" : 18,
   4298           "capabilities" : [ "StorageImageExtendedFormats" ]
   4299         },
   4300         {
   4301           "enumerant" : "R16Snorm",
   4302           "value" : 19,
   4303           "capabilities" : [ "StorageImageExtendedFormats" ]
   4304         },
   4305         {
   4306           "enumerant" : "R8Snorm",
   4307           "value" : 20,
   4308           "capabilities" : [ "StorageImageExtendedFormats" ]
   4309         },
   4310         {
   4311           "enumerant" : "Rgba32i",
   4312           "value" : 21,
   4313           "capabilities" : [ "Shader" ]
   4314         },
   4315         {
   4316           "enumerant" : "Rgba16i",
   4317           "value" : 22,
   4318           "capabilities" : [ "Shader" ]
   4319         },
   4320         {
   4321           "enumerant" : "Rgba8i",
   4322           "value" : 23,
   4323           "capabilities" : [ "Shader" ]
   4324         },
   4325         {
   4326           "enumerant" : "R32i",
   4327           "value" : 24,
   4328           "capabilities" : [ "Shader" ]
   4329         },
   4330         {
   4331           "enumerant" : "Rg32i",
   4332           "value" : 25,
   4333           "capabilities" : [ "StorageImageExtendedFormats" ]
   4334         },
   4335         {
   4336           "enumerant" : "Rg16i",
   4337           "value" : 26,
   4338           "capabilities" : [ "StorageImageExtendedFormats" ]
   4339         },
   4340         {
   4341           "enumerant" : "Rg8i",
   4342           "value" : 27,
   4343           "capabilities" : [ "StorageImageExtendedFormats" ]
   4344         },
   4345         {
   4346           "enumerant" : "R16i",
   4347           "value" : 28,
   4348           "capabilities" : [ "StorageImageExtendedFormats" ]
   4349         },
   4350         {
   4351           "enumerant" : "R8i",
   4352           "value" : 29,
   4353           "capabilities" : [ "StorageImageExtendedFormats" ]
   4354         },
   4355         {
   4356           "enumerant" : "Rgba32ui",
   4357           "value" : 30,
   4358           "capabilities" : [ "Shader" ]
   4359         },
   4360         {
   4361           "enumerant" : "Rgba16ui",
   4362           "value" : 31,
   4363           "capabilities" : [ "Shader" ]
   4364         },
   4365         {
   4366           "enumerant" : "Rgba8ui",
   4367           "value" : 32,
   4368           "capabilities" : [ "Shader" ]
   4369         },
   4370         {
   4371           "enumerant" : "R32ui",
   4372           "value" : 33,
   4373           "capabilities" : [ "Shader" ]
   4374         },
   4375         {
   4376           "enumerant" : "Rgb10a2ui",
   4377           "value" : 34,
   4378           "capabilities" : [ "StorageImageExtendedFormats" ]
   4379         },
   4380         {
   4381           "enumerant" : "Rg32ui",
   4382           "value" : 35,
   4383           "capabilities" : [ "StorageImageExtendedFormats" ]
   4384         },
   4385         {
   4386           "enumerant" : "Rg16ui",
   4387           "value" : 36,
   4388           "capabilities" : [ "StorageImageExtendedFormats" ]
   4389         },
   4390         {
   4391           "enumerant" : "Rg8ui",
   4392           "value" : 37,
   4393           "capabilities" : [ "StorageImageExtendedFormats" ]
   4394         },
   4395         {
   4396           "enumerant" : "R16ui",
   4397           "value" : 38,
   4398           "capabilities" : [ "StorageImageExtendedFormats" ]
   4399         },
   4400         {
   4401           "enumerant" : "R8ui",
   4402           "value" : 39,
   4403           "capabilities" : [ "StorageImageExtendedFormats" ]
   4404         }
   4405       ]
   4406     },
   4407     {
   4408       "category" : "ValueEnum",
   4409       "kind" : "ImageChannelOrder",
   4410       "enumerants" : [
   4411         {
   4412           "enumerant" : "R",
   4413           "value" : 0,
   4414           "capabilities" : [ "Kernel" ]
   4415         },
   4416         {
   4417           "enumerant" : "A",
   4418           "value" : 1,
   4419           "capabilities" : [ "Kernel" ]
   4420         },
   4421         {
   4422           "enumerant" : "RG",
   4423           "value" : 2,
   4424           "capabilities" : [ "Kernel" ]
   4425         },
   4426         {
   4427           "enumerant" : "RA",
   4428           "value" : 3,
   4429           "capabilities" : [ "Kernel" ]
   4430         },
   4431         {
   4432           "enumerant" : "RGB",
   4433           "value" : 4,
   4434           "capabilities" : [ "Kernel" ]
   4435         },
   4436         {
   4437           "enumerant" : "RGBA",
   4438           "value" : 5,
   4439           "capabilities" : [ "Kernel" ]
   4440         },
   4441         {
   4442           "enumerant" : "BGRA",
   4443           "value" : 6,
   4444           "capabilities" : [ "Kernel" ]
   4445         },
   4446         {
   4447           "enumerant" : "ARGB",
   4448           "value" : 7,
   4449           "capabilities" : [ "Kernel" ]
   4450         },
   4451         {
   4452           "enumerant" : "Intensity",
   4453           "value" : 8,
   4454           "capabilities" : [ "Kernel" ]
   4455         },
   4456         {
   4457           "enumerant" : "Luminance",
   4458           "value" : 9,
   4459           "capabilities" : [ "Kernel" ]
   4460         },
   4461         {
   4462           "enumerant" : "Rx",
   4463           "value" : 10,
   4464           "capabilities" : [ "Kernel" ]
   4465         },
   4466         {
   4467           "enumerant" : "RGx",
   4468           "value" : 11,
   4469           "capabilities" : [ "Kernel" ]
   4470         },
   4471         {
   4472           "enumerant" : "RGBx",
   4473           "value" : 12,
   4474           "capabilities" : [ "Kernel" ]
   4475         },
   4476         {
   4477           "enumerant" : "Depth",
   4478           "value" : 13,
   4479           "capabilities" : [ "Kernel" ]
   4480         },
   4481         {
   4482           "enumerant" : "DepthStencil",
   4483           "value" : 14,
   4484           "capabilities" : [ "Kernel" ]
   4485         },
   4486         {
   4487           "enumerant" : "sRGB",
   4488           "value" : 15,
   4489           "capabilities" : [ "Kernel" ]
   4490         },
   4491         {
   4492           "enumerant" : "sRGBx",
   4493           "value" : 16,
   4494           "capabilities" : [ "Kernel" ]
   4495         },
   4496         {
   4497           "enumerant" : "sRGBA",
   4498           "value" : 17,
   4499           "capabilities" : [ "Kernel" ]
   4500         },
   4501         {
   4502           "enumerant" : "sBGRA",
   4503           "value" : 18,
   4504           "capabilities" : [ "Kernel" ]
   4505         },
   4506         {
   4507           "enumerant" : "ABGR",
   4508           "value" : 19,
   4509           "capabilities" : [ "Kernel" ]
   4510         }
   4511       ]
   4512     },
   4513     {
   4514       "category" : "ValueEnum",
   4515       "kind" : "ImageChannelDataType",
   4516       "enumerants" : [
   4517         {
   4518           "enumerant" : "SnormInt8",
   4519           "value" : 0,
   4520           "capabilities" : [ "Kernel" ]
   4521         },
   4522         {
   4523           "enumerant" : "SnormInt16",
   4524           "value" : 1,
   4525           "capabilities" : [ "Kernel" ]
   4526         },
   4527         {
   4528           "enumerant" : "UnormInt8",
   4529           "value" : 2,
   4530           "capabilities" : [ "Kernel" ]
   4531         },
   4532         {
   4533           "enumerant" : "UnormInt16",
   4534           "value" : 3,
   4535           "capabilities" : [ "Kernel" ]
   4536         },
   4537         {
   4538           "enumerant" : "UnormShort565",
   4539           "value" : 4,
   4540           "capabilities" : [ "Kernel" ]
   4541         },
   4542         {
   4543           "enumerant" : "UnormShort555",
   4544           "value" : 5,
   4545           "capabilities" : [ "Kernel" ]
   4546         },
   4547         {
   4548           "enumerant" : "UnormInt101010",
   4549           "value" : 6,
   4550           "capabilities" : [ "Kernel" ]
   4551         },
   4552         {
   4553           "enumerant" : "SignedInt8",
   4554           "value" : 7,
   4555           "capabilities" : [ "Kernel" ]
   4556         },
   4557         {
   4558           "enumerant" : "SignedInt16",
   4559           "value" : 8,
   4560           "capabilities" : [ "Kernel" ]
   4561         },
   4562         {
   4563           "enumerant" : "SignedInt32",
   4564           "value" : 9,
   4565           "capabilities" : [ "Kernel" ]
   4566         },
   4567         {
   4568           "enumerant" : "UnsignedInt8",
   4569           "value" : 10,
   4570           "capabilities" : [ "Kernel" ]
   4571         },
   4572         {
   4573           "enumerant" : "UnsignedInt16",
   4574           "value" : 11,
   4575           "capabilities" : [ "Kernel" ]
   4576         },
   4577         {
   4578           "enumerant" : "UnsignedInt32",
   4579           "value" : 12,
   4580           "capabilities" : [ "Kernel" ]
   4581         },
   4582         {
   4583           "enumerant" : "HalfFloat",
   4584           "value" : 13,
   4585           "capabilities" : [ "Kernel" ]
   4586         },
   4587         {
   4588           "enumerant" : "Float",
   4589           "value" : 14,
   4590           "capabilities" : [ "Kernel" ]
   4591         },
   4592         {
   4593           "enumerant" : "UnormInt24",
   4594           "value" : 15,
   4595           "capabilities" : [ "Kernel" ]
   4596         },
   4597         {
   4598           "enumerant" : "UnormInt101010_2",
   4599           "value" : 16,
   4600           "capabilities" : [ "Kernel" ]
   4601         }
   4602       ]
   4603     },
   4604     {
   4605       "category" : "ValueEnum",
   4606       "kind" : "FPRoundingMode",
   4607       "enumerants" : [
   4608         {
   4609           "enumerant" : "RTE",
   4610           "value" : 0,
   4611           "capabilities" : [
   4612             "Kernel",
   4613             "StorageUniformBufferBlock16",
   4614             "StorageUniform16",
   4615             "StoragePushConstant16",
   4616             "StorageInputOutput16"
   4617           ]
   4618         },
   4619         {
   4620           "enumerant" : "RTZ",
   4621           "value" : 1,
   4622           "capabilities" : [
   4623             "Kernel",
   4624             "StorageUniformBufferBlock16",
   4625             "StorageUniform16",
   4626             "StoragePushConstant16",
   4627             "StorageInputOutput16"
   4628           ]
   4629         },
   4630         {
   4631           "enumerant" : "RTP",
   4632           "value" : 2,
   4633           "capabilities" : [
   4634             "Kernel",
   4635             "StorageUniformBufferBlock16",
   4636             "StorageUniform16",
   4637             "StoragePushConstant16",
   4638             "StorageInputOutput16"
   4639           ]
   4640         },
   4641         {
   4642           "enumerant" : "RTN",
   4643           "value" : 3,
   4644           "capabilities" : [
   4645             "Kernel",
   4646             "StorageUniformBufferBlock16",
   4647             "StorageUniform16",
   4648             "StoragePushConstant16",
   4649             "StorageInputOutput16"
   4650           ]
   4651         }
   4652       ]
   4653     },
   4654     {
   4655       "category" : "ValueEnum",
   4656       "kind" : "LinkageType",
   4657       "enumerants" : [
   4658         {
   4659           "enumerant" : "Export",
   4660           "value" : 0,
   4661           "capabilities" : [ "Linkage" ]
   4662         },
   4663         {
   4664           "enumerant" : "Import",
   4665           "value" : 1,
   4666           "capabilities" : [ "Linkage" ]
   4667         }
   4668       ]
   4669     },
   4670     {
   4671       "category" : "ValueEnum",
   4672       "kind" : "AccessQualifier",
   4673       "enumerants" : [
   4674         {
   4675           "enumerant" : "ReadOnly",
   4676           "value" : 0,
   4677           "capabilities" : [ "Kernel" ]
   4678         },
   4679         {
   4680           "enumerant" : "WriteOnly",
   4681           "value" : 1,
   4682           "capabilities" : [ "Kernel" ]
   4683         },
   4684         {
   4685           "enumerant" : "ReadWrite",
   4686           "value" : 2,
   4687           "capabilities" : [ "Kernel" ]
   4688         }
   4689       ]
   4690     },
   4691     {
   4692       "category" : "ValueEnum",
   4693       "kind" : "FunctionParameterAttribute",
   4694       "enumerants" : [
   4695         {
   4696           "enumerant" : "Zext",
   4697           "value" : 0,
   4698           "capabilities" : [ "Kernel" ]
   4699         },
   4700         {
   4701           "enumerant" : "Sext",
   4702           "value" : 1,
   4703           "capabilities" : [ "Kernel" ]
   4704         },
   4705         {
   4706           "enumerant" : "ByVal",
   4707           "value" : 2,
   4708           "capabilities" : [ "Kernel" ]
   4709         },
   4710         {
   4711           "enumerant" : "Sret",
   4712           "value" : 3,
   4713           "capabilities" : [ "Kernel" ]
   4714         },
   4715         {
   4716           "enumerant" : "NoAlias",
   4717           "value" : 4,
   4718           "capabilities" : [ "Kernel" ]
   4719         },
   4720         {
   4721           "enumerant" : "NoCapture",
   4722           "value" : 5,
   4723           "capabilities" : [ "Kernel" ]
   4724         },
   4725         {
   4726           "enumerant" : "NoWrite",
   4727           "value" : 6,
   4728           "capabilities" : [ "Kernel" ]
   4729         },
   4730         {
   4731           "enumerant" : "NoReadWrite",
   4732           "value" : 7,
   4733           "capabilities" : [ "Kernel" ]
   4734         }
   4735       ]
   4736     },
   4737     {
   4738       "category" : "ValueEnum",
   4739       "kind" : "Decoration",
   4740       "enumerants" : [
   4741         {
   4742           "enumerant" : "RelaxedPrecision",
   4743           "value" : 0,
   4744           "capabilities" : [ "Shader" ]
   4745         },
   4746         {
   4747           "enumerant" : "SpecId",
   4748           "value" : 1,
   4749           "capabilities" : [ "Shader", "Kernel" ],
   4750           "parameters" : [
   4751             { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
   4752           ]
   4753         },
   4754         {
   4755           "enumerant" : "Block",
   4756           "value" : 2,
   4757           "capabilities" : [ "Shader" ]
   4758         },
   4759         {
   4760           "enumerant" : "BufferBlock",
   4761           "value" : 3,
   4762           "capabilities" : [ "Shader" ]
   4763         },
   4764         {
   4765           "enumerant" : "RowMajor",
   4766           "value" : 4,
   4767           "capabilities" : [ "Matrix" ]
   4768         },
   4769         {
   4770           "enumerant" : "ColMajor",
   4771           "value" : 5,
   4772           "capabilities" : [ "Matrix" ]
   4773         },
   4774         {
   4775           "enumerant" : "ArrayStride",
   4776           "value" : 6,
   4777           "capabilities" : [ "Shader" ],
   4778           "parameters" : [
   4779             { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
   4780           ]
   4781         },
   4782         {
   4783           "enumerant" : "MatrixStride",
   4784           "value" : 7,
   4785           "capabilities" : [ "Matrix" ],
   4786           "parameters" : [
   4787             { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
   4788           ]
   4789         },
   4790         {
   4791           "enumerant" : "GLSLShared",
   4792           "value" : 8,
   4793           "capabilities" : [ "Shader" ]
   4794         },
   4795         {
   4796           "enumerant" : "GLSLPacked",
   4797           "value" : 9,
   4798           "capabilities" : [ "Shader" ]
   4799         },
   4800         {
   4801           "enumerant" : "CPacked",
   4802           "value" : 10,
   4803           "capabilities" : [ "Kernel" ]
   4804         },
   4805         {
   4806           "enumerant" : "BuiltIn",
   4807           "value" : 11,
   4808           "parameters" : [
   4809             { "kind" : "BuiltIn" }
   4810           ]
   4811         },
   4812         {
   4813           "enumerant" : "NoPerspective",
   4814           "value" : 13,
   4815           "capabilities" : [ "Shader" ]
   4816         },
   4817         {
   4818           "enumerant" : "Flat",
   4819           "value" : 14,
   4820           "capabilities" : [ "Shader" ]
   4821         },
   4822         {
   4823           "enumerant" : "Patch",
   4824           "value" : 15,
   4825           "capabilities" : [ "Tessellation" ]
   4826         },
   4827         {
   4828           "enumerant" : "Centroid",
   4829           "value" : 16,
   4830           "capabilities" : [ "Shader" ]
   4831         },
   4832         {
   4833           "enumerant" : "Sample",
   4834           "value" : 17,
   4835           "capabilities" : [ "SampleRateShading" ]
   4836         },
   4837         {
   4838           "enumerant" : "Invariant",
   4839           "value" : 18,
   4840           "capabilities" : [ "Shader" ]
   4841         },
   4842         {
   4843           "enumerant" : "Restrict",
   4844           "value" : 19
   4845         },
   4846         {
   4847           "enumerant" : "Aliased",
   4848           "value" : 20
   4849         },
   4850         {
   4851           "enumerant" : "Volatile",
   4852           "value" : 21
   4853         },
   4854         {
   4855           "enumerant" : "Constant",
   4856           "value" : 22,
   4857           "capabilities" : [ "Kernel" ]
   4858         },
   4859         {
   4860           "enumerant" : "Coherent",
   4861           "value" : 23
   4862         },
   4863         {
   4864           "enumerant" : "NonWritable",
   4865           "value" : 24
   4866         },
   4867         {
   4868           "enumerant" : "NonReadable",
   4869           "value" : 25
   4870         },
   4871         {
   4872           "enumerant" : "Uniform",
   4873           "value" : 26,
   4874           "capabilities" : [ "Shader" ]
   4875         },
   4876         {
   4877           "enumerant" : "SaturatedConversion",
   4878           "value" : 28,
   4879           "capabilities" : [ "Kernel" ]
   4880         },
   4881         {
   4882           "enumerant" : "Stream",
   4883           "value" : 29,
   4884           "capabilities" : [ "GeometryStreams" ],
   4885           "parameters" : [
   4886             { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
   4887           ]
   4888         },
   4889         {
   4890           "enumerant" : "Location",
   4891           "value" : 30,
   4892           "capabilities" : [ "Shader" ],
   4893           "parameters" : [
   4894             { "kind" : "LiteralInteger", "name" : "'Location'" }
   4895           ]
   4896         },
   4897         {
   4898           "enumerant" : "Component",
   4899           "value" : 31,
   4900           "capabilities" : [ "Shader" ],
   4901           "parameters" : [
   4902             { "kind" : "LiteralInteger", "name" : "'Component'" }
   4903           ]
   4904         },
   4905         {
   4906           "enumerant" : "Index",
   4907           "value" : 32,
   4908           "capabilities" : [ "Shader" ],
   4909           "parameters" : [
   4910             { "kind" : "LiteralInteger", "name" : "'Index'" }
   4911           ]
   4912         },
   4913         {
   4914           "enumerant" : "Binding",
   4915           "value" : 33,
   4916           "capabilities" : [ "Shader" ],
   4917           "parameters" : [
   4918             { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
   4919           ]
   4920         },
   4921         {
   4922           "enumerant" : "DescriptorSet",
   4923           "value" : 34,
   4924           "capabilities" : [ "Shader" ],
   4925           "parameters" : [
   4926             { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
   4927           ]
   4928         },
   4929         {
   4930           "enumerant" : "Offset",
   4931           "value" : 35,
   4932           "capabilities" : [ "Shader" ],
   4933           "parameters" : [
   4934             { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
   4935           ]
   4936         },
   4937         {
   4938           "enumerant" : "XfbBuffer",
   4939           "value" : 36,
   4940           "capabilities" : [ "TransformFeedback" ],
   4941           "parameters" : [
   4942             { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
   4943           ]
   4944         },
   4945         {
   4946           "enumerant" : "XfbStride",
   4947           "value" : 37,
   4948           "capabilities" : [ "TransformFeedback" ],
   4949           "parameters" : [
   4950             { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
   4951           ]
   4952         },
   4953         {
   4954           "enumerant" : "FuncParamAttr",
   4955           "value" : 38,
   4956           "capabilities" : [ "Kernel" ],
   4957           "parameters" : [
   4958             { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
   4959           ]
   4960         },
   4961         {
   4962           "enumerant" : "FPRoundingMode",
   4963           "value" : 39,
   4964           "capabilities" : [
   4965             "Kernel",
   4966             "StorageUniformBufferBlock16",
   4967             "StorageUniform16",
   4968             "StoragePushConstant16",
   4969             "StorageInputOutput16"
   4970           ],
   4971           "parameters" : [
   4972             { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
   4973           ]
   4974         },
   4975         {
   4976           "enumerant" : "FPFastMathMode",
   4977           "value" : 40,
   4978           "capabilities" : [ "Kernel" ],
   4979           "parameters" : [
   4980             { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
   4981           ]
   4982         },
   4983         {
   4984           "enumerant" : "LinkageAttributes",
   4985           "value" : 41,
   4986           "capabilities" : [ "Linkage" ],
   4987           "parameters" : [
   4988             { "kind" : "LiteralString", "name" : "'Name'" },
   4989             { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
   4990           ]
   4991         },
   4992         {
   4993           "enumerant" : "NoContraction",
   4994           "value" : 42,
   4995           "capabilities" : [ "Shader" ]
   4996         },
   4997         {
   4998           "enumerant" : "InputAttachmentIndex",
   4999           "value" : 43,
   5000           "capabilities" : [ "InputAttachment" ],
   5001           "parameters" : [
   5002             { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
   5003           ]
   5004         },
   5005         {
   5006           "enumerant" : "Alignment",
   5007           "value" : 44,
   5008           "capabilities" : [ "Kernel" ],
   5009           "parameters" : [
   5010             { "kind" : "LiteralInteger", "name" : "'Alignment'" }
   5011           ]
   5012         },
   5013         {
   5014           "enumerant" : "MaxByteOffset",
   5015           "value" : 45,
   5016           "capabilities" : [ "Addresses" ],
   5017           "parameters" : [
   5018             { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
   5019           ]
   5020         },
   5021         {
   5022           "enumerant" : "AlignmentId",
   5023           "value" : 46,
   5024           "capabilities" : [ "Kernel" ],
   5025           "parameters" : [
   5026             { "kind" : "IdRef", "name" : "'Alignment'" }
   5027           ]
   5028         },
   5029         {
   5030           "enumerant" : "MaxByteOffsetId",
   5031           "value" : 47,
   5032           "capabilities" : [ "Addresses" ],
   5033           "parameters" : [
   5034             { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
   5035           ]
   5036         },
   5037         {
   5038           "enumerant" : "ExplicitInterpAMD",
   5039           "value" : 4999
   5040         },
   5041         {
   5042           "enumerant" : "OverrideCoverageNV",
   5043           "value" : 5248,
   5044           "capabilities" : [ "SampleMaskOverrideCoverageNV" ]
   5045         },
   5046         {
   5047           "enumerant" : "PassthroughNV",
   5048           "value" : 5250,
   5049           "capabilities" : [ "GeometryShaderPassthroughNV" ]
   5050         },
   5051         {
   5052           "enumerant" : "ViewportRelativeNV",
   5053           "value" : 5252,
   5054           "capabilities" : [ "ShaderViewportMaskNV" ]
   5055         },
   5056         {
   5057           "enumerant" : "SecondaryViewportRelativeNV",
   5058           "value" : 5256,
   5059           "capabilities" : [ "ShaderStereoViewNV" ],
   5060           "parameters" : [
   5061             { "kind" : "LiteralInteger", "name" : "'Offset'" }
   5062           ]
   5063         },
   5064         {
   5065           "enumerant" : "HlslCounterBufferGOOGLE",
   5066           "value" : 5634,
   5067           "parameters" : [
   5068             { "kind" : "IdRef", "name" : "'Counter Buffer'" }
   5069           ],
   5070           "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
   5071         },
   5072         {
   5073           "enumerant" : "HlslSemanticGOOGLE",
   5074           "value" : 5635,
   5075           "parameters" : [
   5076             { "kind" : "LiteralString", "name" : "'Semantic'" }
   5077           ],
   5078           "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ]
   5079         }
   5080       ]
   5081     },
   5082     {
   5083       "category" : "ValueEnum",
   5084       "kind" : "BuiltIn",
   5085       "enumerants" : [
   5086         {
   5087           "enumerant" : "Position",
   5088           "value" : 0,
   5089           "capabilities" : [ "Shader" ]
   5090         },
   5091         {
   5092           "enumerant" : "PointSize",
   5093           "value" : 1,
   5094           "capabilities" : [ "Shader" ]
   5095         },
   5096         {
   5097           "enumerant" : "ClipDistance",
   5098           "value" : 3,
   5099           "capabilities" : [ "ClipDistance" ]
   5100         },
   5101         {
   5102           "enumerant" : "CullDistance",
   5103           "value" : 4,
   5104           "capabilities" : [ "CullDistance" ]
   5105         },
   5106         {
   5107           "enumerant" : "VertexId",
   5108           "value" : 5,
   5109           "capabilities" : [ "Shader" ]
   5110         },
   5111         {
   5112           "enumerant" : "InstanceId",
   5113           "value" : 6,
   5114           "capabilities" : [ "Shader" ]
   5115         },
   5116         {
   5117           "enumerant" : "PrimitiveId",
   5118           "value" : 7,
   5119           "capabilities" : [ "Geometry", "Tessellation" ]
   5120         },
   5121         {
   5122           "enumerant" : "InvocationId",
   5123           "value" : 8,
   5124           "capabilities" : [ "Geometry", "Tessellation" ]
   5125         },
   5126         {
   5127           "enumerant" : "Layer",
   5128           "value" : 9,
   5129           "capabilities" : [ "Geometry" ]
   5130         },
   5131         {
   5132           "enumerant" : "ViewportIndex",
   5133           "value" : 10,
   5134           "capabilities" : [ "MultiViewport" ]
   5135         },
   5136         {
   5137           "enumerant" : "TessLevelOuter",
   5138           "value" : 11,
   5139           "capabilities" : [ "Tessellation" ]
   5140         },
   5141         {
   5142           "enumerant" : "TessLevelInner",
   5143           "value" : 12,
   5144           "capabilities" : [ "Tessellation" ]
   5145         },
   5146         {
   5147           "enumerant" : "TessCoord",
   5148           "value" : 13,
   5149           "capabilities" : [ "Tessellation" ]
   5150         },
   5151         {
   5152           "enumerant" : "PatchVertices",
   5153           "value" : 14,
   5154           "capabilities" : [ "Tessellation" ]
   5155         },
   5156         {
   5157           "enumerant" : "FragCoord",
   5158           "value" : 15,
   5159           "capabilities" : [ "Shader" ]
   5160         },
   5161         {
   5162           "enumerant" : "PointCoord",
   5163           "value" : 16,
   5164           "capabilities" : [ "Shader" ]
   5165         },
   5166         {
   5167           "enumerant" : "FrontFacing",
   5168           "value" : 17,
   5169           "capabilities" : [ "Shader" ]
   5170         },
   5171         {
   5172           "enumerant" : "SampleId",
   5173           "value" : 18,
   5174           "capabilities" : [ "SampleRateShading" ]
   5175         },
   5176         {
   5177           "enumerant" : "SamplePosition",
   5178           "value" : 19,
   5179           "capabilities" : [ "SampleRateShading" ]
   5180         },
   5181         {
   5182           "enumerant" : "SampleMask",
   5183           "value" : 20,
   5184           "capabilities" : [ "Shader" ]
   5185         },
   5186         {
   5187           "enumerant" : "FragDepth",
   5188           "value" : 22,
   5189           "capabilities" : [ "Shader" ]
   5190         },
   5191         {
   5192           "enumerant" : "HelperInvocation",
   5193           "value" : 23,
   5194           "capabilities" : [ "Shader" ]
   5195         },
   5196         {
   5197           "enumerant" : "NumWorkgroups",
   5198           "value" : 24
   5199         },
   5200         {
   5201           "enumerant" : "WorkgroupSize",
   5202           "value" : 25
   5203         },
   5204         {
   5205           "enumerant" : "WorkgroupId",
   5206           "value" : 26
   5207         },
   5208         {
   5209           "enumerant" : "LocalInvocationId",
   5210           "value" : 27
   5211         },
   5212         {
   5213           "enumerant" : "GlobalInvocationId",
   5214           "value" : 28
   5215         },
   5216         {
   5217           "enumerant" : "LocalInvocationIndex",
   5218           "value" : 29
   5219         },
   5220         {
   5221           "enumerant" : "WorkDim",
   5222           "value" : 30,
   5223           "capabilities" : [ "Kernel" ]
   5224         },
   5225         {
   5226           "enumerant" : "GlobalSize",
   5227           "value" : 31,
   5228           "capabilities" : [ "Kernel" ]
   5229         },
   5230         {
   5231           "enumerant" : "EnqueuedWorkgroupSize",
   5232           "value" : 32,
   5233           "capabilities" : [ "Kernel" ]
   5234         },
   5235         {
   5236           "enumerant" : "GlobalOffset",
   5237           "value" : 33,
   5238           "capabilities" : [ "Kernel" ]
   5239         },
   5240         {
   5241           "enumerant" : "GlobalLinearId",
   5242           "value" : 34,
   5243           "capabilities" : [ "Kernel" ]
   5244         },
   5245         {
   5246           "enumerant" : "SubgroupSize",
   5247           "value" : 36,
   5248           "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
   5249         },
   5250         {
   5251           "enumerant" : "SubgroupMaxSize",
   5252           "value" : 37,
   5253           "capabilities" : [ "Kernel" ]
   5254         },
   5255         {
   5256           "enumerant" : "NumSubgroups",
   5257           "value" : 38,
   5258           "capabilities" : [ "Kernel" ]
   5259         },
   5260         {
   5261           "enumerant" : "NumEnqueuedSubgroups",
   5262           "value" : 39,
   5263           "capabilities" : [ "Kernel" ]
   5264         },
   5265         {
   5266           "enumerant" : "SubgroupId",
   5267           "value" : 40,
   5268           "capabilities" : [ "Kernel" ]
   5269         },
   5270         {
   5271           "enumerant" : "SubgroupLocalInvocationId",
   5272           "value" : 41,
   5273           "capabilities" : [ "Kernel", "SubgroupBallotKHR" ]
   5274         },
   5275         {
   5276           "enumerant" : "VertexIndex",
   5277           "value" : 42,
   5278           "capabilities" : [ "Shader" ]
   5279         },
   5280         {
   5281           "enumerant" : "InstanceIndex",
   5282           "value" : 43,
   5283           "capabilities" : [ "Shader" ]
   5284         },
   5285         {
   5286           "enumerant" : "SubgroupEqMaskKHR",
   5287           "value" : 4416,
   5288           "capabilities" : [ "SubgroupBallotKHR" ]
   5289         },
   5290         {
   5291           "enumerant" : "SubgroupGeMaskKHR",
   5292           "value" : 4417,
   5293           "capabilities" : [ "SubgroupBallotKHR" ]
   5294         },
   5295         {
   5296           "enumerant" : "SubgroupGtMaskKHR",
   5297           "value" : 4418,
   5298           "capabilities" : [ "SubgroupBallotKHR" ]
   5299         },
   5300         {
   5301           "enumerant" : "SubgroupLeMaskKHR",
   5302           "value" : 4419,
   5303           "capabilities" : [ "SubgroupBallotKHR" ]
   5304         },
   5305         {
   5306           "enumerant" : "SubgroupLtMaskKHR",
   5307           "value" : 4420,
   5308           "capabilities" : [ "SubgroupBallotKHR" ]
   5309         },
   5310         {
   5311           "enumerant" : "BaseVertex",
   5312           "value" : 4424,
   5313           "capabilities" : [ "DrawParameters" ]
   5314         },
   5315         {
   5316           "enumerant" : "BaseInstance",
   5317           "value" : 4425,
   5318           "capabilities" : [ "DrawParameters" ]
   5319         },
   5320         {
   5321           "enumerant" : "DrawIndex",
   5322           "value" : 4426,
   5323           "capabilities" : [ "DrawParameters" ]
   5324         },
   5325         {
   5326           "enumerant" : "DeviceIndex",
   5327           "value" : 4438,
   5328           "capabilities" : [ "DeviceGroup" ]
   5329         },
   5330         {
   5331           "enumerant" : "ViewIndex",
   5332           "value" : 4440,
   5333           "capabilities" : [ "MultiView" ]
   5334         },
   5335         {
   5336           "enumerant" : "BaryCoordNoPerspAMD",
   5337           "value" : 4992
   5338         },
   5339         {
   5340           "enumerant" : "BaryCoordNoPerspCentroidAMD",
   5341           "value" : 4993
   5342         },
   5343         {
   5344           "enumerant" : "BaryCoordNoPerspSampleAMD",
   5345           "value" : 4994
   5346         },
   5347         {
   5348           "enumerant" : "BaryCoordSmoothAMD",
   5349           "value" : 4995
   5350         },
   5351         {
   5352           "enumerant" : "BaryCoordSmoothCentroidAMD",
   5353           "value" : 4996
   5354         },
   5355         {
   5356           "enumerant" : "BaryCoordSmoothSampleAMD",
   5357           "value" : 4997
   5358         },
   5359         {
   5360           "enumerant" : "BaryCoordPullModelAMD",
   5361           "value" : 4998
   5362         },
   5363         {
   5364           "enumerant" : "FragStencilRefEXT",
   5365           "value" : 5014,
   5366           "capabilities" : [ "StencilExportEXT" ]
   5367         },
   5368         {
   5369           "enumerant" : "ViewportMaskNV",
   5370           "value" : 5253,
   5371           "capabilities" : [ "ShaderViewportMaskNV" ]
   5372         },
   5373         {
   5374           "enumerant" : "SecondaryPositionNV",
   5375           "value" : 5257,
   5376           "capabilities" : [ "ShaderStereoViewNV" ]
   5377         },
   5378         {
   5379           "enumerant" : "SecondaryViewportMaskNV",
   5380           "value" : 5258,
   5381           "capabilities" : [ "ShaderStereoViewNV" ]
   5382         },
   5383         {
   5384           "enumerant" : "PositionPerViewNV",
   5385           "value" : 5261,
   5386           "capabilities" : [ "PerViewAttributesNV" ]
   5387         },
   5388         {
   5389           "enumerant" : "ViewportMaskPerViewNV",
   5390           "value" : 5262,
   5391           "capabilities" : [ "PerViewAttributesNV" ]
   5392         }
   5393       ]
   5394     },
   5395     {
   5396       "category" : "ValueEnum",
   5397       "kind" : "Scope",
   5398       "enumerants" : [
   5399         {
   5400           "enumerant" : "CrossDevice",
   5401           "value" : 0
   5402         },
   5403         {
   5404           "enumerant" : "Device",
   5405           "value" : 1
   5406         },
   5407         {
   5408           "enumerant" : "Workgroup",
   5409           "value" : 2
   5410         },
   5411         {
   5412           "enumerant" : "Subgroup",
   5413           "value" : 3
   5414         },
   5415         {
   5416           "enumerant" : "Invocation",
   5417           "value" : 4
   5418         }
   5419       ]
   5420     },
   5421     {
   5422       "category" : "ValueEnum",
   5423       "kind" : "GroupOperation",
   5424       "enumerants" : [
   5425         {
   5426           "enumerant" : "Reduce",
   5427           "value" : 0,
   5428           "capabilities" : [ "Kernel" ]
   5429         },
   5430         {
   5431           "enumerant" : "InclusiveScan",
   5432           "value" : 1,
   5433           "capabilities" : [ "Kernel" ]
   5434         },
   5435         {
   5436           "enumerant" : "ExclusiveScan",
   5437           "value" : 2,
   5438           "capabilities" : [ "Kernel" ]
   5439         }
   5440       ]
   5441     },
   5442     {
   5443       "category" : "ValueEnum",
   5444       "kind" : "KernelEnqueueFlags",
   5445       "enumerants" : [
   5446         {
   5447           "enumerant" : "NoWait",
   5448           "value" : 0,
   5449           "capabilities" : [ "Kernel" ]
   5450         },
   5451         {
   5452           "enumerant" : "WaitKernel",
   5453           "value" : 1,
   5454           "capabilities" : [ "Kernel" ]
   5455         },
   5456         {
   5457           "enumerant" : "WaitWorkGroup",
   5458           "value" : 2,
   5459           "capabilities" : [ "Kernel" ]
   5460         }
   5461       ]
   5462     },
   5463     {
   5464       "category" : "ValueEnum",
   5465       "kind" : "Capability",
   5466       "enumerants" : [
   5467         {
   5468           "enumerant" : "Matrix",
   5469           "value" : 0
   5470         },
   5471         {
   5472           "enumerant" : "Shader",
   5473           "value" : 1,
   5474           "capabilities" : [ "Matrix" ]
   5475         },
   5476         {
   5477           "enumerant" : "Geometry",
   5478           "value" : 2,
   5479           "capabilities" : [ "Shader" ]
   5480         },
   5481         {
   5482           "enumerant" : "Tessellation",
   5483           "value" : 3,
   5484           "capabilities" : [ "Shader" ]
   5485         },
   5486         {
   5487           "enumerant" : "Addresses",
   5488           "value" : 4
   5489         },
   5490         {
   5491           "enumerant" : "Linkage",
   5492           "value" : 5
   5493         },
   5494         {
   5495           "enumerant" : "Kernel",
   5496           "value" : 6
   5497         },
   5498         {
   5499           "enumerant" : "Vector16",
   5500           "value" : 7,
   5501           "capabilities" : [ "Kernel" ]
   5502         },
   5503         {
   5504           "enumerant" : "Float16Buffer",
   5505           "value" : 8,
   5506           "capabilities" : [ "Kernel" ]
   5507         },
   5508         {
   5509           "enumerant" : "Float16",
   5510           "value" : 9
   5511         },
   5512         {
   5513           "enumerant" : "Float64",
   5514           "value" : 10
   5515         },
   5516         {
   5517           "enumerant" : "Int64",
   5518           "value" : 11
   5519         },
   5520         {
   5521           "enumerant" : "Int64Atomics",
   5522           "value" : 12,
   5523           "capabilities" : [ "Int64" ]
   5524         },
   5525         {
   5526           "enumerant" : "ImageBasic",
   5527           "value" : 13,
   5528           "capabilities" : [ "Kernel" ]
   5529         },
   5530         {
   5531           "enumerant" : "ImageReadWrite",
   5532           "value" : 14,
   5533           "capabilities" : [ "ImageBasic" ]
   5534         },
   5535         {
   5536           "enumerant" : "ImageMipmap",
   5537           "value" : 15,
   5538           "capabilities" : [ "ImageBasic" ]
   5539         },
   5540         {
   5541           "enumerant" : "Pipes",
   5542           "value" : 17,
   5543           "capabilities" : [ "Kernel" ]
   5544         },
   5545         {
   5546           "enumerant" : "Groups",
   5547           "value" : 18
   5548         },
   5549         {
   5550           "enumerant" : "DeviceEnqueue",
   5551           "value" : 19,
   5552           "capabilities" : [ "Kernel" ]
   5553         },
   5554         {
   5555           "enumerant" : "LiteralSampler",
   5556           "value" : 20,
   5557           "capabilities" : [ "Kernel" ]
   5558         },
   5559         {
   5560           "enumerant" : "AtomicStorage",
   5561           "value" : 21,
   5562           "capabilities" : [ "Shader" ]
   5563         },
   5564         {
   5565           "enumerant" : "Int16",
   5566           "value" : 22
   5567         },
   5568         {
   5569           "enumerant" : "TessellationPointSize",
   5570           "value" : 23,
   5571           "capabilities" : [ "Tessellation" ]
   5572         },
   5573         {
   5574           "enumerant" : "GeometryPointSize",
   5575           "value" : 24,
   5576           "capabilities" : [ "Geometry" ]
   5577         },
   5578         {
   5579           "enumerant" : "ImageGatherExtended",
   5580           "value" : 25,
   5581           "capabilities" : [ "Shader" ]
   5582         },
   5583         {
   5584           "enumerant" : "StorageImageMultisample",
   5585           "value" : 27,
   5586           "capabilities" : [ "Shader" ]
   5587         },
   5588         {
   5589           "enumerant" : "UniformBufferArrayDynamicIndexing",
   5590           "value" : 28,
   5591           "capabilities" : [ "Shader" ]
   5592         },
   5593         {
   5594           "enumerant" : "SampledImageArrayDynamicIndexing",
   5595           "value" : 29,
   5596           "capabilities" : [ "Shader" ]
   5597         },
   5598         {
   5599           "enumerant" : "StorageBufferArrayDynamicIndexing",
   5600           "value" : 30,
   5601           "capabilities" : [ "Shader" ]
   5602         },
   5603         {
   5604           "enumerant" : "StorageImageArrayDynamicIndexing",
   5605           "value" : 31,
   5606           "capabilities" : [ "Shader" ]
   5607         },
   5608         {
   5609           "enumerant" : "ClipDistance",
   5610           "value" : 32,
   5611           "capabilities" : [ "Shader" ]
   5612         },
   5613         {
   5614           "enumerant" : "CullDistance",
   5615           "value" : 33,
   5616           "capabilities" : [ "Shader" ]
   5617         },
   5618         {
   5619           "enumerant" : "ImageCubeArray",
   5620           "value" : 34,
   5621           "capabilities" : [ "SampledCubeArray" ]
   5622         },
   5623         {
   5624           "enumerant" : "SampleRateShading",
   5625           "value" : 35,
   5626           "capabilities" : [ "Shader" ]
   5627         },
   5628         {
   5629           "enumerant" : "ImageRect",
   5630           "value" : 36,
   5631           "capabilities" : [ "SampledRect" ]
   5632         },
   5633         {
   5634           "enumerant" : "SampledRect",
   5635           "value" : 37,
   5636           "capabilities" : [ "Shader" ]
   5637         },
   5638         {
   5639           "enumerant" : "GenericPointer",
   5640           "value" : 38,
   5641           "capabilities" : [ "Addresses" ]
   5642         },
   5643         {
   5644           "enumerant" : "Int8",
   5645           "value" : 39,
   5646           "capabilities" : [ "Kernel" ]
   5647         },
   5648         {
   5649           "enumerant" : "InputAttachment",
   5650           "value" : 40,
   5651           "capabilities" : [ "Shader" ]
   5652         },
   5653         {
   5654           "enumerant" : "SparseResidency",
   5655           "value" : 41,
   5656           "capabilities" : [ "Shader" ]
   5657         },
   5658         {
   5659           "enumerant" : "MinLod",
   5660           "value" : 42,
   5661           "capabilities" : [ "Shader" ]
   5662         },
   5663         {
   5664           "enumerant" : "Sampled1D",
   5665           "value" : 43
   5666         },
   5667         {
   5668           "enumerant" : "Image1D",
   5669           "value" : 44,
   5670           "capabilities" : [ "Sampled1D" ]
   5671         },
   5672         {
   5673           "enumerant" : "SampledCubeArray",
   5674           "value" : 45,
   5675           "capabilities" : [ "Shader" ]
   5676         },
   5677         {
   5678           "enumerant" : "SampledBuffer",
   5679           "value" : 46
   5680         },
   5681         {
   5682           "enumerant" : "ImageBuffer",
   5683           "value" : 47,
   5684           "capabilities" : [ "SampledBuffer" ]
   5685         },
   5686         {
   5687           "enumerant" : "ImageMSArray",
   5688           "value" : 48,
   5689           "capabilities" : [ "Shader" ]
   5690         },
   5691         {
   5692           "enumerant" : "StorageImageExtendedFormats",
   5693           "value" : 49,
   5694           "capabilities" : [ "Shader" ]
   5695         },
   5696         {
   5697           "enumerant" : "ImageQuery",
   5698           "value" : 50,
   5699           "capabilities" : [ "Shader" ]
   5700         },
   5701         {
   5702           "enumerant" : "DerivativeControl",
   5703           "value" : 51,
   5704           "capabilities" : [ "Shader" ]
   5705         },
   5706         {
   5707           "enumerant" : "InterpolationFunction",
   5708           "value" : 52,
   5709           "capabilities" : [ "Shader" ]
   5710         },
   5711         {
   5712           "enumerant" : "TransformFeedback",
   5713           "value" : 53,
   5714           "capabilities" : [ "Shader" ]
   5715         },
   5716         {
   5717           "enumerant" : "GeometryStreams",
   5718           "value" : 54,
   5719           "capabilities" : [ "Geometry" ]
   5720         },
   5721         {
   5722           "enumerant" : "StorageImageReadWithoutFormat",
   5723           "value" : 55,
   5724           "capabilities" : [ "Shader" ]
   5725         },
   5726         {
   5727           "enumerant" : "StorageImageWriteWithoutFormat",
   5728           "value" : 56,
   5729           "capabilities" : [ "Shader" ]
   5730         },
   5731         {
   5732           "enumerant" : "MultiViewport",
   5733           "value" : 57,
   5734           "capabilities" : [ "Geometry" ]
   5735         },
   5736         {
   5737           "enumerant" : "SubgroupDispatch",
   5738           "value" : 58,
   5739           "capabilities" : [ "DeviceEnqueue" ]
   5740         },
   5741         {
   5742           "enumerant" : "NamedBarrier",
   5743           "value" : 59,
   5744           "capabilities" : [ "Kernel" ]
   5745         },
   5746         {
   5747           "enumerant" : "PipeStorage",
   5748           "value" : 60,
   5749           "capabilities" : [ "Pipes" ]
   5750         },
   5751         {
   5752           "enumerant" : "SubgroupBallotKHR",
   5753           "value" : 4423,
   5754           "extensions" : [ "SPV_KHR_shader_ballot" ]
   5755         },
   5756         {
   5757           "enumerant" : "DrawParameters",
   5758           "value" : 4427,
   5759           "extensions" : [ "SPV_KHR_shader_draw_parameters" ]
   5760         },
   5761         {
   5762           "enumerant" : "SubgroupVoteKHR",
   5763           "value" : 4431,
   5764           "extensions" : [ "SPV_KHR_subgroup_vote" ]
   5765         },
   5766         {
   5767           "enumerant" : "StorageBuffer16BitAccess",
   5768           "value" : 4433,
   5769           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5770         },
   5771         {
   5772           "enumerant" : "StorageUniformBufferBlock16",
   5773           "value" : 4433,
   5774           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5775         },
   5776         {
   5777           "enumerant" : "UniformAndStorageBuffer16BitAccess",
   5778           "value" : 4434,
   5779           "capabilities" : [
   5780             "StorageBuffer16BitAccess",
   5781             "StorageUniformBufferBlock16"
   5782           ],
   5783           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5784         },
   5785         {
   5786           "enumerant" : "StorageUniform16",
   5787           "value" : 4434,
   5788           "capabilities" : [
   5789             "StorageBuffer16BitAccess",
   5790             "StorageUniformBufferBlock16"
   5791           ],
   5792           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5793         },
   5794         {
   5795           "enumerant" : "StoragePushConstant16",
   5796           "value" : 4435,
   5797           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5798         },
   5799         {
   5800           "enumerant" : "StorageInputOutput16",
   5801           "value" : 4436,
   5802           "extensions" : [ "SPV_KHR_16bit_storage" ]
   5803         },
   5804         {
   5805           "enumerant" : "DeviceGroup",
   5806           "value" : 4437,
   5807           "extensions" : [ "SPV_KHR_device_group" ]
   5808         },
   5809         {
   5810           "enumerant" : "MultiView",
   5811           "value" : 4439,
   5812           "capabilities" : [ "Shader" ],
   5813           "extensions" : [ "SPV_KHR_multiview" ]
   5814         },
   5815         {
   5816           "enumerant" : "VariablePointersStorageBuffer",
   5817           "value" : 4441,
   5818           "capabilities" : [ "Shader" ],
   5819           "extensions" : [ "SPV_KHR_variable_pointers" ]
   5820         },
   5821         {
   5822           "enumerant" : "VariablePointers",
   5823           "value" : 4442,
   5824           "capabilities" : [ "VariablePointersStorageBuffer" ],
   5825           "extensions" : [ "SPV_KHR_variable_pointers" ]
   5826         },
   5827         {
   5828             "enumerant": "AtomicStorageOps",
   5829             "value": 4445,
   5830             "extensions": [ "SPV_KHR_shader_atomic_counter_ops" ]
   5831         },
   5832         {
   5833           "enumerant" : "SampleMaskPostDepthCoverage",
   5834           "value" : 4447,
   5835           "extensions" : [ "SPV_KHR_post_depth_coverage" ]
   5836         },
   5837         {
   5838           "enumerant" : "ImageGatherBiasLodAMD",
   5839           "value" : 5009,
   5840           "capabilities" : [ "Shader" ],
   5841           "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ]
   5842         },
   5843         {
   5844           "enumerant" : "FragmentMaskAMD",
   5845           "value" : 5010,
   5846           "capabilities" : [ "Shader" ],
   5847           "extensions" : [ "SPV_AMD_shader_fragment_mask" ]
   5848         },
   5849         {
   5850           "enumerant" : "StencilExportEXT",
   5851           "value" : 5013,
   5852           "capabilities" : [ "Shader" ],
   5853           "extensions" : [ "SPV_EXT_shader_stencil_export" ]
   5854         },
   5855         {
   5856           "enumerant" : "ImageReadWriteLodAMD",
   5857           "value" : 5015,
   5858           "capabilities" : [ "Shader" ],
   5859           "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ]
   5860         },
   5861         {
   5862           "enumerant" : "SampleMaskOverrideCoverageNV",
   5863           "value" : 5249,
   5864           "capabilities" : [ "SampleRateShading" ],
   5865           "extensions" : [ "SPV_NV_sample_mask_override_coverage" ]
   5866         },
   5867         {
   5868           "enumerant" : "GeometryShaderPassthroughNV",
   5869           "value" : 5251,
   5870           "capabilities" : [ "Geometry" ],
   5871           "extensions" : [ "SPV_NV_geometry_shader_passthrough" ]
   5872         },
   5873         {
   5874           "enumerant" : "ShaderViewportIndexLayerEXT",
   5875           "value" : 5254,
   5876           "capabilities" : [ "MultiViewport" ],
   5877           "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ]
   5878         },
   5879         {
   5880           "enumerant" : "ShaderViewportIndexLayerNV",
   5881           "value" : 5254,
   5882           "capabilities" : [ "MultiViewport" ],
   5883           "extensions" : [ "SPV_NV_viewport_array2" ]
   5884         },
   5885         {
   5886           "enumerant" : "ShaderViewportMaskNV",
   5887           "value" : 5255,
   5888           "capabilities" : [ "ShaderViewportIndexLayerNV" ],
   5889           "extensions" : [ "SPV_NV_viewport_array2" ]
   5890         },
   5891         {
   5892           "enumerant" : "ShaderStereoViewNV",
   5893           "value" : 5259,
   5894           "capabilities" : [ "ShaderViewportMaskNV" ],
   5895           "extensions" : [ "SPV_NV_stereo_view_rendering" ]
   5896         },
   5897         {
   5898           "enumerant" : "PerViewAttributesNV",
   5899           "value" : 5260,
   5900           "capabilities" : [ "MultiView" ],
   5901           "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ]
   5902         },
   5903         {
   5904           "enumerant" : "SubgroupShuffleINTEL",
   5905           "value" : 5568,
   5906           "extensions" : [ "SPV_INTEL_subgroups" ]
   5907         },
   5908         {
   5909           "enumerant" : "SubgroupBufferBlockIOINTEL",
   5910           "value" : 5569,
   5911           "extensions" : [ "SPV_INTEL_subgroups" ]
   5912         },
   5913         {
   5914           "enumerant" : "SubgroupImageBlockIOINTEL",
   5915           "value" : 5570,
   5916           "extensions" : [ "SPV_INTEL_subgroups" ]
   5917         }
   5918       ]
   5919     },
   5920     {
   5921       "category" : "Id",
   5922       "kind" : "IdResultType",
   5923       "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
   5924     },
   5925     {
   5926       "category" : "Id",
   5927       "kind" : "IdResult",
   5928       "doc" : "Definition of an <id> representing the result of the enclosing instruction"
   5929     },
   5930     {
   5931       "category" : "Id",
   5932       "kind" : "IdMemorySemantics",
   5933       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
   5934     },
   5935     {
   5936       "category" : "Id",
   5937       "kind" : "IdScope",
   5938       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
   5939     },
   5940     {
   5941       "category" : "Id",
   5942       "kind" : "IdRef",
   5943       "doc" : "Reference to an <id>"
   5944     },
   5945     {
   5946       "category" : "Literal",
   5947       "kind" : "LiteralInteger",
   5948       "doc" : "An integer consuming one or more words"
   5949     },
   5950     {
   5951       "category" : "Literal",
   5952       "kind" : "LiteralString",
   5953       "doc" : "A null-terminated stream of characters consuming an integral number of words"
   5954     },
   5955     {
   5956       "category" : "Literal",
   5957       "kind" : "LiteralContextDependentNumber",
   5958       "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
   5959     },
   5960     {
   5961       "category" : "Literal",
   5962       "kind" : "LiteralExtInstInteger",
   5963       "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
   5964     },
   5965     {
   5966       "category" : "Literal",
   5967       "kind" : "LiteralSpecConstantOpInteger",
   5968       "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
   5969     },
   5970     {
   5971       "category" : "Composite",
   5972       "kind" : "PairLiteralIntegerIdRef",
   5973       "bases" : [ "LiteralInteger", "IdRef" ]
   5974     },
   5975     {
   5976       "category" : "Composite",
   5977       "kind" : "PairIdRefLiteralInteger",
   5978       "bases" : [ "IdRef", "LiteralInteger" ]
   5979     },
   5980     {
   5981       "category" : "Composite",
   5982       "kind" : "PairIdRefIdRef",
   5983       "bases" : [ "IdRef", "IdRef" ]
   5984     }
   5985   ]
   5986 }
   5987