<?xml version="1.0" encoding="UTF-8"?>
<registry>
    <!--
    Copyright (c) 2015-2024 The Khronos Group Inc.

    Permission is hereby granted, free of charge, to any person obtaining a
    copy of this software and/or associated documentation files (the
    "Materials"), to deal in the Materials without restriction, including
    without limitation the rights to use, copy, modify, merge, publish,
    distribute, sublicense, and/or sell copies of the Materials, and to
    permit persons to whom the Materials are furnished to do so, subject to
    the following conditions:

    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Materials.

    THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
    -->
    <!--
    This file, spir-v.xml, is the SPIR-V Tool ID, opcode and enumerant registry.
    The canonical version of the registry, together with related schema and
    documentation, can be found in the Khronos Registry at
    include/spirv/spir-v.xml in the master branch at
    https://github.com/KhronosGroup/SPIRV-Headers
    -->

    <!-- SECTION: SPIR-V Tool ID Definitions  -->

    <!-- A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
         bits are a tool ID, which should be unique across all SPIR-V
         generators. The low order 16 bits are reserved for use as a tool
         version number, or any other purpose the tool supplier chooses.
         Only the tool IDs are reserved with Khronos.

         Add new tool ID reservations contiguously with the first available
         number (the "start" attribute of the <unused> tag below), and
         modify that <unused> tag accordingly. Please add a vendor/tool
         supplier name in a 'vendor="name"' attribute; a tool name in a
         'tool="name"' attribute; and a contact person/address in a
         'comment' attribute. Remember that this value is the high 16 bits
         of a 32-bit word.

         Note: a single vendor/tool supplier may have multiple tool IDs
         reserved for different SPIR-V generators -->

    <ids type="vendor" start="0" end="0xFFFF" comment="SPIR-V Tool IDs">
        <id value="0"   vendor="Khronos"    comment="Reserved by Khronos"/>
        <id value="1"   vendor="LunarG"     comment="Contact TBD"/>
        <id value="2"   vendor="Valve"      comment="Contact TBD"/>
        <id value="3"   vendor="Codeplay"   comment="Contact Victor Lomuller, victor@codeplay.com"/>
        <id value="4"   vendor="NVIDIA"     comment="Contact Kerch Holt, kholt@nvidia.com"/>
        <id value="5"   vendor="ARM"        comment="Contact Kevin Petit, kevin.petit@arm.com"/>
        <id value="6"   vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu@amd.com"/>
        <id value="7"   vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, dneto@google.com"/>
        <id value="8"   vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, johnkessenich@google.com"/>
        <id value="9"   vendor="Qualcomm"   comment="Contact weifengz@qti.qualcomm.com"/>
        <id value="10"  vendor="AMD"        comment="Contact Daniel Rakos, daniel.rakos@amd.com"/>
        <id value="11"  vendor="Intel"      comment="Contact Alexey, alexey.bader@intel.com"/>
        <id value="12"  vendor="Imagination" comment="Contact Stephen Clarke, stephen.clarke@imgtec.com"/>
        <id value="13"  vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, dneto@google.com"/>
        <id value="14"  vendor="Google" tool="spiregg" comment="Contact Steven Perron, stevenperron@google.com"/>
        <id value="15"  vendor="Google" tool="rspirv" comment="Contact Lei Zhang, antiagainst@gmail.com"/>
        <id value="16"  vendor="X-LEGEND"   tool="Mesa-IR/SPIR-V Translator" comment="Contact Metora Wang, github:metora/MesaGLSLCompiler"/>
        <id value="17"  vendor="Khronos" tool="SPIR-V Tools Linker" comment="Contact David Neto, dneto@google.com"/>
        <id value="18"  vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact wine-devel@winehq.org"/>
        <id value="19"  vendor="Tellusim" tool="Clay Shader Compiler" comment="Contact info@tellusim.com"/>
        <id value="20"  vendor="W3C WebGPU Group" tool="WHLSL Shader Translator" comment="https://github.com/gpuweb/WHLSL"/>
        <id value="21"  vendor="Google" tool="Clspv" comment="Contact David Neto, dneto@google.com"/>
        <id value="22"  vendor="LLVM" tool="MLIR SPIR-V Serializer" comment="Contact Jakub Kuderski, jakub.kuderski@amd.com, https://mlir.llvm.org/docs/Dialects/SPIR-V/"/>
        <id value="23"  vendor="Google" tool="Tint Compiler" comment="Contact David Neto, dneto@google.com"/>
        <id value="24"  vendor="Google" tool="ANGLE Shader Compiler" comment="Contact Shahbaz Youssefi, syoussefi@google.com"/>
        <id value="25"  vendor="Netease Games" tool="Messiah Shader Compiler" comment="Contact Yuwen Wu, atyuwen@gmail.com"/>
        <id value="26"  vendor="Xenia" tool="Xenia Emulator Microcode Translator" comment="Contact Vitaliy Kuzmin, triang3l@yandex.ru, https://github.com/xenia-project/xenia"/>
        <id value="27"  vendor="Embark Studios" tool="Rust GPU Compiler Backend" comment="https://github.com/embarkstudios/rust-gpu"/>
        <id value="28"  vendor="gfx-rs community" tool="Naga" comment="https://github.com/gfx-rs/naga"/>
        <id value="29"  vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
        <id value="30"  vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
        <id value="31"  vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
        <id value="32"  vendor="TornadoVM" tool="Beehive SPIRV Toolkit" comment="https://github.com/beehive-lab/beehive-spirv-toolkit"/>
        <id value="33"  vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
        <id value="34"  vendor="Rayan Hatout" tool="SPIRVSmith" comment="Contact Rayan Hatout rayan.hatout@gmail.com, Repo https://github.com/rayanht/SPIRVSmith"/>
        <id value="35"  vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers devillers@uni-saarland.de, Repo https://github.com/Hugobros3/shady"/>
        <id value="36"  vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang rendongliang@taichi.graphics, Repo https://github.com/taichi-dev/taichi"/>
        <id value="37"  vendor="heroseh" tool="Hero C Compiler" comment="https://github.com/heroseh/hcc"/>
        <id value="38"  vendor="Meta" tool="SparkSL" comment="Contact Dunfan Lu, dunfanlu@meta.com, https://sparkar.facebook.com/ar-studio/learn/sparksl/sparksl-overview"/>
        <id value="39"  vendor="SirLynix" tool="Nazara ShaderLang Compiler" comment="Contact Jérôme Leclercq, https://github.com/NazaraEngine/ShaderLang"/>
        <id value="40"  vendor="Khronos" tool="Slang Compiler" comment="https://shader-slang.org"/>
        <id value="41"  vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/>
        <id value="42"  vendor="Rendong Liang" tool="spq" comment="Contact Rendong Liang, admin@penguinliong.moe, https://github.com/PENGUINLIONG/spq-rs"/>
        <id value="43"  vendor="LLVM" tool="LLVM SPIR-V Backend" comment="Contact Michal Paszkowski, michal.paszkowski@intel.com, https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/SPIRV"/>
        <id value="44"  vendor="Robert Konrad" tool="Kongruent" comment="Contact Robert Konrad, https://github.com/Kode/Kongruent"/>
        <id value="45"  vendor="Kitsunebi Games" tool="Nuvk SPIR-V Emitter and DLSL compiler" comment="Contact Luna Nielsen, luna@foxgirls.gay, https://github.com/Inochi2D/nuvk"/>
        <id value="46"  vendor="Nintendo" comment="Contact Steve Urquhart, steve.urquhart@ntd.nintendo.com"/>
        <id value="47"  vendor="ARM" comment="Contact Christopher Gautier, christopher.gautier@arm.com"/>
        <id value="48"  vendor="Goopax" comment="Contact Ingo Josopait, josopait@goopax.com"/>
        <unused start="49" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
    </ids>

    <!-- SECTION: SPIR-V Opcodes and Enumerants -->

    <!-- Vendors reserve new ranges of:
           - opcode enumerants in the "opcode" list below, and
           - non-opcode enumerants in the non-opcodes "enumerant" list below.
         Both are reserved by contiguous blocks of 64, preceding the given
         "Future use" blocks.

         SPIR-V background:
           - SPIR-V currently has well over 30 enums, including the opcode enum
           - each enum has its own name space, allowing reuse of enumerants
           - SPIR-V restricts opcode enumerants to 16 bits
           - all other enums use 32-bit enumerants

         Reservation rules:
           - opcode reservations ("opcode") are only valid for opcodes
           - non-opcode reservations ("enumerant") are not valid for opcodes
           - reservations in the enumerant list are valid for all non-opcode enums
           - it is simpler to use each non-opcode enumerant for only one purpose
             but this is left to the discretion of the vendor
           - all enumerants in a range should be used before allocating a new range
             (several extensions can use enumerants from the same range)

         Each vendor determines the use of enumerants in the ranges they
         reserve. Vendors are not required to disclose those uses.  If the use
         of an enumerant is included in an extension that is adopted by a Khronos
         extension or specification, then that enumerant's use may be permanently
         fixed as if originally reserved in a Khronos range.

         -->

    <!-- Begin reservations of opcode enumerants -->
    <ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
    <ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
    <ids type="opcode" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
    <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
    <ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
    <ids type="opcode" start="4992" end="5247" vendor="AMD"/>
    <ids type="opcode" start="5248" end="5503" vendor="NVIDIA"/>
    <ids type="opcode" start="5504" end="5567" vendor="Imagination"/>
    <ids type="opcode" start="5568" end="5631" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="opcode" start="5632" end="5695" vendor="Google" comment="Contact dneto@google.com"/>
    <ids type="opcode" start="5696" end="5823" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="opcode" start="5824" end="5951" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="opcode" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
    <ids type="opcode" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
    <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
    <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
    <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="opcode" start="6464" end="6527" vendor="N/A" comment="Blank range to keep alignment with non-opcodes"/>
    <ids type="opcode" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
    <ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
    <ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
    <ids type="opcode" start="6720" end="6783" vendor="MediaTek" comment="Contact samuel.huang@mediatek.com"/>
    <!-- Opcode enumerants to reserve for future use. To get a block, allocate
         multiples of 64 starting at the lowest available point in this
         block and add a corresponding <ids> tag immediately above. Make
         sure to fill in the vendor attribute, and preferably add a contact
         person/address in a comment attribute. -->
    <!-- Example new block: <ids type="opcode" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
    <ids type="opcode" start="6784" end="65535" comment="Opcode range reservable for future use by vendors"/>
    <!-- End reservations of opcodes -->


    <!-- Begin reservations of non-opcode enumerants -->
    <ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
    <ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
    <ids type="enumerant" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
    <ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
    <ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
    <ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
    <ids type="enumerant" start="5248" end="5503" vendor="NVIDIA"/>
    <ids type="enumerant" start="5504" end="5567" vendor="Imagination"/>
    <ids type="enumerant" start="5568" end="5631" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="enumerant" start="5632" end="5695" vendor="Google" comment="Contact dneto@google.com"/>
    <ids type="enumerant" start="5696" end="5823" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="enumerant" start="5824" end="5951" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="enumerant" start="5952" end="6015" vendor="Codeplay" comment="Contact victor@codeplay.com"/>
    <ids type="enumerant" start="6016" end="6079" vendor="Khronos" comment="Contact @tobski"/>
    <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
    <ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
    <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
    <ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact duncan.brawley@codeplay.com"/>
    <ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact devillers@cg.uni-saarland.de"/>
    <ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact dunfanlu@meta.com"/>
    <ids type="enumerant" start="6720" end="6783" vendor="MediaTek" comment="Contact samuel.huang@mediatek.com"/>
    <!-- Enumerants to reserve for future use. To get a block, allocate
         multiples of 64 starting at the lowest available point in this
         block and add a corresponding <ids> tag immediately above. Make
         sure to fill in the vendor attribute, and preferably add a contact
         person/address in a comment attribute. -->
    <!-- Example new block: <ids type="enumerant" start="XXXX" end="XXXX+64n-1" vendor="Add vendor" comment="Contact TBD"/> -->
    <ids type="enumerant" start="6784" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
    <!-- End reservations of enumerants -->


    <!-- SECTION: SPIR-V Loop Control Bit Reservations -->
    <!-- Reserve ranges of bits in the loop control bitfield.

         Each vendor determines the use of values in their own ranges.
         Vendors are not required to disclose those uses.  If the use of a
         value is included in an extension that is adopted by a Khronos
         extension or specification, then that value's use may be permanently
         fixed as if originally reserved in a Khronos range.

         The SPIR Working Group strongly recommends:
         - Each value is used for only one purpose.
         - All values in a range should be used before allocating a new range.
         -->

    <!-- Reserved loop control bits -->
    <ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
    <ids type="LoopControl" start="16" end="27" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="LoopControl" start="28" end="30" comment="Unreserved bits reservable for use by vendors"/>
    <ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>


    <!-- SECTION: SPIR-V Function Control Bit Reservations -->
    <!-- Reserve ranges of bits in the function control bitfield.

         Each vendor determines the use of values in their own ranges.
         Vendors are not required to disclose those uses.  If the use of a
         value is included in an extension that is adopted by a Khronos
         extension or specification, then that value's use may be permanently
         fixed as if originally reserved in a Khronos range.

         The SPIR Working Group strongly recommends:
         - Each value is used for only one purpose.
         - All values in a range should be used before allocating a new range.
         -->

    <!-- Reserved function control bits -->
    <ids type="FunctionControl" start="0" end="15" vendor="Khronos" comment="Reserved FunctionControl bits, not available to vendors - see the SPIR-V Specification"/>
    <ids type="FunctionControl" start="16" end="16" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
    <ids type="FunctionControl" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
    <ids type="FunctionControl" start="31" end="31" vendor="Khronos" comment="Reserved FunctionControl bit, not available to vendors"/>


    <!-- SECTION: SPIR-V FP Fast Math Mode Bit Reservations -->
    <!-- Reserve ranges of bits in the "FP Fast Math Mode" bitfield.
         Each vendor determines the use of values in their own ranges.
         Vendors are not required to disclose those uses.  If the use of a
         value is included in an extension that is adopted by a Khronos
         extension or specification, then that value's use may be permanently
         fixed as if originally reserved in a Khronos range.
         The SPIR Working Group strongly recommends:
         - Each value is used for only one purpose.
         - All values in a range should be used before allocating a new range.
         -->

    <!-- Reserved FP fast math mode bits -->
    <ids type="FPFastMathMode" start="0" end="15" vendor="Khronos" comment="Reserved FPFastMathMode bits, not available to vendors - see the SPIR-V Specification"/>
    <ids type="FPFastMathMode" start="16" end="17" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="FPFastMathMode" start="18" end="18" vendor="khronos" comment="Reserved FPFastMathMode bit, not available to vendors - see SPV_KHR_float_controls2"/>
    <ids type="FPFastMathMode" start="19" end="31" comment="Unreserved bits reservable for use by vendors"/>


    <!-- SECTION: SPIR-V Memory Operand Bit Reservations -->
    <!-- Reserve ranges of bits in the memory operands bitfield.

         Each vendor determines the use of values in their own ranges.
         Vendors are not required to disclose those uses.  If the use of a
         value is included in an extension that is adopted by a Khronos
         extension or specification, then that value's use may be permanently
         fixed as if originally reserved in a Khronos range.

         The SPIR Working Group strongly recommends:
         - Each value is used for only one purpose.
         - All values in a range should be used before allocating a new range.
         -->

    <!-- Reserved memory operand bits -->
    <ids type="MemoryOperand" start="0" end="15" vendor="Khronos" comment="Reserved MemoryOperand bits, not available to vendors - see the SPIR-V Specification"/>
    <ids type="MemoryOperand" start="16" end="18" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
    <ids type="MemoryOperand" start="19" end="22" vendor="Arm" comment="Contact kevin.petit@arm.com"/>
    <ids type="MemoryOperand" start="23" end="30" comment="Unreserved bits reservable for use by vendors"/>
    <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>

    <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
    <!-- Reserve ranges of bits in the image operands bitfield.

         Each vendor determines the use of values in their own ranges.
         Vendors are not required to disclose those uses.  If the use of a
         value is included in an extension that is adopted by a Khronos
         extension or specification, then that value's use may be permanently
         fixed as if originally reserved in a Khronos range.

         The SPIR Working Group strongly recommends:
         - Each value is used for only one purpose.
         - All values in a range should be used before allocating a new range.
         -->

    <!-- Reserved image operand bits -->
    <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
    <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
    <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
    <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>

</registry>
