Home | History | Annotate | Download | only in spirv
      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" : 3,
     30   "revision" : 1,
     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       "version" : "None"
   2891     },
   2892     {
   2893       "opname" : "OpImageSparseSampleProjExplicitLod",
   2894       "opcode" : 310,
   2895       "operands" : [
   2896         { "kind" : "IdResultType" },
   2897         { "kind" : "IdResult" },
   2898         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2899         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2900         { "kind" : "ImageOperands" }
   2901       ],
   2902       "capabilities" : [ "SparseResidency" ],
   2903       "version" : "None"
   2904     },
   2905     {
   2906       "opname" : "OpImageSparseSampleProjDrefImplicitLod",
   2907       "opcode" : 311,
   2908       "operands" : [
   2909         { "kind" : "IdResultType" },
   2910         { "kind" : "IdResult" },
   2911         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2912         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2913         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2914         { "kind" : "ImageOperands", "quantifier" : "?" }
   2915       ],
   2916       "capabilities" : [ "SparseResidency" ],
   2917       "version" : "None"
   2918     },
   2919     {
   2920       "opname" : "OpImageSparseSampleProjDrefExplicitLod",
   2921       "opcode" : 312,
   2922       "operands" : [
   2923         { "kind" : "IdResultType" },
   2924         { "kind" : "IdResult" },
   2925         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
   2926         { "kind" : "IdRef",         "name" : "'Coordinate'" },
   2927         { "kind" : "IdRef",         "name" : "'D~ref~'" },
   2928         { "kind" : "ImageOperands" }
   2929       ],
   2930       "capabilities" : [ "SparseResidency" ],
   2931       "version" : "None"
   2932     },
   2933     {
   2934       "opname" : "OpImageSparseFetch",
   2935       "opcode" : 313,
   2936       "operands" : [
   2937         { "kind" : "IdResultType" },
   2938         { "kind" : "IdResult" },
   2939         { "kind" : "IdRef",                             "name" : "'Image'" },
   2940         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2941         { "kind" : "ImageOperands", "quantifier" : "?" }
   2942       ],
   2943       "capabilities" : [ "SparseResidency" ]
   2944     },
   2945     {
   2946       "opname" : "OpImageSparseGather",
   2947       "opcode" : 314,
   2948       "operands" : [
   2949         { "kind" : "IdResultType" },
   2950         { "kind" : "IdResult" },
   2951         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2952         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2953         { "kind" : "IdRef",                             "name" : "'Component'" },
   2954         { "kind" : "ImageOperands", "quantifier" : "?" }
   2955       ],
   2956       "capabilities" : [ "SparseResidency" ]
   2957     },
   2958     {
   2959       "opname" : "OpImageSparseDrefGather",
   2960       "opcode" : 315,
   2961       "operands" : [
   2962         { "kind" : "IdResultType" },
   2963         { "kind" : "IdResult" },
   2964         { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
   2965         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   2966         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
   2967         { "kind" : "ImageOperands", "quantifier" : "?" }
   2968       ],
   2969       "capabilities" : [ "SparseResidency" ]
   2970     },
   2971     {
   2972       "opname" : "OpImageSparseTexelsResident",
   2973       "opcode" : 316,
   2974       "operands" : [
   2975         { "kind" : "IdResultType" },
   2976         { "kind" : "IdResult" },
   2977         { "kind" : "IdRef",        "name" : "'Resident Code'" }
   2978       ],
   2979       "capabilities" : [ "SparseResidency" ]
   2980     },
   2981     {
   2982       "opname" : "OpNoLine",
   2983       "opcode" : 317
   2984     },
   2985     {
   2986       "opname" : "OpAtomicFlagTestAndSet",
   2987       "opcode" : 318,
   2988       "operands" : [
   2989         { "kind" : "IdResultType" },
   2990         { "kind" : "IdResult" },
   2991         { "kind" : "IdRef",             "name" : "'Pointer'" },
   2992         { "kind" : "IdScope",           "name" : "'Scope'" },
   2993         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   2994       ],
   2995       "capabilities" : [ "Kernel" ]
   2996     },
   2997     {
   2998       "opname" : "OpAtomicFlagClear",
   2999       "opcode" : 319,
   3000       "operands" : [
   3001         { "kind" : "IdRef",             "name" : "'Pointer'" },
   3002         { "kind" : "IdScope",           "name" : "'Scope'" },
   3003         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3004       ],
   3005       "capabilities" : [ "Kernel" ]
   3006     },
   3007     {
   3008       "opname" : "OpImageSparseRead",
   3009       "opcode" : 320,
   3010       "operands" : [
   3011         { "kind" : "IdResultType" },
   3012         { "kind" : "IdResult" },
   3013         { "kind" : "IdRef",                             "name" : "'Image'" },
   3014         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
   3015         { "kind" : "ImageOperands", "quantifier" : "?" }
   3016       ],
   3017       "capabilities" : [ "SparseResidency" ]
   3018     },
   3019     {
   3020       "opname" : "OpSizeOf",
   3021       "opcode" : 321,
   3022       "operands" : [
   3023         { "kind" : "IdResultType" },
   3024         { "kind" : "IdResult" },
   3025         { "kind" : "IdRef", "name" : "'Pointer'" }
   3026       ],
   3027       "capabilities" : [ "Addresses" ],
   3028       "version" : "1.1"
   3029     },
   3030     {
   3031       "opname" : "OpTypePipeStorage",
   3032       "opcode" : 322,
   3033       "operands" : [
   3034         { "kind" : "IdResult" }
   3035       ],
   3036       "capabilities" : [ "PipeStorage" ],
   3037       "version" : "1.1"
   3038     },
   3039     {
   3040       "opname" : "OpConstantPipeStorage",
   3041       "opcode" : 323,
   3042       "operands" : [
   3043         { "kind" : "IdResultType" },
   3044         { "kind" : "IdResult" },
   3045         { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
   3046         { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
   3047         { "kind" : "LiteralInteger", "name" : "'Capacity'" }
   3048       ],
   3049       "capabilities" : [ "PipeStorage" ],
   3050       "version" : "1.1"
   3051     },
   3052     {
   3053       "opname" : "OpCreatePipeFromPipeStorage",
   3054       "opcode" : 324,
   3055       "operands" : [
   3056         { "kind" : "IdResultType" },
   3057         { "kind" : "IdResult" },
   3058         { "kind" : "IdRef", "name" : "'Pipe Storage'" }
   3059       ],
   3060       "capabilities" : [ "PipeStorage" ],
   3061       "version" : "1.1"
   3062     },
   3063     {
   3064       "opname" : "OpGetKernelLocalSizeForSubgroupCount",
   3065       "opcode" : 325,
   3066       "operands" : [
   3067         { "kind" : "IdResultType" },
   3068         { "kind" : "IdResult" },
   3069         { "kind" : "IdRef", "name" : "'Subgroup Count'" },
   3070         { "kind" : "IdRef", "name" : "'Invoke'" },
   3071         { "kind" : "IdRef", "name" : "'Param'" },
   3072         { "kind" : "IdRef", "name" : "'Param Size'" },
   3073         { "kind" : "IdRef", "name" : "'Param Align'" }
   3074       ],
   3075       "capabilities" : [ "SubgroupDispatch" ],
   3076       "version" : "1.1"
   3077     },
   3078     {
   3079       "opname" : "OpGetKernelMaxNumSubgroups",
   3080       "opcode" : 326,
   3081       "operands" : [
   3082         { "kind" : "IdResultType" },
   3083         { "kind" : "IdResult" },
   3084         { "kind" : "IdRef", "name" : "'Invoke'" },
   3085         { "kind" : "IdRef", "name" : "'Param'" },
   3086         { "kind" : "IdRef", "name" : "'Param Size'" },
   3087         { "kind" : "IdRef", "name" : "'Param Align'" }
   3088       ],
   3089       "capabilities" : [ "SubgroupDispatch" ],
   3090       "version" : "1.1"
   3091     },
   3092     {
   3093       "opname" : "OpTypeNamedBarrier",
   3094       "opcode" : 327,
   3095       "operands" : [
   3096         { "kind" : "IdResult" }
   3097       ],
   3098       "capabilities" : [ "NamedBarrier" ],
   3099       "version" : "1.1"
   3100     },
   3101     {
   3102       "opname" : "OpNamedBarrierInitialize",
   3103       "opcode" : 328,
   3104       "operands" : [
   3105         { "kind" : "IdResultType" },
   3106         { "kind" : "IdResult" },
   3107         { "kind" : "IdRef", "name" : "'Subgroup Count'" }
   3108       ],
   3109       "capabilities" : [ "NamedBarrier" ],
   3110       "version" : "1.1"
   3111     },
   3112     {
   3113       "opname" : "OpMemoryNamedBarrier",
   3114       "opcode" : 329,
   3115       "operands" : [
   3116         { "kind" : "IdRef", "name" : "'Named Barrier'" },
   3117         { "kind" : "IdScope", "name" : "'Memory'" },
   3118         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
   3119       ],
   3120       "capabilities" : [ "NamedBarrier" ],
   3121       "version" : "1.1"
   3122     },
   3123     {
   3124       "opname" : "OpModuleProcessed",
   3125       "opcode" : 330,
   3126       "operands" : [
   3127         { "kind" : "LiteralString", "name" : "'Process'" }
   3128       ],
   3129       "version" : "1.1"
   3130     },
   3131     {
   3132       "opname" : "OpExecutionModeId",
   3133       "opcode" : 331,
   3134       "operands" : [
   3135         { "kind" : "IdRef", "name" : "'Entry Point'" },
   3136         { "kind" : "ExecutionMode", "name" : "'Mode'" }
   3137       ],
   3138       "version" : "1.2"
   3139     },
   3140     {
   3141       "opname" : "OpDecorateId",
   3142       "opcode" : 332,
   3143       "operands" : [
   3144         { "kind" : "IdRef", "name" : "'Target'" },
   3145         { "kind" : "Decoration" }
   3146       ],
   3147       "version" : "1.2"
   3148     },
   3149     {
   3150       "opname" : "OpSubgroupBallotKHR",
   3151       "opcode" : 4421,
   3152       "operands" : [
   3153         { "kind" : "IdResultType" },
   3154         { "kind" : "IdResult" },
   3155         { "kind" : "IdRef", "name" : "'Predicate'" }
   3156       ],
   3157       "capabilities" : [ "SubgroupBallotKHR" ]
   3158     },
   3159     {
   3160       "opname" : "OpSubgroupFirstInvocationKHR",
   3161       "opcode" : 4422,
   3162       "operands" : [
   3163         { "kind" : "IdResultType" },
   3164         { "kind" : "IdResult" },
   3165         { "kind" : "IdRef", "name" : "'Value'" }
   3166       ],
   3167       "capabilities" : [ "SubgroupBallotKHR" ]
   3168     },
   3169     {
   3170       "opname" : "OpSubgroupAllKHR",
   3171       "opcode" : 4428,
   3172       "operands" : [
   3173         { "kind" : "IdResultType" },
   3174         { "kind" : "IdResult" },
   3175         { "kind" : "IdRef", "name" : "'Predicate'" }
   3176       ],
   3177       "capabilities" : [ "SubgroupVoteKHR" ]
   3178     },
   3179     {
   3180       "opname" : "OpSubgroupAnyKHR",
   3181       "opcode" : 4429,
   3182       "operands" : [
   3183         { "kind" : "IdResultType" },
   3184         { "kind" : "IdResult" },
   3185         { "kind" : "IdRef", "name" : "'Predicate'" }
   3186       ],
   3187       "capabilities" : [ "SubgroupVoteKHR" ]
   3188     },
   3189     {
   3190       "opname" : "OpSubgroupAllEqualKHR",
   3191       "opcode" : 4430,
   3192       "operands" : [
   3193         { "kind" : "IdResultType" },
   3194         { "kind" : "IdResult" },
   3195         { "kind" : "IdRef", "name" : "'Predicate'" }
   3196       ],
   3197       "capabilities" : [ "SubgroupVoteKHR" ]
   3198     },
   3199     {
   3200       "opname" : "OpSubgroupReadInvocationKHR",
   3201       "opcode" : 4432,
   3202       "operands" : [
   3203         { "kind" : "IdResultType" },
   3204         { "kind" : "IdResult" },
   3205         { "kind" : "IdRef", "name" : "'Value'" },
   3206         { "kind" : "IdRef", "name" : "'Index'" }
   3207       ],
   3208       "capabilities" : [ "SubgroupBallotKHR" ],
   3209       "version" : "None"
   3210     },
   3211     {
   3212       "opname" : "OpGroupIAddNonUniformAMD",
   3213       "opcode" : 5000,
   3214       "operands" : [
   3215         { "kind" : "IdResultType" },
   3216         { "kind" : "IdResult" },
   3217         { "kind" : "IdScope",        "name" : "'Execution'" },
   3218         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3219         { "kind" : "IdRef",          "name" : "'X'" }
   3220       ],
   3221       "capabilities" : [ "Groups" ],
   3222       "version" : "None"
   3223     },
   3224     {
   3225       "opname" : "OpGroupFAddNonUniformAMD",
   3226       "opcode" : 5001,
   3227       "operands" : [
   3228         { "kind" : "IdResultType" },
   3229         { "kind" : "IdResult" },
   3230         { "kind" : "IdScope",        "name" : "'Execution'" },
   3231         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3232         { "kind" : "IdRef",          "name" : "'X'" }
   3233       ],
   3234       "capabilities" : [ "Groups" ],
   3235       "version" : "None"
   3236     },
   3237     {
   3238       "opname" : "OpGroupFMinNonUniformAMD",
   3239       "opcode" : 5002,
   3240       "operands" : [
   3241         { "kind" : "IdResultType" },
   3242         { "kind" : "IdResult" },
   3243         { "kind" : "IdScope",        "name" : "'Execution'" },
   3244         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3245         { "kind" : "IdRef",          "name" : "'X'" }
   3246       ],
   3247       "capabilities" : [ "Groups" ],
   3248       "version" : "None"
   3249     },
   3250     {
   3251       "opname" : "OpGroupUMinNonUniformAMD",
   3252       "opcode" : 5003,
   3253       "operands" : [
   3254         { "kind" : "IdResultType" },
   3255         { "kind" : "IdResult" },
   3256         { "kind" : "IdScope",        "name" : "'Execution'" },
   3257         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3258         { "kind" : "IdRef",          "name" : "'X'" }
   3259       ],
   3260       "capabilities" : [ "Groups" ],
   3261       "version" : "None"
   3262     },
   3263     {
   3264       "opname" : "OpGroupSMinNonUniformAMD",
   3265       "opcode" : 5004,
   3266       "operands" : [
   3267         { "kind" : "IdResultType" },
   3268         { "kind" : "IdResult" },
   3269         { "kind" : "IdScope",        "name" : "'Execution'" },
   3270         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3271         { "kind" : "IdRef",          "name" : "'X'" }
   3272       ],
   3273       "capabilities" : [ "Groups" ],
   3274       "version" : "None"
   3275     },
   3276     {
   3277       "opname" : "OpGroupFMaxNonUniformAMD",
   3278       "opcode" : 5005,
   3279       "operands" : [
   3280         { "kind" : "IdResultType" },
   3281         { "kind" : "IdResult" },
   3282         { "kind" : "IdScope",        "name" : "'Execution'" },
   3283         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3284         { "kind" : "IdRef",          "name" : "'X'" }
   3285       ],
   3286       "capabilities" : [ "Groups" ],
   3287       "version" : "None"
   3288     },
   3289     {
   3290       "opname" : "OpGroupUMaxNonUniformAMD",
   3291       "opcode" : 5006,
   3292       "operands" : [
   3293         { "kind" : "IdResultType" },
   3294         { "kind" : "IdResult" },
   3295         { "kind" : "IdScope",        "name" : "'Execution'" },
   3296         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3297         { "kind" : "IdRef",          "name" : "'X'" }
   3298       ],
   3299       "capabilities" : [ "Groups" ],
   3300       "version" : "None"
   3301     },
   3302     {
   3303       "opname" : "OpGroupSMaxNonUniformAMD",
   3304       "opcode" : 5007,
   3305       "operands" : [
   3306         { "kind" : "IdResultType" },
   3307         { "kind" : "IdResult" },
   3308         { "kind" : "IdScope",        "name" : "'Execution'" },
   3309         { "kind" : "GroupOperation", "name" : "'Operation'" },
   3310         { "kind" : "IdRef",          "name" : "'X'" }
   3311       ],
   3312       "capabilities" : [ "Groups" ],
   3313       "version" : "None"
   3314     },
   3315     {
   3316       "opname" : "OpFragmentMaskFetchAMD",
   3317       "opcode" : 5011,
   3318       "operands" : [
   3319         { "kind" : "IdResultType" },
   3320         { "kind" : "IdResult" },
   3321         { "kind" : "IdRef", "name" : "'Image'" },
   3322         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3323       ],
   3324       "capabilities" : [ "FragmentMaskAMD" ],
   3325       "version" : "None"
   3326     },
   3327     {
   3328       "opname" : "OpFragmentFetchAMD",
   3329       "opcode" : 5012,
   3330       "operands" : [
   3331         { "kind" : "IdResultType" },
   3332         { "kind" : "IdResult" },
   3333         { "kind" : "IdRef", "name" : "'Image'" },
   3334         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3335         { "kind" : "IdRef", "name" : "'Fragment Index'" }
   3336       ],
   3337       "capabilities" : [ "FragmentMaskAMD" ],
   3338       "version" : "None"
   3339     },
   3340     {
   3341       "opname" : "OpSubgroupShuffleINTEL",
   3342       "opcode" : 5571,
   3343       "operands" : [
   3344         { "kind" : "IdResultType" },
   3345         { "kind" : "IdResult" },
   3346         { "kind" : "IdRef", "name" : "'Data'" },
   3347         { "kind" : "IdRef", "name" : "'InvocationId'" }
   3348       ],
   3349       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3350       "version" : "None"
   3351     },
   3352     {
   3353       "opname" : "OpSubgroupShuffleDownINTEL",
   3354       "opcode" : 5572,
   3355       "operands" : [
   3356         { "kind" : "IdResultType" },
   3357         { "kind" : "IdResult" },
   3358         { "kind" : "IdRef", "name" : "'Current'" },
   3359         { "kind" : "IdRef", "name" : "'Next'" },
   3360         { "kind" : "IdRef", "name" : "'Delta'" }
   3361       ],
   3362       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3363       "version" : "None"
   3364     },
   3365     {
   3366       "opname" : "OpSubgroupShuffleUpINTEL",
   3367       "opcode" : 5573,
   3368       "operands" : [
   3369         { "kind" : "IdResultType" },
   3370         { "kind" : "IdResult" },
   3371         { "kind" : "IdRef", "name" : "'Previous'" },
   3372         { "kind" : "IdRef", "name" : "'Current'" },
   3373         { "kind" : "IdRef", "name" : "'Delta'" }
   3374       ],
   3375       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3376       "version" : "None"
   3377     },
   3378     {
   3379       "opname" : "OpSubgroupShuffleXorINTEL",
   3380       "opcode" : 5574,
   3381       "operands" : [
   3382         { "kind" : "IdResultType" },
   3383         { "kind" : "IdResult" },
   3384         { "kind" : "IdRef", "name" : "'Data'" },
   3385         { "kind" : "IdRef", "name" : "'Value'" }
   3386       ],
   3387       "capabilities" : [ "SubgroupShuffleINTEL" ],
   3388       "version" : "None"
   3389     },
   3390     {
   3391       "opname" : "OpSubgroupBlockReadINTEL",
   3392       "opcode" : 5575,
   3393       "operands" : [
   3394         { "kind" : "IdResultType" },
   3395         { "kind" : "IdResult" },
   3396         { "kind" : "IdRef", "name" : "'Ptr'" }
   3397       ],
   3398       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
   3399       "version" : "None"
   3400     },
   3401     {
   3402       "opname" : "OpSubgroupBlockWriteINTEL",
   3403       "opcode" : 5576,
   3404       "operands" : [
   3405         { "kind" : "IdRef", "name" : "'Ptr'" },
   3406         { "kind" : "IdRef", "name" : "'Data'" }
   3407       ],
   3408       "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
   3409       "version" : "None"
   3410     },
   3411     {
   3412       "opname" : "OpSubgroupImageBlockReadINTEL",
   3413       "opcode" : 5577,
   3414       "operands" : [
   3415         { "kind" : "IdResultType" },
   3416         { "kind" : "IdResult" },
   3417         { "kind" : "IdRef", "name" : "'Image'" },
   3418         { "kind" : "IdRef", "name" : "'Coordinate'" }
   3419       ],
   3420       "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
   3421       "version" : "None"
   3422     },
   3423     {
   3424       "opname" : "OpSubgroupImageBlockWriteINTEL",
   3425       "opcode" : 5578,
   3426       "operands" : [
   3427         { "kind" : "IdRef", "name" : "'Image'" },
   3428         { "kind" : "IdRef", "name" : "'Coordinate'" },
   3429         { "kind" : "IdRef", "name" : "'Data'" }
   3430       ],
   3431       "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
   3432       "version" : "None"
   3433     }
   3434   ],
   3435   "operand_kinds" : [
   3436     {
   3437       "category" : "BitEnum",
   3438       "kind" : "ImageOperands",
   3439       "enumerants" : [
   3440         {
   3441           "enumerant" : "None",
   3442           "value" : "0x0000"
   3443         },
   3444         {
   3445           "enumerant" : "Bias",
   3446           "value" : "0x0001",
   3447           "capabilities" : [ "Shader" ],
   3448           "parameters" : [
   3449             { "kind" : "IdRef" }
   3450           ]
   3451         },
   3452         {
   3453           "enumerant" : "Lod",
   3454           "value" : "0x0002",
   3455           "parameters" : [
   3456             { "kind" : "IdRef" }
   3457           ]
   3458         },
   3459         {
   3460           "enumerant" : "Grad",
   3461           "value" : "0x0004",
   3462           "parameters" : [
   3463             { "kind" : "IdRef" },
   3464             { "kind" : "IdRef" }
   3465           ]
   3466         },
   3467         {
   3468           "enumerant" : "ConstOffset",
   3469           "value" : "0x0008",
   3470           "parameters" : [
   3471             { "kind" : "IdRef" }
   3472           ]
   3473         },
   3474         {
   3475           "enumerant" : "Offset",
   3476           "value" : "0x0010",
   3477           "capabilities" : [ "ImageGatherExtended" ],
   3478           "parameters" : [
   3479             { "kind" : "IdRef" }
   3480           ]
   3481         },
   3482         {
   3483           "enumerant" : "ConstOffsets",
   3484           "value" : "0x0020",
   3485           "parameters" : [
   3486             { "kind" : "IdRef" }
   3487           ]
   3488         },
   3489         {
   3490           "enumerant" : "Sample",
   3491           "value" : "0x0040",
   3492           "parameters" : [
   3493             { "kind" : "IdRef" }
   3494           ]
   3495         },
   3496         {
   3497           "enumerant" : "MinLod",
   3498           "value" : "0x0080",
   3499           "capabilities" : [ "MinLod" ],
   3500           "parameters" : [
   3501             { "kind" : "IdRef" }
   3502           ]
   3503         }
   3504       ]
   3505     },
   3506     {
   3507       "category" : "BitEnum",
   3508       "kind" : "FPFastMathMode",
   3509       "enumerants" : [
   3510         {
   3511           "enumerant" : "None",
   3512           "value" : "0x0000"
   3513         },
   3514         {
   3515           "enumerant" : "NotNaN",
   3516           "value" : "0x0001",
   3517           "capabilities" : [ "Kernel" ]
   3518         },
   3519         {
   3520           "enumerant" : "NotInf",
   3521           "value" : "0x0002",
   3522           "capabilities" : [ "Kernel" ]
   3523         },
   3524         {
   3525           "enumerant" : "NSZ",
   3526           "value" : "0x0004",
   3527           "capabilities" : [ "Kernel" ]
   3528         },
   3529         {
   3530           "enumerant" : "AllowRecip",
   3531           "value" : "0x0008",
   3532           "capabilities" : [ "Kernel" ]
   3533         },
   3534         {
   3535           "enumerant" : "Fast",
   3536           "value" : "0x0010",
   3537           "capabilities" : [ "Kernel" ]
   3538         }
   3539       ]
   3540     },
   3541     {
   3542       "category" : "BitEnum",
   3543       "kind" : "SelectionControl",
   3544       "enumerants" : [
   3545         {
   3546           "enumerant" : "None",
   3547           "value" : "0x0000"
   3548         },
   3549         {
   3550           "enumerant" : "Flatten",
   3551           "value" : "0x0001"
   3552         },
   3553         {
   3554           "enumerant" : "DontFlatten",
   3555           "value" : "0x0002"
   3556         }
   3557       ]
   3558     },
   3559     {
   3560       "category" : "BitEnum",
   3561       "kind" : "LoopControl",
   3562       "enumerants" : [
   3563         {
   3564           "enumerant" : "None",
   3565           "value" : "0x0000"
   3566         },
   3567         {
   3568           "enumerant" : "Unroll",
   3569           "value" : "0x0001"
   3570         },
   3571         {
   3572           "enumerant" : "DontUnroll",
   3573           "value" : "0x0002"
   3574         },
   3575         {
   3576           "enumerant" : "DependencyInfinite",
   3577           "value" : "0x0004",
   3578           "version" : "1.1"
   3579         },
   3580         {
   3581           "enumerant" : "DependencyLength",
   3582           "value" : "0x0008",
   3583           "parameters" : [
   3584             { "kind" : "LiteralInteger" }
   3585           ],
   3586           "version" : "1.1"
   3587         }
   3588       ]
   3589     },
   3590     {
   3591       "category" : "BitEnum",
   3592       "kind" : "FunctionControl",
   3593       "enumerants" : [
   3594         {
   3595           "enumerant" : "None",
   3596           "value" : "0x0000"
   3597         },
   3598         {
   3599           "enumerant" : "Inline",
   3600           "value" : "0x0001"
   3601         },
   3602         {
   3603           "enumerant" : "DontInline",
   3604           "value" : "0x0002"
   3605         },
   3606         {
   3607           "enumerant" : "Pure",
   3608           "value" : "0x0004"
   3609         },
   3610         {
   3611           "enumerant" : "Const",
   3612           "value" : "0x0008"
   3613         }
   3614       ]
   3615     },
   3616     {
   3617       "category" : "BitEnum",
   3618       "kind" : "MemorySemantics",
   3619       "enumerants" : [
   3620         {
   3621           "enumerant" : "Relaxed",
   3622           "value" : "0x0000"
   3623         },
   3624         {
   3625           "enumerant" : "None",
   3626           "value" : "0x0000"
   3627         },
   3628         {
   3629           "enumerant" : "Acquire",
   3630           "value" : "0x0002"
   3631         },
   3632         {
   3633           "enumerant" : "Release",
   3634           "value" : "0x0004"
   3635         },
   3636         {
   3637           "enumerant" : "AcquireRelease",
   3638           "value" : "0x0008"
   3639         },
   3640         {
   3641           "enumerant" : "SequentiallyConsistent",
   3642           "value" : "0x0010"
   3643         },
   3644         {
   3645           "enumerant" : "UniformMemory",
   3646           "value" : "0x0040",
   3647           "capabilities" : [ "Shader" ]
   3648         },
   3649         {
   3650           "enumerant" : "SubgroupMemory",
   3651           "value" : "0x0080"
   3652         },
   3653         {
   3654           "enumerant" : "WorkgroupMemory",
   3655           "value" : "0x0100"
   3656         },
   3657         {
   3658           "enumerant" : "CrossWorkgroupMemory",
   3659           "value" : "0x0200"
   3660         },
   3661         {
   3662           "enumerant" : "AtomicCounterMemory",
   3663           "value" : "0x0400",
   3664           "capabilities" : [ "AtomicStorage" ]
   3665         },
   3666         {
   3667           "enumerant" : "ImageMemory",
   3668           "value" : "0x0800"
   3669         }
   3670       ]
   3671     },
   3672     {
   3673       "category" : "BitEnum",
   3674       "kind" : "MemoryAccess",
   3675       "enumerants" : [
   3676         {
   3677           "enumerant" : "None",
   3678           "value" : "0x0000"
   3679         },
   3680         {
   3681           "enumerant" : "Volatile",
   3682           "value" : "0x0001"
   3683         },
   3684         {
   3685           "enumerant" : "Aligned",
   3686           "value" : "0x0002",
   3687           "parameters" : [
   3688             { "kind" : "LiteralInteger" }
   3689           ]
   3690         },
   3691         {
   3692           "enumerant" : "Nontemporal",
   3693           "value" : "0x0004"
   3694         }
   3695       ]
   3696     },
   3697     {
   3698       "category" : "BitEnum",
   3699       "kind" : "KernelProfilingInfo",
   3700       "enumerants" : [
   3701         {
   3702           "enumerant" : "None",
   3703           "value" : "0x0000"
   3704         },
   3705         {
   3706           "enumerant" : "CmdExecTime",
   3707           "value" : "0x0001",
   3708           "capabilities" : [ "Kernel" ]
   3709         }
   3710       ]
   3711     },
   3712     {
   3713       "category" : "ValueEnum",
   3714       "kind" : "SourceLanguage",
   3715       "enumerants" : [
   3716         {
   3717           "enumerant" : "Unknown",
   3718           "value" : 0
   3719         },
   3720         {
   3721           "enumerant" : "ESSL",
   3722           "value" : 1
   3723         },
   3724         {
   3725           "enumerant" : "GLSL",
   3726           "value" : 2
   3727         },
   3728         {
   3729           "enumerant" : "OpenCL_C",
   3730           "value" : 3
   3731         },
   3732         {
   3733           "enumerant" : "OpenCL_CPP",
   3734           "value" : 4
   3735         },
   3736         {
   3737           "enumerant" : "HLSL",
   3738           "value" : 5
   3739         }
   3740       ]
   3741     },
   3742     {
   3743       "category" : "ValueEnum",
   3744       "kind" : "ExecutionModel",
   3745       "enumerants" : [
   3746         {
   3747           "enumerant" : "Vertex",
   3748           "value" : 0,
   3749           "capabilities" : [ "Shader" ]
   3750         },
   3751         {
   3752           "enumerant" : "TessellationControl",
   3753           "value" : 1,
   3754           "capabilities" : [ "Tessellation" ]
   3755         },
   3756         {
   3757           "enumerant" : "TessellationEvaluation",
   3758           "value" : 2,
   3759           "capabilities" : [ "Tessellation" ]
   3760         },
   3761         {
   3762           "enumerant" : "Geometry",
   3763           "value" : 3,
   3764           "capabilities" : [ "Geometry" ]
   3765         },
   3766         {
   3767           "enumerant" : "Fragment",
   3768           "value" : 4,
   3769           "capabilities" : [ "Shader" ]
   3770         },
   3771         {
   3772           "enumerant" : "GLCompute",
   3773           "value" : 5,
   3774           "capabilities" : [ "Shader" ]
   3775         },
   3776         {
   3777           "enumerant" : "Kernel",
   3778           "value" : 6,
   3779           "capabilities" : [ "Kernel" ]
   3780         }
   3781       ]
   3782     },
   3783     {
   3784       "category" : "ValueEnum",
   3785       "kind" : "AddressingModel",
   3786       "enumerants" : [
   3787         {
   3788           "enumerant" : "Logical",
   3789           "value" : 0
   3790         },
   3791         {
   3792           "enumerant" : "Physical32",
   3793           "value" : 1,
   3794           "capabilities" : [ "Addresses" ]
   3795         },
   3796         {
   3797           "enumerant" : "Physical64",
   3798           "value" : 2,
   3799           "capabilities" : [ "Addresses" ]
   3800         }
   3801       ]
   3802     },
   3803     {
   3804       "category" : "ValueEnum",
   3805       "kind" : "MemoryModel",
   3806       "enumerants" : [
   3807         {
   3808           "enumerant" : "Simple",
   3809           "value" : 0,
   3810           "capabilities" : [ "Shader" ]
   3811         },
   3812         {
   3813           "enumerant" : "GLSL450",
   3814           "value" : 1,
   3815           "capabilities" : [ "Shader" ]
   3816         },
   3817         {
   3818           "enumerant" : "OpenCL",
   3819           "value" : 2,
   3820           "capabilities" : [ "Kernel" ]
   3821         }
   3822       ]
   3823     },
   3824     {
   3825       "category" : "ValueEnum",
   3826       "kind" : "ExecutionMode",
   3827       "enumerants" : [
   3828         {
   3829           "enumerant" : "Invocations",
   3830           "value" : 0,
   3831           "capabilities" : [ "Geometry" ],
   3832           "parameters" : [
   3833             { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
   3834           ]
   3835         },
   3836         {
   3837           "enumerant" : "SpacingEqual",
   3838           "value" : 1,
   3839           "capabilities" : [ "Tessellation" ]
   3840         },
   3841         {
   3842           "enumerant" : "SpacingFractionalEven",
   3843           "value" : 2,
   3844           "capabilities" : [ "Tessellation" ]
   3845         },
   3846         {
   3847           "enumerant" : "SpacingFractionalOdd",
   3848           "value" : 3,
   3849           "capabilities" : [ "Tessellation" ]
   3850         },
   3851         {
   3852           "enumerant" : "VertexOrderCw",
   3853           "value" : 4,
   3854           "capabilities" : [ "Tessellation" ]
   3855         },
   3856         {
   3857           "enumerant" : "VertexOrderCcw",
   3858           "value" : 5,
   3859           "capabilities" : [ "Tessellation" ]
   3860         },
   3861         {
   3862           "enumerant" : "PixelCenterInteger",
   3863           "value" : 6,
   3864           "capabilities" : [ "Shader" ]
   3865         },
   3866         {
   3867           "enumerant" : "OriginUpperLeft",
   3868           "value" : 7,
   3869           "capabilities" : [ "Shader" ]
   3870         },
   3871         {
   3872           "enumerant" : "OriginLowerLeft",
   3873           "value" : 8,
   3874           "capabilities" : [ "Shader" ]
   3875         },
   3876         {
   3877           "enumerant" : "EarlyFragmentTests",
   3878           "value" : 9,
   3879           "capabilities" : [ "Shader" ]
   3880         },
   3881         {
   3882           "enumerant" : "PointMode",
   3883           "value" : 10,
   3884           "capabilities" : [ "Tessellation" ]
   3885         },
   3886         {
   3887           "enumerant" : "Xfb",
   3888           "value" : 11,
   3889           "capabilities" : [ "TransformFeedback" ]
   3890         },
   3891         {
   3892           "enumerant" : "DepthReplacing",
   3893           "value" : 12,
   3894           "capabilities" : [ "Shader" ]
   3895         },
   3896         {
   3897           "enumerant" : "DepthGreater",
   3898           "value" : 14,
   3899           "capabilities" : [ "Shader" ]
   3900         },
   3901         {
   3902           "enumerant" : "DepthLess",
   3903           "value" : 15,
   3904           "capabilities" : [ "Shader" ]
   3905         },
   3906         {
   3907           "enumerant" : "DepthUnchanged",
   3908           "value" : 16,
   3909           "capabilities" : [ "Shader" ]
   3910         },
   3911         {
   3912           "enumerant" : "LocalSize",
   3913           "value" : 17,
   3914           "parameters" : [
   3915             { "kind" : "LiteralInteger", "name" : "'x size'" },
   3916             { "kind" : "LiteralInteger", "name" : "'y size'" },
   3917             { "kind" : "LiteralInteger", "name" : "'z size'" }
   3918           ]
   3919         },
   3920         {
   3921           "enumerant" : "LocalSizeHint",
   3922           "value" : 18,
   3923           "capabilities" : [ "Kernel" ],
   3924           "parameters" : [
   3925             { "kind" : "LiteralInteger", "name" : "'x size'" },
   3926             { "kind" : "LiteralInteger", "name" : "'y size'" },
   3927             { "kind" : "LiteralInteger", "name" : "'z size'" }
   3928           ]
   3929         },
   3930         {
   3931           "enumerant" : "InputPoints",
   3932           "value" : 19,
   3933           "capabilities" : [ "Geometry" ]
   3934         },
   3935         {
   3936           "enumerant" : "InputLines",
   3937           "value" : 20,
   3938           "capabilities" : [ "Geometry" ]
   3939         },
   3940         {
   3941           "enumerant" : "InputLinesAdjacency",
   3942           "value" : 21,
   3943           "capabilities" : [ "Geometry" ]
   3944         },
   3945         {
   3946           "enumerant" : "Triangles",
   3947           "value" : 22,
   3948           "capabilities" : [ "Geometry", "Tessellation" ]
   3949         },
   3950         {
   3951           "enumerant" : "InputTrianglesAdjacency",
   3952           "value" : 23,
   3953           "capabilities" : [ "Geometry" ]
   3954         },
   3955         {
   3956           "enumerant" : "Quads",
   3957           "value" : 24,
   3958           "capabilities" : [ "Tessellation" ]
   3959         },
   3960         {
   3961           "enumerant" : "Isolines",
   3962           "value" : 25,
   3963           "capabilities" : [ "Tessellation" ]
   3964         },
   3965         {
   3966           "enumerant" : "OutputVertices",
   3967           "value" : 26,
   3968           "capabilities" : [ "Geometry", "Tessellation" ],
   3969           "parameters" : [
   3970             { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
   3971           ]
   3972         },
   3973         {
   3974           "enumerant" : "OutputPoints",
   3975           "value" : 27,
   3976           "capabilities" : [ "Geometry" ]
   3977         },
   3978         {
   3979           "enumerant" : "OutputLineStrip",
   3980           "value" : 28,
   3981           "capabilities" : [ "Geometry" ]
   3982         },
   3983         {
   3984           "enumerant" : "OutputTriangleStrip",
   3985           "value" : 29,
   3986           "capabilities" : [ "Geometry" ]
   3987         },
   3988         {
   3989           "enumerant" : "VecTypeHint",
   3990           "value" : 30,
   3991           "capabilities" : [ "Kernel" ],
   3992           "parameters" : [
   3993             { "kind" : "LiteralInteger", "name" : "'Vector type'" }
   3994           ]
   3995         },
   3996         {
   3997           "enumerant" : "ContractionOff",
   3998           "value" : 31,
   3999           "capabilities" : [ "Kernel" ]
   4000         },
   4001         {
   4002           "enumerant" : "Initializer",
   4003           "value" : 33,
   4004           "capabilities" : [ "Kernel" ],
   4005           "version" : "1.1"
   4006         },
   4007         {
   4008           "enumerant" : "Finalizer",
   4009           "value" : 34,
   4010           "capabilities" : [ "Kernel" ],
   4011           "version" : "1.1"
   4012         },
   4013         {
   4014           "enumerant" : "SubgroupSize",
   4015           "value" : 35,
   4016           "capabilities" : [ "SubgroupDispatch" ],
   4017           "parameters" : [
   4018             { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
   4019           ],
   4020           "version" : "1.1"
   4021         },
   4022         {
   4023           "enumerant" : "SubgroupsPerWorkgroup",
   4024           "value" : 36,
   4025           "capabilities" : [ "SubgroupDispatch" ],
   4026           "parameters" : [
   4027             { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
   4028           ],
   4029           "version" : "1.1"
   4030         },
   4031         {
   4032           "enumerant" : "SubgroupsPerWorkgroupId",
   4033           "value" : 37,
   4034           "capabilities" : [ "SubgroupDispatch" ],
   4035           "parameters" : [
   4036             { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
   4037           ],
   4038           "version" : "1.2"
   4039         },
   4040         {
   4041           "enumerant" : "LocalSizeId",
   4042           "value" : 38,
   4043           "parameters" : [
   4044             { "kind" : "IdRef", "name" : "'x size'" },
   4045             { "kind" : "IdRef", "name" : "'y size'" },
   4046             { "kind" : "IdRef", "name" : "'z size'" }
   4047           ],
   4048           "version" : "1.2"
   4049         },
   4050         {
   4051           "enumerant" : "LocalSizeHintId",
   4052           "value" : 39,
   4053           "capabilities" : [ "Kernel" ],
   4054           "parameters" : [
   4055             { "kind" : "IdRef", "name" : "'Local Size Hint'" }
   4056           ],
   4057           "version" : "1.2"
   4058         },
   4059         {
   4060           "enumerant" : "PostDepthCoverage",
   4061           "value" : 4446,
   4062           "capabilities" : [ "SampleMaskPostDepthCoverage" ],
   4063           "version" : "None"
   4064         },
   4065         {
   4066           "enumerant" : "StencilRefReplacingEXT",
   4067           "value" : 5027,
   4068           "capabilities" : [ "StencilExportEXT" ],
   4069           "version" : "None"
   4070         }
   4071       ]
   4072     },
   4073     {
   4074       "category" : "ValueEnum",
   4075       "kind" : "StorageClass",
   4076       "enumerants" : [
   4077         {
   4078           "enumerant" : "UniformConstant",
   4079           "value" : 0
   4080         },
   4081         {
   4082           "enumerant" : "Input",
   4083           "value" : 1
   4084         },
   4085         {
   4086           "enumerant" : "Uniform",
   4087           "value" : 2,
   4088           "capabilities" : [ "Shader" ]
   4089         },
   4090         {
   4091           "enumerant" : "Output",
   4092           "value" : 3,
   4093           "capabilities" : [ "Shader" ]
   4094         },
   4095         {
   4096           "enumerant" : "Workgroup",
   4097           "value" : 4
   4098         },
   4099         {
   4100           "enumerant" : "CrossWorkgroup",
   4101           "value" : 5
   4102         },
   4103         {
   4104           "enumerant" : "Private",
   4105           "value" : 6,
   4106           "capabilities" : [ "Shader" ]
   4107         },
   4108         {
   4109           "enumerant" : "Function",
   4110           "value" : 7
   4111         },
   4112         {
   4113           "enumerant" : "Generic",
   4114           "value" : 8,
   4115           "capabilities" : [ "GenericPointer" ]
   4116         },
   4117         {
   4118           "enumerant" : "PushConstant",
   4119           "value" : 9,
   4120           "capabilities" : [ "Shader" ]
   4121         },
   4122         {
   4123           "enumerant" : "AtomicCounter",
   4124           "value" : 10,
   4125           "capabilities" : [ "AtomicStorage" ]
   4126         },
   4127         {
   4128           "enumerant" : "Image",
   4129           "value" : 11
   4130         },
   4131         {
   4132           "enumerant" : "StorageBuffer",
   4133           "value" : 12,
   4134           "extensions" : [
   4135             "SPV_KHR_storage_buffer_storage_class",
   4136             "SPV_KHR_variable_pointers"
   4137           ],
   4138           "capabilities" : [ "Shader" ],
   4139           "version" : "None"
   4140         }
   4141       ]
   4142     },
   4143     {
   4144       "category" : "ValueEnum",
   4145       "kind" : "Dim",
   4146       "enumerants" : [
   4147         {
   4148           "enumerant" : "1D",
   4149           "value" : 0,
   4150           "capabilities" : [ "Sampled1D" ]
   4151         },
   4152         {
   4153           "enumerant" : "2D",
   4154           "value" : 1
   4155         },
   4156         {
   4157           "enumerant" : "3D",
   4158           "value" : 2
   4159         },
   4160         {
   4161           "enumerant" : "Cube",
   4162           "value" : 3,
   4163           "capabilities" : [ "Shader" ]
   4164         },
   4165         {
   4166           "enumerant" : "Rect",
   4167           "value" : 4,
   4168           "capabilities" : [ "SampledRect" ]
   4169         },
   4170         {
   4171           "enumerant" : "Buffer",
   4172           "value" : 5,
   4173           "capabilities" : [ "SampledBuffer" ]
   4174         },
   4175         {
   4176           "enumerant" : "SubpassData",
   4177           "value" : 6,
   4178           "capabilities" : [ "InputAttachment" ]
   4179         }
   4180       ]
   4181     },
   4182     {
   4183       "category" : "ValueEnum",
   4184       "kind" : "SamplerAddressingMode",
   4185       "enumerants" : [
   4186         {
   4187           "enumerant" : "None",
   4188           "value" : 0,
   4189           "capabilities" : [ "Kernel" ]
   4190         },
   4191         {
   4192           "enumerant" : "ClampToEdge",
   4193           "value" : 1,
   4194           "capabilities" : [ "Kernel" ]
   4195         },
   4196         {
   4197           "enumerant" : "Clamp",
   4198           "value" : 2,
   4199           "capabilities" : [ "Kernel" ]
   4200         },
   4201         {
   4202           "enumerant" : "Repeat",
   4203           "value" : 3,
   4204           "capabilities" : [ "Kernel" ]
   4205         },
   4206         {
   4207           "enumerant" : "RepeatMirrored",
   4208           "value" : 4,
   4209           "capabilities" : [ "Kernel" ]
   4210         }
   4211       ]
   4212     },
   4213     {
   4214       "category" : "ValueEnum",
   4215       "kind" : "SamplerFilterMode",
   4216       "enumerants" : [
   4217         {
   4218           "enumerant" : "Nearest",
   4219           "value" : 0,
   4220           "capabilities" : [ "Kernel" ]
   4221         },
   4222         {
   4223           "enumerant" : "Linear",
   4224           "value" : 1,
   4225           "capabilities" : [ "Kernel" ]
   4226         }
   4227       ]
   4228     },
   4229     {
   4230       "category" : "ValueEnum",
   4231       "kind" : "ImageFormat",
   4232       "enumerants" : [
   4233         {
   4234           "enumerant" : "Unknown",
   4235           "value" : 0
   4236         },
   4237         {
   4238           "enumerant" : "Rgba32f",
   4239           "value" : 1,
   4240           "capabilities" : [ "Shader" ]
   4241         },
   4242         {
   4243           "enumerant" : "Rgba16f",
   4244           "value" : 2,
   4245           "capabilities" : [ "Shader" ]
   4246         },
   4247         {
   4248           "enumerant" : "R32f",
   4249           "value" : 3,
   4250           "capabilities" : [ "Shader" ]
   4251         },
   4252         {
   4253           "enumerant" : "Rgba8",
   4254           "value" : 4,
   4255           "capabilities" : [ "Shader" ]
   4256         },
   4257         {
   4258           "enumerant" : "Rgba8Snorm",
   4259           "value" : 5,
   4260           "capabilities" : [ "Shader" ]
   4261         },
   4262         {
   4263           "enumerant" : "Rg32f",
   4264           "value" : 6,
   4265           "capabilities" : [ "StorageImageExtendedFormats" ]
   4266         },
   4267         {
   4268           "enumerant" : "Rg16f",
   4269           "value" : 7,
   4270           "capabilities" : [ "StorageImageExtendedFormats" ]
   4271         },
   4272         {
   4273           "enumerant" : "R11fG11fB10f",
   4274           "value" : 8,
   4275           "capabilities" : [ "StorageImageExtendedFormats" ]
   4276         },
   4277         {
   4278           "enumerant" : "R16f",
   4279           "value" : 9,
   4280           "capabilities" : [ "StorageImageExtendedFormats" ]
   4281         },
   4282         {
   4283           "enumerant" : "Rgba16",
   4284           "value" : 10,
   4285           "capabilities" : [ "StorageImageExtendedFormats" ]
   4286         },
   4287         {
   4288           "enumerant" : "Rgb10A2",
   4289           "value" : 11,
   4290           "capabilities" : [ "StorageImageExtendedFormats" ]
   4291         },
   4292         {
   4293           "enumerant" : "Rg16",
   4294           "value" : 12,
   4295           "capabilities" : [ "StorageImageExtendedFormats" ]
   4296         },
   4297         {
   4298           "enumerant" : "Rg8",
   4299           "value" : 13,
   4300           "capabilities" : [ "StorageImageExtendedFormats" ]
   4301         },
   4302         {
   4303           "enumerant" : "R16",
   4304           "value" : 14,
   4305           "capabilities" : [ "StorageImageExtendedFormats" ]
   4306         },
   4307         {
   4308           "enumerant" : "R8",
   4309           "value" : 15,
   4310           "capabilities" : [ "StorageImageExtendedFormats" ]
   4311         },
   4312         {
   4313           "enumerant" : "Rgba16Snorm",
   4314           "value" : 16,
   4315           "capabilities" : [ "StorageImageExtendedFormats" ]
   4316         },
   4317         {
   4318           "enumerant" : "Rg16Snorm",
   4319           "value" : 17,
   4320           "capabilities" : [ "StorageImageExtendedFormats" ]
   4321         },
   4322         {
   4323           "enumerant" : "Rg8Snorm",
   4324           "value" : 18,
   4325           "capabilities" : [ "StorageImageExtendedFormats" ]
   4326         },
   4327         {
   4328           "enumerant" : "R16Snorm",
   4329           "value" : 19,
   4330           "capabilities" : [ "StorageImageExtendedFormats" ]
   4331         },
   4332         {
   4333           "enumerant" : "R8Snorm",
   4334           "value" : 20,
   4335           "capabilities" : [ "StorageImageExtendedFormats" ]
   4336         },
   4337         {
   4338           "enumerant" : "Rgba32i",
   4339           "value" : 21,
   4340           "capabilities" : [ "Shader" ]
   4341         },
   4342         {
   4343           "enumerant" : "Rgba16i",
   4344           "value" : 22,
   4345           "capabilities" : [ "Shader" ]
   4346         },
   4347         {
   4348           "enumerant" : "Rgba8i",
   4349           "value" : 23,
   4350           "capabilities" : [ "Shader" ]
   4351         },
   4352         {
   4353           "enumerant" : "R32i",
   4354           "value" : 24,
   4355           "capabilities" : [ "Shader" ]
   4356         },
   4357         {
   4358           "enumerant" : "Rg32i",
   4359           "value" : 25,
   4360           "capabilities" : [ "StorageImageExtendedFormats" ]
   4361         },
   4362         {
   4363           "enumerant" : "Rg16i",
   4364           "value" : 26,
   4365           "capabilities" : [ "StorageImageExtendedFormats" ]
   4366         },
   4367         {
   4368           "enumerant" : "Rg8i",
   4369           "value" : 27,
   4370           "capabilities" : [ "StorageImageExtendedFormats" ]
   4371         },
   4372         {
   4373           "enumerant" : "R16i",
   4374           "value" : 28,
   4375           "capabilities" : [ "StorageImageExtendedFormats" ]
   4376         },
   4377         {
   4378           "enumerant" : "R8i",
   4379           "value" : 29,
   4380           "capabilities" : [ "StorageImageExtendedFormats" ]
   4381         },
   4382         {
   4383           "enumerant" : "Rgba32ui",
   4384           "value" : 30,
   4385           "capabilities" : [ "Shader" ]
   4386         },
   4387         {
   4388           "enumerant" : "Rgba16ui",
   4389           "value" : 31,
   4390           "capabilities" : [ "Shader" ]
   4391         },
   4392         {
   4393           "enumerant" : "Rgba8ui",
   4394           "value" : 32,
   4395           "capabilities" : [ "Shader" ]
   4396         },
   4397         {
   4398           "enumerant" : "R32ui",
   4399           "value" : 33,
   4400           "capabilities" : [ "Shader" ]
   4401         },
   4402         {
   4403           "enumerant" : "Rgb10a2ui",
   4404           "value" : 34,
   4405           "capabilities" : [ "StorageImageExtendedFormats" ]
   4406         },
   4407         {
   4408           "enumerant" : "Rg32ui",
   4409           "value" : 35,
   4410           "capabilities" : [ "StorageImageExtendedFormats" ]
   4411         },
   4412         {
   4413           "enumerant" : "Rg16ui",
   4414           "value" : 36,
   4415           "capabilities" : [ "StorageImageExtendedFormats" ]
   4416         },
   4417         {
   4418           "enumerant" : "Rg8ui",
   4419           "value" : 37,
   4420           "capabilities" : [ "StorageImageExtendedFormats" ]
   4421         },
   4422         {
   4423           "enumerant" : "R16ui",
   4424           "value" : 38,
   4425           "capabilities" : [ "StorageImageExtendedFormats" ]
   4426         },
   4427         {
   4428           "enumerant" : "R8ui",
   4429           "value" : 39,
   4430           "capabilities" : [ "StorageImageExtendedFormats" ]
   4431         }
   4432       ]
   4433     },
   4434     {
   4435       "category" : "ValueEnum",
   4436       "kind" : "ImageChannelOrder",
   4437       "enumerants" : [
   4438         {
   4439           "enumerant" : "R",
   4440           "value" : 0,
   4441           "capabilities" : [ "Kernel" ]
   4442         },
   4443         {
   4444           "enumerant" : "A",
   4445           "value" : 1,
   4446           "capabilities" : [ "Kernel" ]
   4447         },
   4448         {
   4449           "enumerant" : "RG",
   4450           "value" : 2,
   4451           "capabilities" : [ "Kernel" ]
   4452         },
   4453         {
   4454           "enumerant" : "RA",
   4455           "value" : 3,
   4456           "capabilities" : [ "Kernel" ]
   4457         },
   4458         {
   4459           "enumerant" : "RGB",
   4460           "value" : 4,
   4461           "capabilities" : [ "Kernel" ]
   4462         },
   4463         {
   4464           "enumerant" : "RGBA",
   4465           "value" : 5,
   4466           "capabilities" : [ "Kernel" ]
   4467         },
   4468         {
   4469           "enumerant" : "BGRA",
   4470           "value" : 6,
   4471           "capabilities" : [ "Kernel" ]
   4472         },
   4473         {
   4474           "enumerant" : "ARGB",
   4475           "value" : 7,
   4476           "capabilities" : [ "Kernel" ]
   4477         },
   4478         {
   4479           "enumerant" : "Intensity",
   4480           "value" : 8,
   4481           "capabilities" : [ "Kernel" ]
   4482         },
   4483         {
   4484           "enumerant" : "Luminance",
   4485           "value" : 9,
   4486           "capabilities" : [ "Kernel" ]
   4487         },
   4488         {
   4489           "enumerant" : "Rx",
   4490           "value" : 10,
   4491           "capabilities" : [ "Kernel" ]
   4492         },
   4493         {
   4494           "enumerant" : "RGx",
   4495           "value" : 11,
   4496           "capabilities" : [ "Kernel" ]
   4497         },
   4498         {
   4499           "enumerant" : "RGBx",
   4500           "value" : 12,
   4501           "capabilities" : [ "Kernel" ]
   4502         },
   4503         {
   4504           "enumerant" : "Depth",
   4505           "value" : 13,
   4506           "capabilities" : [ "Kernel" ]
   4507         },
   4508         {
   4509           "enumerant" : "DepthStencil",
   4510           "value" : 14,
   4511           "capabilities" : [ "Kernel" ]
   4512         },
   4513         {
   4514           "enumerant" : "sRGB",
   4515           "value" : 15,
   4516           "capabilities" : [ "Kernel" ]
   4517         },
   4518         {
   4519           "enumerant" : "sRGBx",
   4520           "value" : 16,
   4521           "capabilities" : [ "Kernel" ]
   4522         },
   4523         {
   4524           "enumerant" : "sRGBA",
   4525           "value" : 17,
   4526           "capabilities" : [ "Kernel" ]
   4527         },
   4528         {
   4529           "enumerant" : "sBGRA",
   4530           "value" : 18,
   4531           "capabilities" : [ "Kernel" ]
   4532         },
   4533         {
   4534           "enumerant" : "ABGR",
   4535           "value" : 19,
   4536           "capabilities" : [ "Kernel" ]
   4537         }
   4538       ]
   4539     },
   4540     {
   4541       "category" : "ValueEnum",
   4542       "kind" : "ImageChannelDataType",
   4543       "enumerants" : [
   4544         {
   4545           "enumerant" : "SnormInt8",
   4546           "value" : 0,
   4547           "capabilities" : [ "Kernel" ]
   4548         },
   4549         {
   4550           "enumerant" : "SnormInt16",
   4551           "value" : 1,
   4552           "capabilities" : [ "Kernel" ]
   4553         },
   4554         {
   4555           "enumerant" : "UnormInt8",
   4556           "value" : 2,
   4557           "capabilities" : [ "Kernel" ]
   4558         },
   4559         {
   4560           "enumerant" : "UnormInt16",
   4561           "value" : 3,
   4562           "capabilities" : [ "Kernel" ]
   4563         },
   4564         {
   4565           "enumerant" : "UnormShort565",
   4566           "value" : 4,
   4567           "capabilities" : [ "Kernel" ]
   4568         },
   4569         {
   4570           "enumerant" : "UnormShort555",
   4571           "value" : 5,
   4572           "capabilities" : [ "Kernel" ]
   4573         },
   4574         {
   4575           "enumerant" : "UnormInt101010",
   4576           "value" : 6,
   4577           "capabilities" : [ "Kernel" ]
   4578         },
   4579         {
   4580           "enumerant" : "SignedInt8",
   4581           "value" : 7,
   4582           "capabilities" : [ "Kernel" ]
   4583         },
   4584         {
   4585           "enumerant" : "SignedInt16",
   4586           "value" : 8,
   4587           "capabilities" : [ "Kernel" ]
   4588         },
   4589         {
   4590           "enumerant" : "SignedInt32",
   4591           "value" : 9,
   4592           "capabilities" : [ "Kernel" ]
   4593         },
   4594         {
   4595           "enumerant" : "UnsignedInt8",
   4596           "value" : 10,
   4597           "capabilities" : [ "Kernel" ]
   4598         },
   4599         {
   4600           "enumerant" : "UnsignedInt16",
   4601           "value" : 11,
   4602           "capabilities" : [ "Kernel" ]
   4603         },
   4604         {
   4605           "enumerant" : "UnsignedInt32",
   4606           "value" : 12,
   4607           "capabilities" : [ "Kernel" ]
   4608         },
   4609         {
   4610           "enumerant" : "HalfFloat",
   4611           "value" : 13,
   4612           "capabilities" : [ "Kernel" ]
   4613         },
   4614         {
   4615           "enumerant" : "Float",
   4616           "value" : 14,
   4617           "capabilities" : [ "Kernel" ]
   4618         },
   4619         {
   4620           "enumerant" : "UnormInt24",
   4621           "value" : 15,
   4622           "capabilities" : [ "Kernel" ]
   4623         },
   4624         {
   4625           "enumerant" : "UnormInt101010_2",
   4626           "value" : 16,
   4627           "capabilities" : [ "Kernel" ]
   4628         }
   4629       ]
   4630     },
   4631     {
   4632       "category" : "ValueEnum",
   4633       "kind" : "FPRoundingMode",
   4634       "enumerants" : [
   4635         {
   4636           "enumerant" : "RTE",
   4637           "value" : 0
   4638         },
   4639         {
   4640           "enumerant" : "RTZ",
   4641           "value" : 1
   4642         },
   4643         {
   4644           "enumerant" : "RTP",
   4645           "value" : 2
   4646         },
   4647         {
   4648           "enumerant" : "RTN",
   4649           "value" : 3
   4650         }
   4651       ]
   4652     },
   4653     {
   4654       "category" : "ValueEnum",
   4655       "kind" : "LinkageType",
   4656       "enumerants" : [
   4657         {
   4658           "enumerant" : "Export",
   4659           "value" : 0,
   4660           "capabilities" : [ "Linkage" ]
   4661         },
   4662         {
   4663           "enumerant" : "Import",
   4664           "value" : 1,
   4665           "capabilities" : [ "Linkage" ]
   4666         }
   4667       ]
   4668     },
   4669     {
   4670       "category" : "ValueEnum",
   4671       "kind" : "AccessQualifier",
   4672       "enumerants" : [
   4673         {
   4674           "enumerant" : "ReadOnly",
   4675           "value" : 0,
   4676           "capabilities" : [ "Kernel" ]
   4677         },
   4678         {
   4679           "enumerant" : "WriteOnly",
   4680           "value" : 1,
   4681           "capabilities" : [ "Kernel" ]
   4682         },
   4683         {
   4684           "enumerant" : "ReadWrite",
   4685           "value" : 2,
   4686           "capabilities" : [ "Kernel" ]
   4687         }
   4688       ]
   4689     },
   4690     {
   4691       "category" : "ValueEnum",
   4692       "kind" : "FunctionParameterAttribute",
   4693       "enumerants" : [
   4694         {
   4695           "enumerant" : "Zext",
   4696           "value" : 0,
   4697           "capabilities" : [ "Kernel" ]
   4698         },
   4699         {
   4700           "enumerant" : "Sext",
   4701           "value" : 1,
   4702           "capabilities" : [ "Kernel" ]
   4703         },
   4704         {
   4705           "enumerant" : "ByVal",
   4706           "value" : 2,
   4707           "capabilities" : [ "Kernel" ]
   4708         },
   4709         {
   4710           "enumerant" : "Sret",
   4711           "value" : 3,
   4712           "capabilities" : [ "Kernel" ]
   4713         },
   4714         {
   4715           "enumerant" : "NoAlias",
   4716           "value" : 4,
   4717           "capabilities" : [ "Kernel" ]
   4718         },
   4719         {
   4720           "enumerant" : "NoCapture",
   4721           "value" : 5,
   4722           "capabilities" : [ "Kernel" ]
   4723         },
   4724         {
   4725           "enumerant" : "NoWrite",
   4726           "value" : 6,
   4727           "capabilities" : [ "Kernel" ]
   4728         },
   4729         {
   4730           "enumerant" : "NoReadWrite",
   4731           "value" : 7,
   4732           "capabilities" : [ "Kernel" ]
   4733         }
   4734       ]
   4735     },
   4736     {
   4737       "category" : "ValueEnum",
   4738       "kind" : "Decoration",
   4739       "enumerants" : [
   4740         {
   4741           "enumerant" : "RelaxedPrecision",
   4742           "value" : 0,
   4743           "capabilities" : [ "Shader" ]
   4744         },
   4745         {
   4746           "enumerant" : "SpecId",
   4747           "value" : 1,
   4748           "capabilities" : [ "Shader", "Kernel" ],
   4749           "parameters" : [
   4750             { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
   4751           ]
   4752         },
   4753         {
   4754           "enumerant" : "Block",
   4755           "value" : 2,
   4756           "capabilities" : [ "Shader" ]
   4757         },
   4758         {
   4759           "enumerant" : "BufferBlock",
   4760           "value" : 3,
   4761           "capabilities" : [ "Shader" ]
   4762         },
   4763         {
   4764           "enumerant" : "RowMajor",
   4765           "value" : 4,
   4766           "capabilities" : [ "Matrix" ]
   4767         },
   4768         {
   4769           "enumerant" : "ColMajor",
   4770           "value" : 5,
   4771           "capabilities" : [ "Matrix" ]
   4772         },
   4773         {
   4774           "enumerant" : "ArrayStride",
   4775           "value" : 6,
   4776           "capabilities" : [ "Shader" ],
   4777           "parameters" : [
   4778             { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
   4779           ]
   4780         },
   4781         {
   4782           "enumerant" : "MatrixStride",
   4783           "value" : 7,
   4784           "capabilities" : [ "Matrix" ],
   4785           "parameters" : [
   4786             { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
   4787           ]
   4788         },
   4789         {
   4790           "enumerant" : "GLSLShared",
   4791           "value" : 8,
   4792           "capabilities" : [ "Shader" ]
   4793         },
   4794         {
   4795           "enumerant" : "GLSLPacked",
   4796           "value" : 9,
   4797           "capabilities" : [ "Shader" ]
   4798         },
   4799         {
   4800           "enumerant" : "CPacked",
   4801           "value" : 10,
   4802           "capabilities" : [ "Kernel" ]
   4803         },
   4804         {
   4805           "enumerant" : "BuiltIn",
   4806           "value" : 11,
   4807           "parameters" : [
   4808             { "kind" : "BuiltIn" }
   4809           ]
   4810         },
   4811         {
   4812           "enumerant" : "NoPerspective",
   4813           "value" : 13,
   4814           "capabilities" : [ "Shader" ]
   4815         },
   4816         {
   4817           "enumerant" : "Flat",
   4818           "value" : 14,
   4819           "capabilities" : [ "Shader" ]
   4820         },
   4821         {
   4822           "enumerant" : "Patch",
   4823           "value" : 15,
   4824           "capabilities" : [ "Tessellation" ]
   4825         },
   4826         {
   4827           "enumerant" : "Centroid",
   4828           "value" : 16,
   4829           "capabilities" : [ "Shader" ]
   4830         },
   4831         {
   4832           "enumerant" : "Sample",
   4833           "value" : 17,
   4834           "capabilities" : [ "SampleRateShading" ]
   4835         },
   4836         {
   4837           "enumerant" : "Invariant",
   4838           "value" : 18,
   4839           "capabilities" : [ "Shader" ]
   4840         },
   4841         {
   4842           "enumerant" : "Restrict",
   4843           "value" : 19
   4844         },
   4845         {
   4846           "enumerant" : "Aliased",
   4847           "value" : 20
   4848         },
   4849         {
   4850           "enumerant" : "Volatile",
   4851           "value" : 21
   4852         },
   4853         {
   4854           "enumerant" : "Constant",
   4855           "value" : 22,
   4856           "capabilities" : [ "Kernel" ]
   4857         },
   4858         {
   4859           "enumerant" : "Coherent",
   4860           "value" : 23
   4861         },
   4862         {
   4863           "enumerant" : "NonWritable",
   4864           "value" : 24
   4865         },
   4866         {
   4867           "enumerant" : "NonReadable",
   4868           "value" : 25
   4869         },
   4870         {
   4871           "enumerant" : "Uniform",
   4872           "value" : 26,
   4873           "capabilities" : [ "Shader" ]
   4874         },
   4875         {
   4876           "enumerant" : "SaturatedConversion",
   4877           "value" : 28,
   4878           "capabilities" : [ "Kernel" ]
   4879         },
   4880         {
   4881           "enumerant" : "Stream",
   4882           "value" : 29,
   4883           "capabilities" : [ "GeometryStreams" ],
   4884           "parameters" : [
   4885             { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
   4886           ]
   4887         },
   4888         {
   4889           "enumerant" : "Location",
   4890           "value" : 30,
   4891           "capabilities" : [ "Shader" ],
   4892           "parameters" : [
   4893             { "kind" : "LiteralInteger", "name" : "'Location'" }
   4894           ]
   4895         },
   4896         {
   4897           "enumerant" : "Component",
   4898           "value" : 31,
   4899           "capabilities" : [ "Shader" ],
   4900           "parameters" : [
   4901             { "kind" : "LiteralInteger", "name" : "'Component'" }
   4902           ]
   4903         },
   4904         {
   4905           "enumerant" : "Index",
   4906           "value" : 32,
   4907           "capabilities" : [ "Shader" ],
   4908           "parameters" : [
   4909             { "kind" : "LiteralInteger", "name" : "'Index'" }
   4910           ]
   4911         },
   4912         {
   4913           "enumerant" : "Binding",
   4914           "value" : 33,
   4915           "capabilities" : [ "Shader" ],
   4916           "parameters" : [
   4917             { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
   4918           ]
   4919         },
   4920         {
   4921           "enumerant" : "DescriptorSet",
   4922           "value" : 34,
   4923           "capabilities" : [ "Shader" ],
   4924           "parameters" : [
   4925             { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
   4926           ]
   4927         },
   4928         {
   4929           "enumerant" : "Offset",
   4930           "value" : 35,
   4931           "capabilities" : [ "Shader" ],
   4932           "parameters" : [
   4933             { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
   4934           ]
   4935         },
   4936         {
   4937           "enumerant" : "XfbBuffer",
   4938           "value" : 36,
   4939           "capabilities" : [ "TransformFeedback" ],
   4940           "parameters" : [
   4941             { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
   4942           ]
   4943         },
   4944         {
   4945           "enumerant" : "XfbStride",
   4946           "value" : 37,
   4947           "capabilities" : [ "TransformFeedback" ],
   4948           "parameters" : [
   4949             { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
   4950           ]
   4951         },
   4952         {
   4953           "enumerant" : "FuncParamAttr",
   4954           "value" : 38,
   4955           "capabilities" : [ "Kernel" ],
   4956           "parameters" : [
   4957             { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
   4958           ]
   4959         },
   4960         {
   4961           "enumerant" : "FPRoundingMode",
   4962           "value" : 39,
   4963           "parameters" : [
   4964             { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
   4965           ]
   4966         },
   4967         {
   4968           "enumerant" : "FPFastMathMode",
   4969           "value" : 40,
   4970           "capabilities" : [ "Kernel" ],
   4971           "parameters" : [
   4972             { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
   4973           ]
   4974         },
   4975         {
   4976           "enumerant" : "LinkageAttributes",
   4977           "value" : 41,
   4978           "capabilities" : [ "Linkage" ],
   4979           "parameters" : [
   4980             { "kind" : "LiteralString", "name" : "'Name'" },
   4981             { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
   4982           ]
   4983         },
   4984         {
   4985           "enumerant" : "NoContraction",
   4986           "value" : 42,
   4987           "capabilities" : [ "Shader" ]
   4988         },
   4989         {
   4990           "enumerant" : "InputAttachmentIndex",
   4991           "value" : 43,
   4992           "capabilities" : [ "InputAttachment" ],
   4993           "parameters" : [
   4994             { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
   4995           ]
   4996         },
   4997         {
   4998           "enumerant" : "Alignment",
   4999           "value" : 44,
   5000           "capabilities" : [ "Kernel" ],
   5001           "parameters" : [
   5002             { "kind" : "LiteralInteger", "name" : "'Alignment'" }
   5003           ]
   5004         },
   5005         {
   5006           "enumerant" : "MaxByteOffset",
   5007           "value" : 45,
   5008           "capabilities" : [ "Addresses" ],
   5009           "parameters" : [
   5010             { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
   5011           ],
   5012           "version" : "1.1"
   5013         },
   5014         {
   5015           "enumerant" : "AlignmentId",
   5016           "value" : 46,
   5017           "capabilities" : [ "Kernel" ],
   5018           "parameters" : [
   5019             { "kind" : "IdRef", "name" : "'Alignment'" }
   5020           ],
   5021           "version" : "1.2"
   5022         },
   5023         {
   5024           "enumerant" : "MaxByteOffsetId",
   5025           "value" : 47,
   5026           "capabilities" : [ "Addresses" ],
   5027           "parameters" : [
   5028             { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
   5029           ],
   5030           "version" : "1.2"
   5031         },
   5032         {
   5033           "enumerant" : "ExplicitInterpAMD",
   5034           "value" : 4999,
   5035           "version" : "None"
   5036         },
   5037         {
   5038           "enumerant" : "OverrideCoverageNV",
   5039           "value" : 5248,
   5040           "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
   5041           "version" : "None"
   5042         },
   5043         {
   5044           "enumerant" : "PassthroughNV",
   5045           "value" : 5250,
   5046           "capabilities" : [ "GeometryShaderPassthroughNV" ],
   5047           "version" : "None"
   5048         },
   5049         {
   5050           "enumerant" : "ViewportRelativeNV",
   5051           "value" : 5252,
   5052           "capabilities" : [ "ShaderViewportMaskNV" ],
   5053           "version" : "None"
   5054         },
   5055         {
   5056           "enumerant" : "SecondaryViewportRelativeNV",
   5057           "value" : 5256,
   5058           "capabilities" : [ "ShaderStereoViewNV" ],
   5059           "version" : "None",
   5060           "parameters" : [
   5061             { "kind" : "LiteralInteger", "name" : "'Offset'" }
   5062           ]
   5063         }
   5064       ]
   5065     },
   5066     {
   5067       "category" : "ValueEnum",
   5068       "kind" : "BuiltIn",
   5069       "enumerants" : [
   5070         {
   5071           "enumerant" : "Position",
   5072           "value" : 0,
   5073           "capabilities" : [ "Shader" ]
   5074         },
   5075         {
   5076           "enumerant" : "PointSize",
   5077           "value" : 1,
   5078           "capabilities" : [ "Shader" ]
   5079         },
   5080         {
   5081           "enumerant" : "ClipDistance",
   5082           "value" : 3,
   5083           "capabilities" : [ "ClipDistance" ]
   5084         },
   5085         {
   5086           "enumerant" : "CullDistance",
   5087           "value" : 4,
   5088           "capabilities" : [ "CullDistance" ]
   5089         },
   5090         {
   5091           "enumerant" : "VertexId",
   5092           "value" : 5,
   5093           "capabilities" : [ "Shader" ]
   5094         },
   5095         {
   5096           "enumerant" : "InstanceId",
   5097           "value" : 6,
   5098           "capabilities" : [ "Shader" ]
   5099         },
   5100         {
   5101           "enumerant" : "PrimitiveId",
   5102           "value" : 7,
   5103           "capabilities" : [ "Geometry", "Tessellation" ]
   5104         },
   5105         {
   5106           "enumerant" : "InvocationId",
   5107           "value" : 8,
   5108           "capabilities" : [ "Geometry", "Tessellation" ]
   5109         },
   5110         {
   5111           "enumerant" : "Layer",
   5112           "value" : 9,
   5113           "capabilities" : [ "Geometry" ]
   5114         },
   5115         {
   5116           "enumerant" : "ViewportIndex",
   5117           "value" : 10,
   5118           "capabilities" : [ "MultiViewport" ]
   5119         },
   5120         {
   5121           "enumerant" : "TessLevelOuter",
   5122           "value" : 11,
   5123           "capabilities" : [ "Tessellation" ]
   5124         },
   5125         {
   5126           "enumerant" : "TessLevelInner",
   5127           "value" : 12,
   5128           "capabilities" : [ "Tessellation" ]
   5129         },
   5130         {
   5131           "enumerant" : "TessCoord",
   5132           "value" : 13,
   5133           "capabilities" : [ "Tessellation" ]
   5134         },
   5135         {
   5136           "enumerant" : "PatchVertices",
   5137           "value" : 14,
   5138           "capabilities" : [ "Tessellation" ]
   5139         },
   5140         {
   5141           "enumerant" : "FragCoord",
   5142           "value" : 15,
   5143           "capabilities" : [ "Shader" ]
   5144         },
   5145         {
   5146           "enumerant" : "PointCoord",
   5147           "value" : 16,
   5148           "capabilities" : [ "Shader" ]
   5149         },
   5150         {
   5151           "enumerant" : "FrontFacing",
   5152           "value" : 17,
   5153           "capabilities" : [ "Shader" ]
   5154         },
   5155         {
   5156           "enumerant" : "SampleId",
   5157           "value" : 18,
   5158           "capabilities" : [ "SampleRateShading" ]
   5159         },
   5160         {
   5161           "enumerant" : "SamplePosition",
   5162           "value" : 19,
   5163           "capabilities" : [ "SampleRateShading" ]
   5164         },
   5165         {
   5166           "enumerant" : "SampleMask",
   5167           "value" : 20,
   5168           "capabilities" : [ "Shader" ]
   5169         },
   5170         {
   5171           "enumerant" : "FragDepth",
   5172           "value" : 22,
   5173           "capabilities" : [ "Shader" ]
   5174         },
   5175         {
   5176           "enumerant" : "HelperInvocation",
   5177           "value" : 23,
   5178           "capabilities" : [ "Shader" ]
   5179         },
   5180         {
   5181           "enumerant" : "NumWorkgroups",
   5182           "value" : 24
   5183         },
   5184         {
   5185           "enumerant" : "WorkgroupSize",
   5186           "value" : 25
   5187         },
   5188         {
   5189           "enumerant" : "WorkgroupId",
   5190           "value" : 26
   5191         },
   5192         {
   5193           "enumerant" : "LocalInvocationId",
   5194           "value" : 27
   5195         },
   5196         {
   5197           "enumerant" : "GlobalInvocationId",
   5198           "value" : 28
   5199         },
   5200         {
   5201           "enumerant" : "LocalInvocationIndex",
   5202           "value" : 29
   5203         },
   5204         {
   5205           "enumerant" : "WorkDim",
   5206           "value" : 30,
   5207           "capabilities" : [ "Kernel" ]
   5208         },
   5209         {
   5210           "enumerant" : "GlobalSize",
   5211           "value" : 31,
   5212           "capabilities" : [ "Kernel" ]
   5213         },
   5214         {
   5215           "enumerant" : "EnqueuedWorkgroupSize",
   5216           "value" : 32,
   5217           "capabilities" : [ "Kernel" ]
   5218         },
   5219         {
   5220           "enumerant" : "GlobalOffset",
   5221           "value" : 33,
   5222           "capabilities" : [ "Kernel" ]
   5223         },
   5224         {
   5225           "enumerant" : "GlobalLinearId",
   5226           "value" : 34,
   5227           "capabilities" : [ "Kernel" ]
   5228         },
   5229         {
   5230           "enumerant" : "SubgroupSize",
   5231           "value" : 36,
   5232           "capabilities" : [ "Kernel" ]
   5233         },
   5234         {
   5235           "enumerant" : "SubgroupMaxSize",
   5236           "value" : 37,
   5237           "capabilities" : [ "Kernel" ]
   5238         },
   5239         {
   5240           "enumerant" : "NumSubgroups",
   5241           "value" : 38,
   5242           "capabilities" : [ "Kernel" ]
   5243         },
   5244         {
   5245           "enumerant" : "NumEnqueuedSubgroups",
   5246           "value" : 39,
   5247           "capabilities" : [ "Kernel" ]
   5248         },
   5249         {
   5250           "enumerant" : "SubgroupId",
   5251           "value" : 40,
   5252           "capabilities" : [ "Kernel" ]
   5253         },
   5254         {
   5255           "enumerant" : "SubgroupLocalInvocationId",
   5256           "value" : 41,
   5257           "capabilities" : [ "Kernel" ]
   5258         },
   5259         {
   5260           "enumerant" : "VertexIndex",
   5261           "value" : 42,
   5262           "capabilities" : [ "Shader" ]
   5263         },
   5264         {
   5265           "enumerant" : "InstanceIndex",
   5266           "value" : 43,
   5267           "capabilities" : [ "Shader" ]
   5268         },
   5269         {
   5270           "enumerant" : "SubgroupEqMaskKHR",
   5271           "value" : 4416,
   5272           "capabilities" : [ "SubgroupBallotKHR" ],
   5273           "version" : "None"
   5274         },
   5275         {
   5276           "enumerant" : "SubgroupGeMaskKHR",
   5277           "value" : 4417,
   5278           "capabilities" : [ "SubgroupBallotKHR" ],
   5279           "version" : "None"
   5280         },
   5281         {
   5282           "enumerant" : "SubgroupGtMaskKHR",
   5283           "value" : 4418,
   5284           "capabilities" : [ "SubgroupBallotKHR" ],
   5285           "version" : "None"
   5286         },
   5287         {
   5288           "enumerant" : "SubgroupLeMaskKHR",
   5289           "value" : 4419,
   5290           "capabilities" : [ "SubgroupBallotKHR" ],
   5291           "version" : "None"
   5292         },
   5293         {
   5294           "enumerant" : "SubgroupLtMaskKHR",
   5295           "value" : 4420,
   5296           "capabilities" : [ "SubgroupBallotKHR" ],
   5297           "version" : "None"
   5298         },
   5299         {
   5300           "enumerant" : "BaseVertex",
   5301           "value" : 4424,
   5302           "capabilities" : [ "DrawParameters" ],
   5303           "version" : "None"
   5304         },
   5305         {
   5306           "enumerant" : "BaseInstance",
   5307           "value" : 4425,
   5308           "capabilities" : [ "DrawParameters" ],
   5309           "version" : "None"
   5310         },
   5311         {
   5312           "enumerant" : "DrawIndex",
   5313           "value" : 4426,
   5314           "capabilities" : [ "DrawParameters" ],
   5315           "version" : "None"
   5316         },
   5317         {
   5318           "enumerant" : "DeviceIndex",
   5319           "value" : 4438,
   5320           "capabilities" : [ "DeviceGroup" ],
   5321           "version" : "None"
   5322         },
   5323         {
   5324           "enumerant" : "ViewIndex",
   5325           "value" : 4440,
   5326           "capabilities" : [ "MultiView" ],
   5327           "version" : "None"
   5328         },
   5329         {
   5330           "enumerant" : "BaryCoordNoPerspAMD",
   5331           "value" : 4992,
   5332           "version" : "None"
   5333         },
   5334         {
   5335           "enumerant" : "BaryCoordNoPerspCentroidAMD",
   5336           "value" : 4993,
   5337           "version" : "None"
   5338         },
   5339         {
   5340           "enumerant" : "BaryCoordNoPerspSampleAMD",
   5341           "value" : 4994,
   5342           "version" : "None"
   5343         },
   5344         {
   5345           "enumerant" : "BaryCoordSmoothAMD",
   5346           "value" : 4995,
   5347           "version" : "None"
   5348         },
   5349         {
   5350           "enumerant" : "BaryCoordSmoothCentroidAMD",
   5351           "value" : 4996,
   5352           "version" : "None"
   5353         },
   5354         {
   5355           "enumerant" : "BaryCoordSmoothSampleAMD",
   5356           "value" : 4997,
   5357           "version" : "None"
   5358         },
   5359         {
   5360           "enumerant" : "BaryCoordPullModelAMD",
   5361           "value" : 4998,
   5362           "version" : "None"
   5363         },
   5364         {
   5365           "enumerant" : "FragStencilRefEXT",
   5366           "value" : 5014,
   5367           "capabilities" : [ "StencilExportEXT" ],
   5368           "version" : "None"
   5369         },
   5370         {
   5371           "enumerant" : "ViewportMaskNV",
   5372           "value" : 5253,
   5373           "capabilities" : [ "ShaderViewportMaskNV" ],
   5374           "version" : "None"
   5375         },
   5376         {
   5377           "enumerant" : "SecondaryPositionNV",
   5378           "value" : 5257,
   5379           "capabilities" : [ "ShaderStereoViewNV" ],
   5380           "version" : "None"
   5381         },
   5382         {
   5383           "enumerant" : "SecondaryViewportMaskNV",
   5384           "value" : 5258,
   5385           "capabilities" : [ "ShaderStereoViewNV" ],
   5386           "version" : "None"
   5387         },
   5388         {
   5389           "enumerant" : "PositionPerViewNV",
   5390           "value" : 5261,
   5391           "capabilities" : [ "PerViewAttributesNV" ],
   5392           "version" : "None"
   5393         },
   5394         {
   5395           "enumerant" : "ViewportMaskPerViewNV",
   5396           "value" : 5262,
   5397           "capabilities" : [ "PerViewAttributesNV" ],
   5398           "version" : "None"
   5399         },
   5400         {
   5401           "enumerant" : "FullyCoveredEXT",
   5402           "value" : 5264,
   5403           "capabilities" : [ "FragmentFullyCoveredEXT" ],
   5404           "version" : "None"
   5405         }
   5406       ]
   5407     },
   5408     {
   5409       "category" : "ValueEnum",
   5410       "kind" : "Scope",
   5411       "enumerants" : [
   5412         {
   5413           "enumerant" : "CrossDevice",
   5414           "value" : 0
   5415         },
   5416         {
   5417           "enumerant" : "Device",
   5418           "value" : 1
   5419         },
   5420         {
   5421           "enumerant" : "Workgroup",
   5422           "value" : 2
   5423         },
   5424         {
   5425           "enumerant" : "Subgroup",
   5426           "value" : 3
   5427         },
   5428         {
   5429           "enumerant" : "Invocation",
   5430           "value" : 4
   5431         }
   5432       ]
   5433     },
   5434     {
   5435       "category" : "ValueEnum",
   5436       "kind" : "GroupOperation",
   5437       "enumerants" : [
   5438         {
   5439           "enumerant" : "Reduce",
   5440           "value" : 0,
   5441           "capabilities" : [ "Kernel" ]
   5442         },
   5443         {
   5444           "enumerant" : "InclusiveScan",
   5445           "value" : 1,
   5446           "capabilities" : [ "Kernel" ]
   5447         },
   5448         {
   5449           "enumerant" : "ExclusiveScan",
   5450           "value" : 2,
   5451           "capabilities" : [ "Kernel" ]
   5452         }
   5453       ]
   5454     },
   5455     {
   5456       "category" : "ValueEnum",
   5457       "kind" : "KernelEnqueueFlags",
   5458       "enumerants" : [
   5459         {
   5460           "enumerant" : "NoWait",
   5461           "value" : 0,
   5462           "capabilities" : [ "Kernel" ]
   5463         },
   5464         {
   5465           "enumerant" : "WaitKernel",
   5466           "value" : 1,
   5467           "capabilities" : [ "Kernel" ]
   5468         },
   5469         {
   5470           "enumerant" : "WaitWorkGroup",
   5471           "value" : 2,
   5472           "capabilities" : [ "Kernel" ]
   5473         }
   5474       ]
   5475     },
   5476     {
   5477       "category" : "ValueEnum",
   5478       "kind" : "Capability",
   5479       "enumerants" : [
   5480         {
   5481           "enumerant" : "Matrix",
   5482           "value" : 0
   5483         },
   5484         {
   5485           "enumerant" : "Shader",
   5486           "value" : 1,
   5487           "capabilities" : [ "Matrix" ]
   5488         },
   5489         {
   5490           "enumerant" : "Geometry",
   5491           "value" : 2,
   5492           "capabilities" : [ "Shader" ]
   5493         },
   5494         {
   5495           "enumerant" : "Tessellation",
   5496           "value" : 3,
   5497           "capabilities" : [ "Shader" ]
   5498         },
   5499         {
   5500           "enumerant" : "Addresses",
   5501           "value" : 4
   5502         },
   5503         {
   5504           "enumerant" : "Linkage",
   5505           "value" : 5
   5506         },
   5507         {
   5508           "enumerant" : "Kernel",
   5509           "value" : 6
   5510         },
   5511         {
   5512           "enumerant" : "Vector16",
   5513           "value" : 7,
   5514           "capabilities" : [ "Kernel" ]
   5515         },
   5516         {
   5517           "enumerant" : "Float16Buffer",
   5518           "value" : 8,
   5519           "capabilities" : [ "Kernel" ]
   5520         },
   5521         {
   5522           "enumerant" : "Float16",
   5523           "value" : 9
   5524         },
   5525         {
   5526           "enumerant" : "Float64",
   5527           "value" : 10
   5528         },
   5529         {
   5530           "enumerant" : "Int64",
   5531           "value" : 11
   5532         },
   5533         {
   5534           "enumerant" : "Int64Atomics",
   5535           "value" : 12,
   5536           "capabilities" : [ "Int64" ]
   5537         },
   5538         {
   5539           "enumerant" : "ImageBasic",
   5540           "value" : 13,
   5541           "capabilities" : [ "Kernel" ]
   5542         },
   5543         {
   5544           "enumerant" : "ImageReadWrite",
   5545           "value" : 14,
   5546           "capabilities" : [ "ImageBasic" ]
   5547         },
   5548         {
   5549           "enumerant" : "ImageMipmap",
   5550           "value" : 15,
   5551           "capabilities" : [ "ImageBasic" ]
   5552         },
   5553         {
   5554           "enumerant" : "Pipes",
   5555           "value" : 17,
   5556           "capabilities" : [ "Kernel" ]
   5557         },
   5558         {
   5559           "enumerant" : "Groups",
   5560           "value" : 18
   5561         },
   5562         {
   5563           "enumerant" : "DeviceEnqueue",
   5564           "value" : 19,
   5565           "capabilities" : [ "Kernel" ]
   5566         },
   5567         {
   5568           "enumerant" : "LiteralSampler",
   5569           "value" : 20,
   5570           "capabilities" : [ "Kernel" ]
   5571         },
   5572         {
   5573           "enumerant" : "AtomicStorage",
   5574           "value" : 21,
   5575           "capabilities" : [ "Shader" ]
   5576         },
   5577         {
   5578           "enumerant" : "Int16",
   5579           "value" : 22
   5580         },
   5581         {
   5582           "enumerant" : "TessellationPointSize",
   5583           "value" : 23,
   5584           "capabilities" : [ "Tessellation" ]
   5585         },
   5586         {
   5587           "enumerant" : "GeometryPointSize",
   5588           "value" : 24,
   5589           "capabilities" : [ "Geometry" ]
   5590         },
   5591         {
   5592           "enumerant" : "ImageGatherExtended",
   5593           "value" : 25,
   5594           "capabilities" : [ "Shader" ]
   5595         },
   5596         {
   5597           "enumerant" : "StorageImageMultisample",
   5598           "value" : 27,
   5599           "capabilities" : [ "Shader" ]
   5600         },
   5601         {
   5602           "enumerant" : "UniformBufferArrayDynamicIndexing",
   5603           "value" : 28,
   5604           "capabilities" : [ "Shader" ]
   5605         },
   5606         {
   5607           "enumerant" : "SampledImageArrayDynamicIndexing",
   5608           "value" : 29,
   5609           "capabilities" : [ "Shader" ]
   5610         },
   5611         {
   5612           "enumerant" : "StorageBufferArrayDynamicIndexing",
   5613           "value" : 30,
   5614           "capabilities" : [ "Shader" ]
   5615         },
   5616         {
   5617           "enumerant" : "StorageImageArrayDynamicIndexing",
   5618           "value" : 31,
   5619           "capabilities" : [ "Shader" ]
   5620         },
   5621         {
   5622           "enumerant" : "ClipDistance",
   5623           "value" : 32,
   5624           "capabilities" : [ "Shader" ]
   5625         },
   5626         {
   5627           "enumerant" : "CullDistance",
   5628           "value" : 33,
   5629           "capabilities" : [ "Shader" ]
   5630         },
   5631         {
   5632           "enumerant" : "ImageCubeArray",
   5633           "value" : 34,
   5634           "capabilities" : [ "SampledCubeArray" ]
   5635         },
   5636         {
   5637           "enumerant" : "SampleRateShading",
   5638           "value" : 35,
   5639           "capabilities" : [ "Shader" ]
   5640         },
   5641         {
   5642           "enumerant" : "ImageRect",
   5643           "value" : 36,
   5644           "capabilities" : [ "SampledRect" ]
   5645         },
   5646         {
   5647           "enumerant" : "SampledRect",
   5648           "value" : 37,
   5649           "capabilities" : [ "Shader" ]
   5650         },
   5651         {
   5652           "enumerant" : "GenericPointer",
   5653           "value" : 38,
   5654           "capabilities" : [ "Addresses" ]
   5655         },
   5656         {
   5657           "enumerant" : "Int8",
   5658           "value" : 39,
   5659           "capabilities" : [ "Kernel" ]
   5660         },
   5661         {
   5662           "enumerant" : "InputAttachment",
   5663           "value" : 40,
   5664           "capabilities" : [ "Shader" ]
   5665         },
   5666         {
   5667           "enumerant" : "SparseResidency",
   5668           "value" : 41,
   5669           "capabilities" : [ "Shader" ]
   5670         },
   5671         {
   5672           "enumerant" : "MinLod",
   5673           "value" : 42,
   5674           "capabilities" : [ "Shader" ]
   5675         },
   5676         {
   5677           "enumerant" : "Sampled1D",
   5678           "value" : 43
   5679         },
   5680         {
   5681           "enumerant" : "Image1D",
   5682           "value" : 44,
   5683           "capabilities" : [ "Sampled1D" ]
   5684         },
   5685         {
   5686           "enumerant" : "SampledCubeArray",
   5687           "value" : 45,
   5688           "capabilities" : [ "Shader" ]
   5689         },
   5690         {
   5691           "enumerant" : "SampledBuffer",
   5692           "value" : 46
   5693         },
   5694         {
   5695           "enumerant" : "ImageBuffer",
   5696           "value" : 47,
   5697           "capabilities" : [ "SampledBuffer" ]
   5698         },
   5699         {
   5700           "enumerant" : "ImageMSArray",
   5701           "value" : 48,
   5702           "capabilities" : [ "Shader" ]
   5703         },
   5704         {
   5705           "enumerant" : "StorageImageExtendedFormats",
   5706           "value" : 49,
   5707           "capabilities" : [ "Shader" ]
   5708         },
   5709         {
   5710           "enumerant" : "ImageQuery",
   5711           "value" : 50,
   5712           "capabilities" : [ "Shader" ]
   5713         },
   5714         {
   5715           "enumerant" : "DerivativeControl",
   5716           "value" : 51,
   5717           "capabilities" : [ "Shader" ]
   5718         },
   5719         {
   5720           "enumerant" : "InterpolationFunction",
   5721           "value" : 52,
   5722           "capabilities" : [ "Shader" ]
   5723         },
   5724         {
   5725           "enumerant" : "TransformFeedback",
   5726           "value" : 53,
   5727           "capabilities" : [ "Shader" ]
   5728         },
   5729         {
   5730           "enumerant" : "GeometryStreams",
   5731           "value" : 54,
   5732           "capabilities" : [ "Geometry" ]
   5733         },
   5734         {
   5735           "enumerant" : "StorageImageReadWithoutFormat",
   5736           "value" : 55,
   5737           "capabilities" : [ "Shader" ]
   5738         },
   5739         {
   5740           "enumerant" : "StorageImageWriteWithoutFormat",
   5741           "value" : 56,
   5742           "capabilities" : [ "Shader" ]
   5743         },
   5744         {
   5745           "enumerant" : "MultiViewport",
   5746           "value" : 57,
   5747           "capabilities" : [ "Geometry" ]
   5748         },
   5749         {
   5750           "enumerant" : "SubgroupDispatch",
   5751           "value" : 58,
   5752           "capabilities" : [ "DeviceEnqueue" ],
   5753           "version" : "1.1"
   5754         },
   5755         {
   5756           "enumerant" : "NamedBarrier",
   5757           "value" : 59,
   5758           "capabilities" : [ "Kernel" ],
   5759           "version" : "1.1"
   5760         },
   5761         {
   5762           "enumerant" : "PipeStorage",
   5763           "value" : 60,
   5764           "capabilities" : [ "Pipes" ],
   5765           "version" : "1.1"
   5766         },
   5767         {
   5768           "enumerant" : "SubgroupBallotKHR",
   5769           "value" : 4423,
   5770           "extensions" : [ "SPV_KHR_shader_ballot" ],
   5771           "version" : "None"
   5772         },
   5773         {
   5774           "enumerant" : "DrawParameters",
   5775           "value" : 4427,
   5776           "capabilities" : [ "Shader" ],
   5777           "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
   5778           "version" : "None"
   5779         },
   5780         {
   5781           "enumerant" : "SubgroupVoteKHR",
   5782           "value" : 4431,
   5783           "extensions" : [ "SPV_KHR_subgroup_vote" ],
   5784           "version" : "None"
   5785         },
   5786         {
   5787           "enumerant" : "StorageBuffer16BitAccess",
   5788           "value" : 4433,
   5789           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5790           "version" : "None"
   5791         },
   5792         {
   5793           "enumerant" : "StorageUniformBufferBlock16",
   5794           "value" : 4433,
   5795           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5796           "version" : "None"
   5797         },
   5798         {
   5799           "enumerant" : "UniformAndStorageBuffer16BitAccess",
   5800           "value" : 4434,
   5801           "capabilities" : [
   5802             "StorageBuffer16BitAccess",
   5803             "StorageUniformBufferBlock16"
   5804           ],
   5805           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5806           "version" : "None"
   5807         },
   5808         {
   5809           "enumerant" : "StorageUniform16",
   5810           "value" : 4434,
   5811           "capabilities" : [
   5812             "StorageBuffer16BitAccess",
   5813             "StorageUniformBufferBlock16"
   5814           ],
   5815           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5816           "version" : "None"
   5817         },
   5818         {
   5819           "enumerant" : "StoragePushConstant16",
   5820           "value" : 4435,
   5821           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5822           "version" : "None"
   5823         },
   5824         {
   5825           "enumerant" : "StorageInputOutput16",
   5826           "value" : 4436,
   5827           "extensions" : [ "SPV_KHR_16bit_storage" ],
   5828           "version" : "None"
   5829         },
   5830         {
   5831           "enumerant" : "DeviceGroup",
   5832           "value" : 4437,
   5833           "version" : "None"
   5834         },
   5835         {
   5836           "enumerant" : "MultiView",
   5837           "value" : 4439,
   5838           "capabilities" : [ "Shader" ],
   5839           "extensions" : [ "SPV_KHR_multiview" ],
   5840           "version" : "None"
   5841         },
   5842         {
   5843           "enumerant" : "VariablePointersStorageBuffer",
   5844           "value" : 4441,
   5845           "capabilities" : [ "Shader" ],
   5846           "extensions" : [ "SPV_KHR_variable_pointers" ],
   5847           "version" : "None"
   5848         },
   5849         {
   5850           "enumerant" : "VariablePointers",
   5851           "value" : 4442,
   5852           "capabilities" : [ "VariablePointersStorageBuffer" ],
   5853           "extensions" : [ "SPV_KHR_variable_pointers" ],
   5854           "version" : "None"
   5855         },
   5856         {
   5857           "enumerant" : "AtomicStorageOps",
   5858           "value" : 4445,
   5859           "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
   5860           "version" : "None"
   5861         },
   5862         {
   5863           "enumerant" : "SampleMaskPostDepthCoverage",
   5864           "value" : 4447,
   5865           "extensions" : [ "SPV_KHR_post_depth_coverage" ],
   5866           "version" : "None"
   5867         },
   5868         {
   5869           "enumerant" : "ImageGatherBiasLodAMD",
   5870           "value" : 5009,
   5871           "capabilities" : [ "Shader" ],
   5872           "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
   5873           "version" : "None"
   5874         },
   5875         {
   5876           "enumerant" : "FragmentMaskAMD",
   5877           "value" : 5010,
   5878           "capabilities" : [ "Shader" ],
   5879           "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
   5880           "version" : "None"
   5881         },
   5882         {
   5883           "enumerant" : "StencilExportEXT",
   5884           "value" : 5013,
   5885           "capabilities" : [ "Shader" ],
   5886           "extensions" : [ "SPV_EXT_shader_stencil_export" ],
   5887           "version" : "None"
   5888         },
   5889         {
   5890           "enumerant" : "ImageReadWriteLodAMD",
   5891           "value" : 5015,
   5892           "capabilities" : [ "Shader" ],
   5893           "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
   5894           "version" : "None"
   5895         },
   5896         {
   5897           "enumerant" : "SampleMaskOverrideCoverageNV",
   5898           "value" : 5249,
   5899           "capabilities" : [ "SampleRateShading" ],
   5900           "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
   5901           "version" : "None"
   5902         },
   5903         {
   5904           "enumerant" : "GeometryShaderPassthroughNV",
   5905           "value" : 5251,
   5906           "capabilities" : [ "Geometry" ],
   5907           "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
   5908           "version" : "None"
   5909         },
   5910         {
   5911           "enumerant" : "ShaderViewportIndexLayerEXT",
   5912           "value" : 5254,
   5913           "capabilities" : [ "MultiViewport" ],
   5914           "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
   5915           "version" : "None"
   5916         },
   5917         {
   5918           "enumerant" : "ShaderViewportIndexLayerNV",
   5919           "value" : 5254,
   5920           "capabilities" : [ "MultiViewport" ],
   5921           "extensions" : [ "SPV_NV_viewport_array2" ],
   5922           "version" : "None"
   5923         },
   5924         {
   5925           "enumerant" : "ShaderViewportMaskNV",
   5926           "value" : 5255,
   5927           "capabilities" : [ "ShaderViewportIndexLayerNV" ],
   5928           "extensions" : [ "SPV_NV_viewport_array2" ],
   5929           "version" : "None"
   5930         },
   5931         {
   5932           "enumerant" : "ShaderStereoViewNV",
   5933           "value" : 5259,
   5934           "capabilities" : [ "ShaderViewportMaskNV" ],
   5935           "extensions" : [ "SPV_NV_stereo_view_rendering" ],
   5936           "version" : "None"
   5937         },
   5938         {
   5939           "enumerant" : "PerViewAttributesNV",
   5940           "value" : 5260,
   5941           "capabilities" : [ "MultiView" ],
   5942           "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
   5943           "version" : "None"
   5944         },
   5945         {
   5946           "enumerant" : "FragmentFullyCoveredEXT",
   5947           "value" : 5265,
   5948           "capabilities" : [ "Shader" ],
   5949           "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
   5950           "version" : "None"
   5951         },
   5952         {
   5953           "enumerant" : "SubgroupShuffleINTEL",
   5954           "value" : 5568,
   5955           "extensions" : [ "SPV_INTEL_subgroups" ],
   5956           "version" : "None"
   5957         },
   5958         {
   5959           "enumerant" : "SubgroupBufferBlockIOINTEL",
   5960           "value" : 5569,
   5961           "extensions" : [ "SPV_INTEL_subgroups" ],
   5962           "version" : "None"
   5963         },
   5964         {
   5965           "enumerant" : "SubgroupImageBlockIOINTEL",
   5966           "value" : 5570,
   5967           "extensions" : [ "SPV_INTEL_subgroups" ],
   5968           "version" : "None"
   5969         }
   5970       ]
   5971     },
   5972     {
   5973       "category" : "Id",
   5974       "kind" : "IdResultType",
   5975       "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
   5976     },
   5977     {
   5978       "category" : "Id",
   5979       "kind" : "IdResult",
   5980       "doc" : "Definition of an <id> representing the result of the enclosing instruction"
   5981     },
   5982     {
   5983       "category" : "Id",
   5984       "kind" : "IdMemorySemantics",
   5985       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
   5986     },
   5987     {
   5988       "category" : "Id",
   5989       "kind" : "IdScope",
   5990       "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
   5991     },
   5992     {
   5993       "category" : "Id",
   5994       "kind" : "IdRef",
   5995       "doc" : "Reference to an <id>"
   5996     },
   5997     {
   5998       "category" : "Literal",
   5999       "kind" : "LiteralInteger",
   6000       "doc" : "An integer consuming one or more words"
   6001     },
   6002     {
   6003       "category" : "Literal",
   6004       "kind" : "LiteralString",
   6005       "doc" : "A null-terminated stream of characters consuming an integral number of words"
   6006     },
   6007     {
   6008       "category" : "Literal",
   6009       "kind" : "LiteralContextDependentNumber",
   6010       "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
   6011     },
   6012     {
   6013       "category" : "Literal",
   6014       "kind" : "LiteralExtInstInteger",
   6015       "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
   6016     },
   6017     {
   6018       "category" : "Literal",
   6019       "kind" : "LiteralSpecConstantOpInteger",
   6020       "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
   6021     },
   6022     {
   6023       "category" : "Composite",
   6024       "kind" : "PairLiteralIntegerIdRef",
   6025       "bases" : [ "LiteralInteger", "IdRef" ]
   6026     },
   6027     {
   6028       "category" : "Composite",
   6029       "kind" : "PairIdRefLiteralInteger",
   6030       "bases" : [ "IdRef", "LiteralInteger" ]
   6031     },
   6032     {
   6033       "category" : "Composite",
   6034       "kind" : "PairIdRefIdRef",
   6035       "bases" : [ "IdRef", "IdRef" ]
   6036     }
   6037   ]
   6038 }
   6039