<?xml version="1.0" encoding="UTF-8"?>
<registry>
    <!--
    SPDX-FileCopyrightText: 2015-2024 The Khronos Group Inc.
    SPDX-License-Identifier: MIT
    -->
    <!--
    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>
