Merge Android 14 QPR3 to AOSP main

Bug: 346855327
Merged-In: I588834f2ce375eae2efa57b2eea299489117e03f
Change-Id: Ia8fd95ace6a9129d234da8d2a4ba34c2833c1708
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..2390d8c
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,10 @@
+version: 2
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "monthly"
+    groups:
+      github-actions:
+        patterns:
+          - "*"
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
index d9c25fa..d7958ca 100644
--- a/.github/workflows/presubmit.yml
+++ b/.github/workflows/presubmit.yml
@@ -1,6 +1,9 @@
 name: Presubmit
 on: [push, pull_request]
 
+permissions:
+  contents: read
+
 jobs:
   build:
     name: Build ${{ matrix.os }}
@@ -9,7 +12,7 @@
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v4
       - name: Install Ubuntu packages
         if: matrix.os == 'ubuntu-latest'
         run: sudo apt install -y dos2unix
@@ -35,3 +38,86 @@
           ./bin/makeHeaders
       - name: Check generated headers
         run: git diff --exit-code
+
+  test_cmake_min_required:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.14.0
+      - name: CMake build
+        run: |
+          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja" -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --build build --target install
+
+  test_cmake_latest:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+      - name: CMake build
+        run: |
+          cmake -S . -B build/ -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
+          cmake --install build/ --prefix build/install
+
+  add_subdirectory:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Build spirv-headers with testing enabled
+        run: |
+          cmake -S . -B build/ -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=Debug -G "Ninja"
+          cmake --build build
+
+  find_package:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers
+        run: |
+          cmake -S . -B build/
+          cmake --install build/ --prefix build/install
+      - name: Check spirv-headers find_package support
+        run: |
+          cmake -S tests/find_package -B tests/find_package/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/find_package/build/
+
+  find_pkg_config:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers
+        run: |
+          cmake -S . -B build/ -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --install build/
+      - name: Check spirv-headers pkg_config support
+        run: |
+          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/pkg_config/build/
+
+  # https://github.com/KhronosGroup/SPIRV-Headers/issues/282
+  find_pkg_config_absolute:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: lukka/get-cmake@latest
+        with:
+          cmakeVersion: 3.15.0
+      - name: Install spirv-headers with CMAKE_INSTALL_INCLUDEDIR being absolute
+        run: |
+          cmake -S . -B build/ -D CMAKE_INSTALL_INCLUDEDIR=${GITHUB_WORKSPACE}/build/install/include -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/build/install/
+          cmake --install build/
+      - name: Check spirv-headers pkg_config support
+        run: |
+          cmake -S tests/pkg_config -B tests/pkg_config/build/ -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build/install
+          cmake --build tests/pkg_config/build/
diff --git a/BUILD.bazel b/BUILD.bazel
index c898ade..25634d9 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -82,6 +82,11 @@
 )
 
 filegroup(
+    name = "spirv_ext_inst_nonsemantic_vkspreflection_grammar_unified1",
+    srcs = ["include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json"],
+)
+
+filegroup(
     name = "spirv_ext_inst_nonsemantic_debugprintf_grammar_unified1",
     srcs = ["include/spirv/unified1/extinst.nonsemantic.debugprintf.grammar.json"],
 )
@@ -128,6 +133,7 @@
         "include/spirv/unified1/GLSL.std.450.h",
         "include/spirv/unified1/NonSemanticClspvReflection.h",
         "include/spirv/unified1/NonSemanticDebugPrintf.h",
+        "include/spirv/unified1/NonSemanticVkspReflection.h",
         "include/spirv/unified1/OpenCL.std.h",
     ],
     includes = ["include"],
diff --git a/BUILD.gn b/BUILD.gn
index be3f43b..34294e0 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (c) 2020 Google LLC
+# Copyright (c) 2020-2024 Google LLC
 #
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and/or associated documentation files (the "Materials"),
@@ -35,6 +35,7 @@
     "include/spirv/unified1/GLSL.std.450.h",
     "include/spirv/unified1/NonSemanticClspvReflection.h",
     "include/spirv/unified1/NonSemanticDebugPrintf.h",
+    "include/spirv/unified1/NonSemanticVkspReflection.h",
     "include/spirv/unified1/OpenCL.std.h",
     "include/spirv/unified1/spirv.h",
     "include/spirv/unified1/spirv.hpp",
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9cfba73..8cd4037 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2015-2016 The Khronos Group Inc.
+# 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
@@ -23,115 +23,43 @@
 # 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.
+cmake_minimum_required(VERSION 3.14)
+project(SPIRV-Headers LANGUAGES CXX VERSION 1.5.5)
 
-#
-# The SPIR-V headers from the SPIR-V Registry
-# https://www.khronos.org/registry/spir-v/
-#
-cmake_minimum_required(VERSION 3.0)
-project(SPIRV-Headers VERSION 1.5.5)
-
-# There are two ways to use this project.
-#
-# Using this source tree directly from a CMake-based project:
-#   1. Add an add_subdirectory directive to include this sub directory.
-#   2. Use ${SPIRV-Headers_SOURCE_DIR}/include} in a target_include_directories
-#      command.
-#
-# Installing the headers first, then using them with an implicit include
-# directory.  To install the headers:
-#   1. mkdir build ; cd build
-#   2. cmake ..
-#   3. cmake --build . --target install
-
-option(SPIRV_HEADERS_SKIP_EXAMPLES "Skip building examples"
-      ${SPIRV_HEADERS_SKIP_EXAMPLES})
-
-option(SPIRV_HEADERS_SKIP_INSTALL "Skip install"
-      ${SPIRV_HEADERS_SKIP_INSTALL})
-
-if(NOT ${SPIRV_HEADERS_SKIP_EXAMPLES})
-  set(SPIRV_HEADERS_ENABLE_EXAMPLES ON)
+if (CMAKE_VERSION VERSION_LESS "3.21")
+    # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html
+    string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL)
 endif()
 
-if(NOT ${SPIRV_HEADERS_SKIP_INSTALL})
-  set(SPIRV_HEADERS_ENABLE_INSTALL ON)
-  # legacy
-  add_custom_target(install-headers
-      COMMAND cmake -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv
-          $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/include/spirv)
-endif()
+add_library(SPIRV-Headers INTERFACE)
+add_library(SPIRV-Headers::SPIRV-Headers ALIAS SPIRV-Headers)
+target_include_directories(SPIRV-Headers INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
 
-if (SPIRV_HEADERS_ENABLE_EXAMPLES)
-  message(STATUS "Building SPIRV-Header examples")
-  add_subdirectory(example)
-endif()
+if (PROJECT_IS_TOP_LEVEL)
+    option(BUILD_TESTS "Build the tests")
+    if (BUILD_TESTS)
+        add_subdirectory(tests)
+    endif()
 
-include(GNUInstallDirs)
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} INTERFACE
-    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-)
-
-# Installation
-
-if (SPIRV_HEADERS_ENABLE_INSTALL)
-    message(STATUS "Installing SPIRV-Header")
-
-    set(config_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}")
-
-    set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
-
-    set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
-    set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
-    set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
-    set(namespace "${PROJECT_NAME}::")
-
+    include(GNUInstallDirs)
     include(CMakePackageConfigHelpers)
 
-    if (NOT CMAKE_VERSION VERSION_LESS 3.14)
-        set(arch_independent_str ARCH_INDEPENDENT)
+    install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+    set(cmake_install_dir "${CMAKE_INSTALL_DATADIR}/cmake/SPIRV-Headers")
+    set(version_config "${CMAKE_CURRENT_BINARY_DIR}/generated/SPIRV-HeadersConfigVersion.cmake")
+
+    write_basic_package_version_file("${version_config}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT)
+    install(FILES "${version_config}" DESTINATION "${cmake_install_dir}")
+
+    install(TARGETS SPIRV-Headers EXPORT "SPIRV-HeadersConfig" INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+    install(EXPORT "SPIRV-HeadersConfig" NAMESPACE "SPIRV-Headers::" DESTINATION "${cmake_install_dir}")
+
+    if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
+        set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
+    else()
+        set(SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
     endif()
-    write_basic_package_version_file(
-        "${version_config}"
-        COMPATIBILITY SameMajorVersion
-        ${arch_independent_str}
-    )
-
-    configure_package_config_file(
-        "cmake/Config.cmake.in"
-        "${project_config}"
-        INSTALL_DESTINATION "${config_install_dir}"
-    )
-
-    install(
-        TARGETS ${PROJECT_NAME}
-        EXPORT "${TARGETS_EXPORT_NAME}"
-        LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-        ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-        RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-        INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-    )
-
-    install(
-        DIRECTORY include/spirv
-        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-    )
-
-    install(
-        FILES "${project_config}" "${version_config}"
-        DESTINATION "${config_install_dir}"
-    )
-
-    install(
-        EXPORT "${TARGETS_EXPORT_NAME}"
-        NAMESPACE "${namespace}"
-        DESTINATION "${config_install_dir}"
-    )
-
-    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/SPIRV-Headers.pc.in ${CMAKE_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
-    install(
-        FILES "${CMAKE_BINARY_DIR}/SPIRV-Headers.pc"
-        DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig
-    )
+    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/SPIRV-Headers.pc.in ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc @ONLY)
+    install(FILES "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Headers.pc" DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
 endif()
diff --git a/LICENSE b/LICENSE
index 47974f8..a02ace1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,5 @@
-Copyright (c) 2015-2018 The Khronos Group Inc.
+Files: All files except for those called out below.
+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
@@ -23,3 +24,80 @@
 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.
+
+---
+
+Files: include/spirv/spir-v.xml
+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.
+
+---
+
+Files: tools/buildHeaders/jsoncpp/*
+The JsonCpp library's source code, including accompanying documentation,
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all
+jurisdictions which recognize such a disclaimer. In such jurisdictions,
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this
+software may choose to accept it either as 1) Public Domain, 2) under the
+conditions of the MIT License (see below), or 3) under the terms of dual
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+   http://en.wikipedia.org/wiki/MIT_License
+
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+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 Software.
+
+THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+
+---
diff --git a/README.md b/README.md
index 8c7039f..ed38828 100644
--- a/README.md
+++ b/README.md
@@ -198,7 +198,7 @@
 ## License
 <a name="license"></a>
 ```
-Copyright (c) 2015-2018 The Khronos Group Inc.
+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
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..9b51f0c
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,13 @@
+# Security Policy
+
+## Supported Versions
+
+Security updates are applied only to the latest release.
+
+## Reporting a Vulnerability
+
+If you have discovered a security vulnerability in this project, please report it privately. **Do not disclose it as a public issue.** This gives us time to work with you to fix the issue before public exposure, reducing the chance that the exploit will be used before a patch is released.
+
+Please disclose it at [security advisory](https://github.com/KhronosGroup/SPIRV-Headers/security/advisories/new).
+
+This project is maintained by a team of volunteers on a reasonable-effort basis. As such, please give us at least 90 days to work on a fix before public exposure.
diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in
deleted file mode 100644
index 38bbde7..0000000
--- a/cmake/Config.cmake.in
+++ /dev/null
@@ -1,4 +0,0 @@
-@PACKAGE_INIT@
-
-include("${CMAKE_CURRENT_LIST_DIR}/@[email protected]")
-check_required_components("@PROJECT_NAME@")
diff --git a/SPIRV-Headers.pc.in b/cmake/SPIRV-Headers.pc.in
similarity index 64%
rename from SPIRV-Headers.pc.in
rename to cmake/SPIRV-Headers.pc.in
index 345f5f8..843b0a7 100644
--- a/SPIRV-Headers.pc.in
+++ b/cmake/SPIRV-Headers.pc.in
@@ -1,5 +1,4 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+includedir=@SPIRV_HEADERS_PKGCONFIG_INCLUDE_DIR@
 
 Name: SPIRV-Headers
 Description: Header files from the SPIR-V registry
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
deleted file mode 100644
index 8b22f60..0000000
--- a/example/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-add_library(SPIRV-Headers-example
-	${CMAKE_CURRENT_SOURCE_DIR}/example.cpp)
-target_include_directories(SPIRV-Headers-example
-	PRIVATE ${SPIRV-Headers_SOURCE_DIR}/include)
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 7acaed3..4a2de83 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <registry>
     <!--
-    Copyright (c) 2015 The Khronos Group Inc.
+    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
@@ -62,7 +62,7 @@
         <id value="9"   vendor="Qualcomm"   comment="Contact [email protected]"/>
         <id value="10"  vendor="AMD"        comment="Contact Daniel Rakos, [email protected]"/>
         <id value="11"  vendor="Intel"      comment="Contact Alexey, [email protected]"/>
-        <id value="12"  vendor="Imagination" comment="Contact James Jones"/>
+        <id value="12"  vendor="Imagination" comment="Contact Stephen Clarke, [email protected]"/>
         <id value="13"  vendor="Google" tool="Shaderc over Glslang" comment="Contact David Neto, [email protected]"/>
         <id value="14"  vendor="Google" tool="spiregg" comment="Contact Lei Zhang, [email protected]"/>
         <id value="15"  vendor="Google" tool="rspirv" comment="Contact Lei Zhang, [email protected]"/>
@@ -82,10 +82,17 @@
         <id value="29"  vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, [email protected]"/>
         <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, [email protected]"/>
-        <id value="32"  vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
+        <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 [email protected], Repo https://github.com/rayanht/SPIRVSmith"/>
-        <unused start="35" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+        <id value="35"  vendor="Saarland University" tool="Shady" comment="Contact Hugo Devillers [email protected], Repo https://github.com/Hugobros3/shady"/>
+        <id value="36"  vendor="Taichi Graphics" tool="Taichi" comment="Contact Rendong Liang [email protected], 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, [email protected], 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="NVIDIA" tool="Slang Compiler" comment="Contact Theresa Foley, [email protected], https://github.com/shader-slang/slang/"/>
+        <id value="41"  vendor="Zig Software Foundation" tool="Zig Compiler" comment="Contact Robin Voetter, https://github.com/Snektron"/>
+        <unused start="42" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
     </ids>
 
     <!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -138,13 +145,17 @@
     <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact [email protected]"/>
     <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
     <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact [email protected]"/>
+    <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 [email protected]"/>
+    <ids type="opcode" start="6592" end="6655" vendor="Saarland University" comment="Contact [email protected]"/>
+    <ids type="opcode" start="6656" end="6719" vendor="Meta" comment="Contact [email protected]"/>
     <!-- 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="6464" end="65535" comment="Opcode range reservable for future use by vendors"/>
+    <ids type="opcode" start="6656" end="65535" comment="Opcode range reservable for future use by vendors"/>
     <!-- End reservations of opcodes -->
 
 
@@ -168,13 +179,16 @@
     <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact [email protected]"/>
     <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact [email protected]"/>
     <ids type="enumerant" start="6464" end="6527" vendor="Mikkosoft Productions" comment="Contact Mikko Rasa, [email protected]"/>
+    <ids type="enumerant" start="6528" end="6591" vendor="Codeplay" comment="Contact [email protected]"/>
+    <ids type="enumerant" start="6592" end="6655" vendor="Saarland University" comment="Contact [email protected]"/>
+    <ids type="enumerant" start="6656" end="6719" vendor="Meta" comment="Contact [email protected]"/>
     <!-- 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="6528" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+    <ids type="enumerant" start="6656" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
     <!-- End reservations of enumerants -->
 
 
@@ -235,7 +249,8 @@
     <!-- 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 [email protected]"/>
-    <ids type="FPFastMathMode" start="18" end="31" comment="Unreserved bits reservable for use by vendors"/>
+    <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 -->
diff --git a/include/spirv/unified1/AMD_gcn_shader.h b/include/spirv/unified1/AMD_gcn_shader.h
index 80165ae..e626a7a 100644
--- a/include/spirv/unified1/AMD_gcn_shader.h
+++ b/include/spirv/unified1/AMD_gcn_shader.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
diff --git a/include/spirv/unified1/AMD_shader_ballot.h b/include/spirv/unified1/AMD_shader_ballot.h
index 8a8bb6e..563c0b6 100644
--- a/include/spirv/unified1/AMD_shader_ballot.h
+++ b/include/spirv/unified1/AMD_shader_ballot.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
diff --git a/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h b/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
index 12b6480..e663330 100644
--- a/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
+++ b/include/spirv/unified1/AMD_shader_explicit_vertex_parameter.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
diff --git a/include/spirv/unified1/AMD_shader_trinary_minmax.h b/include/spirv/unified1/AMD_shader_trinary_minmax.h
index 1b14997..dd51c5f 100644
--- a/include/spirv/unified1/AMD_shader_trinary_minmax.h
+++ b/include/spirv/unified1/AMD_shader_trinary_minmax.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
diff --git a/include/spirv/unified1/DebugInfo.h b/include/spirv/unified1/DebugInfo.h
index 4657556..a3c0af4 100644
--- a/include/spirv/unified1/DebugInfo.h
+++ b/include/spirv/unified1/DebugInfo.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2017 The Khronos Group Inc.
+// Copyright (c) 2017-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"),
diff --git a/include/spirv/unified1/GLSL.std.450.h b/include/spirv/unified1/GLSL.std.450.h
index 54cc00e..0594f90 100644
--- a/include/spirv/unified1/GLSL.std.450.h
+++ b/include/spirv/unified1/GLSL.std.450.h
@@ -1,5 +1,5 @@
 /*
-** Copyright (c) 2014-2016 The Khronos Group Inc.
+** Copyright (c) 2014-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"),
diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h
index 7994fd5..b6c27fa 100644
--- a/include/spirv/unified1/NonSemanticClspvReflection.h
+++ b/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
@@ -33,7 +33,7 @@
 #endif
 
 enum {
-    NonSemanticClspvReflectionRevision = 3,
+    NonSemanticClspvReflectionRevision = 6,
     NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
 };
 
@@ -71,10 +71,25 @@
     NonSemanticClspvReflectionImageArgumentInfoChannelDataTypePushConstant = 31,
     NonSemanticClspvReflectionImageArgumentInfoChannelOrderUniform = 32,
     NonSemanticClspvReflectionImageArgumentInfoChannelDataTypeUniform = 33,
+    NonSemanticClspvReflectionArgumentStorageTexelBuffer = 34,
+    NonSemanticClspvReflectionArgumentUniformTexelBuffer = 35,
+    NonSemanticClspvReflectionConstantDataPointerPushConstant = 36,
+    NonSemanticClspvReflectionProgramScopeVariablePointerPushConstant = 37,
+    NonSemanticClspvReflectionPrintfInfo = 38,
+    NonSemanticClspvReflectionPrintfBufferStorageBuffer = 39,
+    NonSemanticClspvReflectionPrintfBufferPointerPushConstant = 40,
+    NonSemanticClspvReflectionNormalizedSamplerMaskPushConstant = 41,
     NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
 };
 
 
+enum NonSemanticClspvReflectionKernelPropertyFlags {
+    NonSemanticClspvReflectionNone = 0x0,
+    NonSemanticClspvReflectionMayUsePrintf = 0x1,
+    NonSemanticClspvReflectionKernelPropertyFlagsMax = 0x7fffffff
+};
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/example/example.cpp b/include/spirv/unified1/NonSemanticDebugBreak.h
similarity index 71%
copy from example/example.cpp
copy to include/spirv/unified1/NonSemanticDebugBreak.h
index d79b62f..8604fe7 100644
--- a/example/example.cpp
+++ b/include/spirv/unified1/NonSemanticDebugBreak.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 The Khronos Group Inc.
+// Copyright (c) 2020-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
@@ -23,15 +23,28 @@
 // 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.
+// 
 
-#include <spirv/unified1/GLSL.std.450.h>
-#include <spirv/unified1/OpenCL.std.h>
-#include <spirv/unified1/spirv.hpp>
+#ifndef SPIRV_UNIFIED1_NonSemanticDebugBreak_H_
+#define SPIRV_UNIFIED1_NonSemanticDebugBreak_H_
 
-namespace {
+#ifdef __cplusplus
+extern "C" {
+#endif
 
-const GLSLstd450 kSin = GLSLstd450Sin;
-const OpenCLLIB::Entrypoints kNative_cos = OpenCLLIB::Native_cos;
-const spv::Op kNop = spv::OpNop;
+enum {
+    NonSemanticDebugBreakRevision = 1,
+    NonSemanticDebugBreakRevision_BitWidthPadding = 0x7fffffff
+};
 
-}  // anonymous namespace
+enum NonSemanticDebugBreakInstructions {
+    NonSemanticDebugBreakDebugBreak = 1,
+    NonSemanticDebugBreakInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticDebugBreak_H_
diff --git a/include/spirv/unified1/NonSemanticDebugPrintf.h b/include/spirv/unified1/NonSemanticDebugPrintf.h
index 83796d7..bc24683 100644
--- a/include/spirv/unified1/NonSemanticDebugPrintf.h
+++ b/include/spirv/unified1/NonSemanticDebugPrintf.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 The Khronos Group Inc.
+// Copyright (c) 2020-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
diff --git a/include/spirv/unified1/NonSemanticShaderDebugInfo100.h b/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
index c52f32f..b276b56 100644
--- a/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
+++ b/include/spirv/unified1/NonSemanticShaderDebugInfo100.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2018 The Khronos Group Inc.
+// Copyright (c) 2018-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"),
diff --git a/include/spirv/unified1/NonSemanticVkspReflection.h b/include/spirv/unified1/NonSemanticVkspReflection.h
new file mode 100644
index 0000000..0ef478a
--- /dev/null
+++ b/include/spirv/unified1/NonSemanticVkspReflection.h
@@ -0,0 +1,57 @@
+// Copyright (c) 2020-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.
+// 
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+//    https://www.khronos.org/registry/
+// 
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+// 
+
+#ifndef SPIRV_UNIFIED1_NonSemanticVkspReflection_H_
+#define SPIRV_UNIFIED1_NonSemanticVkspReflection_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum {
+    NonSemanticVkspReflectionRevision = 1,
+    NonSemanticVkspReflectionRevision_BitWidthPadding = 0x7fffffff
+};
+
+enum NonSemanticVkspReflectionInstructions {
+    NonSemanticVkspReflectionConfiguration = 1,
+    NonSemanticVkspReflectionStartCounter = 2,
+    NonSemanticVkspReflectionStopCounter = 3,
+    NonSemanticVkspReflectionPushConstants = 4,
+    NonSemanticVkspReflectionSpecializationMapEntry = 5,
+    NonSemanticVkspReflectionDescriptorSetBuffer = 6,
+    NonSemanticVkspReflectionDescriptorSetImage = 7,
+    NonSemanticVkspReflectionDescriptorSetSampler = 8,
+    NonSemanticVkspReflectionInstructionsMax = 0x7fffffff
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SPIRV_UNIFIED1_NonSemanticVkspReflection_H_
diff --git a/include/spirv/unified1/OpenCL.std.h b/include/spirv/unified1/OpenCL.std.h
index 2745e30..ed74f20 100644
--- a/include/spirv/unified1/OpenCL.std.h
+++ b/include/spirv/unified1/OpenCL.std.h
@@ -1,5 +1,5 @@
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** 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"),
diff --git a/include/spirv/unified1/OpenCLDebugInfo100.h b/include/spirv/unified1/OpenCLDebugInfo100.h
index e3847c9..ffbd16f 100644
--- a/include/spirv/unified1/OpenCLDebugInfo100.h
+++ b/include/spirv/unified1/OpenCLDebugInfo100.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2018 The Khronos Group Inc.
+// Copyright (c) 2018-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"),
diff --git a/include/spirv/unified1/extinst.debuginfo.grammar.json b/include/spirv/unified1/extinst.debuginfo.grammar.json
index 7d6e8e5..918a9e5 100644
--- a/include/spirv/unified1/extinst.debuginfo.grammar.json
+++ b/include/spirv/unified1/extinst.debuginfo.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2017 The Khronos Group Inc.",
+    "Copyright (c) 2017-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\"),",
diff --git a/include/spirv/unified1/extinst.glsl.std.450.grammar.json b/include/spirv/unified1/extinst.glsl.std.450.grammar.json
index 3d9f39e..ac8fc6d 100644
--- a/include/spirv/unified1/extinst.glsl.std.450.grammar.json
+++ b/include/spirv/unified1/extinst.glsl.std.450.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2014-2016 The Khronos Group Inc.",
+    "Copyright (c) 2014-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\"),",
diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
index c5502f9..cfccc80 100644
--- a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
+++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -1,12 +1,15 @@
 {
-  "revision" : 3,
+  "revision" : 6,
   "instructions" : [
     {
       "opname" : "Kernel",
       "opcode" : 1,
       "operands" : [
         { "kind" : "IdRef", "name" : "Kernel" },
-        { "kind" : "IdRef", "name" : "Name" }
+        { "kind" : "IdRef", "name" : "Name" },
+        { "kind" : "IdRef", "name" : "NumArguments", "quantifier" : "?" },
+        { "kind" : "IdRef", "name" : "Flags", "quantifier" : "?"  },
+        { "kind" : "IdRef", "name" : "Attributes", "quantifier" : "?"  }
       ]
     },
     {
@@ -325,6 +328,99 @@
         { "kind" : "IdRef", "name" : "Offset" },
         { "kind" : "IdRef", "name" : "Size" }
       ]
+    },
+    {
+      "opname" : "ArgumentStorageTexelBuffer",
+      "opcode" : 34,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Decl" },
+        { "kind" : "IdRef", "name" : "Ordinal" },
+        { "kind" : "IdRef", "name" : "DescriptorSet" },
+        { "kind" : "IdRef", "name" : "Binding" },
+        { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+      ]
+    },
+    {
+      "opname" : "ArgumentUniformTexelBuffer",
+      "opcode" : 35,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Decl" },
+        { "kind" : "IdRef", "name" : "Ordinal" },
+        { "kind" : "IdRef", "name" : "DescriptorSet" },
+        { "kind" : "IdRef", "name" : "Binding" },
+        { "kind" : "IdRef", "name" : "ArgInfo", "quantifier" : "?" }
+      ]
+    },
+    {
+      "opname" : "ConstantDataPointerPushConstant",
+      "opcode" : 36,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Offset"},
+        { "kind" : "IdRef", "name" : "Size"},
+        { "kind" : "IdRef", "name" : "Data" }
+      ]
+    },
+    {
+      "opname" : "ProgramScopeVariablePointerPushConstant",
+      "opcode" : 37,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "Offset"},
+        { "kind" : "IdRef", "name" : "Size"},
+        { "kind" : "IdRef", "name" : "Data" }
+      ]
+    },
+    {
+      "opname" : "PrintfInfo",
+      "opcode" : 38,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "PrintfID" },
+        { "kind" : "IdRef", "name" : "FormatString" },
+        { "kind" : "IdRef", "quantifier" : "*", "name" : "ArgumentSizes"}
+      ]
+    },
+    {
+      "opname" : "PrintfBufferStorageBuffer",
+      "opcode" : 39,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "DescriptorSet" },
+        { "kind" : "IdRef", "name" : "Binding" },
+        { "kind" : "IdRef", "name" : "BufferSize"}
+      ]
+    },
+    {
+    "opname" : "PrintfBufferPointerPushConstant",
+    "opcode" : 40,
+    "operands" : [
+      { "kind" : "IdRef", "name" : "Offset" },
+      { "kind" : "IdRef", "name" : "Size"},
+      { "kind" : "IdRef", "name" : "BufferSize"}
+      ]
+    },
+    {
+    "opname" : "NormalizedSamplerMaskPushConstant",
+    "opcode" : 41,
+    "operands" : [
+      { "kind" : "IdRef", "name" : "Kernel" },
+      { "kind" : "IdRef", "name" : "Ordinal" },
+      { "kind" : "IdRef", "name" : "Offset" },
+      { "kind" : "IdRef", "name" : "Size" }
+      ]
+    }
+  ],
+  "operand_kinds" : [
+    {
+      "category" : "BitEnum",
+      "kind" : "KernelPropertyFlags",
+      "enumerants" : [
+        {
+          "enumerant" : "None",
+          "value" : "0x0"
+        },
+        {
+          "enumerant" : "MayUsePrintf",
+          "value" : "0x1"
+        }
+      ]
     }
   ]
 }
diff --git a/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json b/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json
new file mode 100644
index 0000000..ae28883
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.debugbreak.grammar.json
@@ -0,0 +1,9 @@
+{
+  "revision" : 1,
+  "instructions" : [
+    {
+      "opname" : "DebugBreak",
+      "opcode" : 1
+    }
+  ]
+}
diff --git a/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
index f3621b0..1eb2859 100644
--- a/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
+++ b/include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2018 The Khronos Group Inc.",
+    "Copyright (c) 2018-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\"),",
diff --git a/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json
new file mode 100644
index 0000000..bee1bea
--- /dev/null
+++ b/include/spirv/unified1/extinst.nonsemantic.vkspreflection.grammar.json
@@ -0,0 +1,135 @@
+{
+  "revision" : 1,
+  "instructions" : [
+    {
+      "opname" : "Configuration",
+      "opcode" : 1,
+      "operands" : [
+        {"kind" : "LiteralString", "name" : "enabledExtensionNames" },
+        {"kind" : "LiteralInteger", "name" : "specializationInfoDataSize" },
+        {"kind" : "LiteralString", "name" : "specializationInfoData" },
+        {"kind" : "LiteralString", "name" : "shaderName" },
+        {"kind" : "LiteralString", "name" : "EntryPoint" },
+        {"kind" : "LiteralInteger", "name" : "groupCountX" },
+        {"kind" : "LiteralInteger", "name" : "groupCountY" },
+        {"kind" : "LiteralInteger", "name" : "groupCountZ" }
+      ]
+    },
+    {
+      "opname" : "StartCounter",
+      "opcode" : 2,
+      "operands" : [
+        {"kind" : "LiteralString", "name" : "name" }
+      ]
+    },
+    {
+      "opname" : "StopCounter",
+      "opcode" : 3,
+      "operands" : [
+        {"kind" : "IdRef", "name" : "counter" }
+      ]
+    },
+    {
+      "opname" : "PushConstants",
+      "opcode" : 4,
+      "operands" : [
+        { "kind" : "LiteralInteger", "name" : "offset" },
+        { "kind" : "LiteralInteger", "name" : "size" },
+        { "kind" : "LiteralString", "name" : "pValues" },
+        { "kind" : "LiteralInteger", "name" : "stageFlags" }
+      ]
+    },
+    {
+      "opname" : "SpecializationMapEntry",
+      "opcode" : 5,
+      "operands" : [
+        {"kind" : "LiteralInteger", "name" : "constantID" },
+        {"kind" : "LiteralInteger", "name" : "offset" },
+        {"kind" : "LiteralInteger", "name" : "size" }
+      ]
+    },
+    {
+      "opname" : "DescriptorSetBuffer",
+      "opcode" : 6,
+      "operands" : [
+        { "kind" : "LiteralInteger", "name" : "ds" },
+        { "kind" : "LiteralInteger", "name" : "binding" },
+        { "kind" : "LiteralInteger", "name" : "type" },
+        { "kind" : "LiteralInteger", "name" : "flags" },
+        { "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount" },
+        { "kind" : "LiteralInteger", "name" : "sharingMode" },
+        { "kind" : "LiteralInteger", "name" : "size" },
+        { "kind" : "LiteralInteger", "name" : "usage" },
+        { "kind" : "LiteralInteger", "name" : "range" },
+        { "kind" : "LiteralInteger", "name" : "offset" },
+        { "kind" : "LiteralInteger", "name" : "memorySize" },
+        { "kind" : "LiteralInteger", "name" : "memoryType" },
+        { "kind" : "LiteralInteger", "name" : "bindOffset" }
+      ]
+    },
+    {
+      "opname" : "DescriptorSetImage",
+      "opcode" : 7,
+      "operands" : [
+        { "kind" : "LiteralInteger", "name" : "ds" },
+        { "kind" : "LiteralInteger", "name" : "binding" },
+        { "kind" : "LiteralInteger", "name" : "type" },
+        { "kind" : "LiteralInteger", "name" : "imageLayout"},
+        { "kind" : "LiteralInteger", "name" : "imageFlags"},
+        { "kind" : "LiteralInteger", "name" : "imageType"},
+        { "kind" : "LiteralInteger", "name" : "imageformat"},
+        { "kind" : "LiteralInteger", "name" : "width"},
+        { "kind" : "LiteralInteger", "name" : "height"},
+        { "kind" : "LiteralInteger", "name" : "depth"},
+        { "kind" : "LiteralInteger", "name" : "mipLevels"},
+        { "kind" : "LiteralInteger", "name" : "arrayLayers"},
+        { "kind" : "LiteralInteger", "name" : "samples"},
+        { "kind" : "LiteralInteger", "name" : "tiling"},
+        { "kind" : "LiteralInteger", "name" : "usage"},
+        { "kind" : "LiteralInteger", "name" : "sharingMode"},
+        { "kind" : "LiteralInteger", "name" : "queueFamilyIndexCount"},
+        { "kind" : "LiteralInteger", "name" : "initialLayout"},
+        { "kind" : "LiteralInteger", "name" : "aspectMask"},
+        { "kind" : "LiteralInteger", "name" : "baseMipLevel"},
+        { "kind" : "LiteralInteger", "name" : "levelCount"},
+        { "kind" : "LiteralInteger", "name" : "baseArrayLayer"},
+        { "kind" : "LiteralInteger", "name" : "layerCount"},
+        { "kind" : "LiteralInteger", "name" : "viewFlags"},
+        { "kind" : "LiteralInteger", "name" : "viewType"},
+        { "kind" : "LiteralInteger", "name" : "viewFormat"},
+        { "kind" : "LiteralInteger", "name" : "component_a"},
+        { "kind" : "LiteralInteger", "name" : "component_b"},
+        { "kind" : "LiteralInteger", "name" : "component_g"},
+        { "kind" : "LiteralInteger", "name" : "component_r"},
+        { "kind" : "LiteralInteger", "name" : "memorySize" },
+        { "kind" : "LiteralInteger", "name" : "memoryType" },
+        { "kind" : "LiteralInteger", "name" : "bindOffset"}
+      ]
+    },
+    {
+      "opname" : "DescriptorSetSampler",
+      "opcode" : 8,
+      "operands" : [
+        { "kind" : "LiteralInteger", "name" : "ds" },
+        { "kind" : "LiteralInteger", "name" : "binding" },
+        { "kind" : "LiteralInteger", "name" : "type" },
+        { "kind" : "LiteralInteger", "name" : "flags"},
+        { "kind" : "LiteralInteger", "name" : "magFilter"},
+        { "kind" : "LiteralInteger", "name" : "minFilter"},
+        { "kind" : "LiteralInteger", "name" : "mipmapMode"},
+        { "kind" : "LiteralInteger", "name" : "addressModeU"},
+        { "kind" : "LiteralInteger", "name" : "addressModeV"},
+        { "kind" : "LiteralInteger", "name" : "addressModeW"},
+        { "kind" : "LiteralFloat", "name" : "mipLodBias"},
+        { "kind" : "LiteralInteger", "name" : "anisotropyEnable"},
+        { "kind" : "LiteralFloat", "name" : "maxAnisotropy"},
+        { "kind" : "LiteralInteger", "name" : "compareEnable"},
+        { "kind" : "LiteralInteger", "name" : "compareOp"},
+        { "kind" : "LiteralFloat", "name" : "minLod"},
+        { "kind" : "LiteralFloat", "name" : "maxLod"},
+        { "kind" : "LiteralInteger", "name" : "borderColor"},
+        { "kind" : "LiteralInteger", "name" : "unnormalizedCoordinates"}
+      ]
+    }
+  ]
+}
diff --git a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
index 699fe40..53b001c 100644
--- a/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
+++ b/include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2018 The Khronos Group Inc.",
+    "Copyright (c) 2018-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\"),",
diff --git a/include/spirv/unified1/extinst.opencl.std.100.grammar.json b/include/spirv/unified1/extinst.opencl.std.100.grammar.json
index 4fe4506..21b7876 100644
--- a/include/spirv/unified1/extinst.opencl.std.100.grammar.json
+++ b/include/spirv/unified1/extinst.opencl.std.100.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2014-2016 The Khronos Group Inc.",
+    "Copyright (c) 2014-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\"),",
diff --git a/include/spirv/unified1/spirv.bf b/include/spirv/unified1/spirv.bf
index fb9ec89..4231b33 100644
--- a/include/spirv/unified1/spirv.bf
+++ b/include/spirv/unified1/spirv.bf
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -66,6 +66,11 @@
             HLSL = 5,
             CPP_for_OpenCL = 6,
             SYCL = 7,
+            HERO_C = 8,
+            NZSL = 9,
+            WGSL = 10,
+            Slang = 11,
+            Zig = 12,
         }
 
         [AllowDuplicates, CRepr] public enum ExecutionModel
@@ -153,6 +158,9 @@
             SubgroupsPerWorkgroupId = 37,
             LocalSizeId = 38,
             LocalSizeHintId = 39,
+            NonCoherentColorAttachmentReadEXT = 4169,
+            NonCoherentDepthAttachmentReadEXT = 4170,
+            NonCoherentStencilAttachmentReadEXT = 4171,
             SubgroupUniformControlFlowKHR = 4421,
             PostDepthCoverage = 4446,
             DenormPreserve = 4459,
@@ -162,12 +170,19 @@
             RoundingModeRTZ = 4463,
             EarlyAndLateFragmentTestsAMD = 5017,
             StencilRefReplacingEXT = 5027,
+            CoalescingAMDX = 5069,
+            MaxNodeRecursionAMDX = 5071,
+            StaticNumWorkgroupsAMDX = 5072,
+            ShaderIndexAMDX = 5073,
+            MaxNumWorkgroupsAMDX = 5077,
             StencilRefUnchangedFrontAMD = 5079,
             StencilRefGreaterFrontAMD = 5080,
             StencilRefLessFrontAMD = 5081,
             StencilRefUnchangedBackAMD = 5082,
             StencilRefGreaterBackAMD = 5083,
             StencilRefLessBackAMD = 5084,
+            QuadDerivativesKHR = 5088,
+            RequireFullQuadsKHR = 5089,
             OutputLinesEXT = 5269,
             OutputLinesNV = 5269,
             OutputPrimitivesEXT = 5270,
@@ -192,6 +207,10 @@
             NoGlobalOffsetINTEL = 5895,
             NumSIMDWorkitemsINTEL = 5896,
             SchedulerTargetFmaxMhzINTEL = 5903,
+            MaximallyReconvergesKHR = 6023,
+            FPFastMathDefault = 6028,
+            StreamingInterfaceINTEL = 6154,
+            RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
         }
 
@@ -210,6 +229,9 @@
             AtomicCounter = 10,
             Image = 11,
             StorageBuffer = 12,
+            TileImageEXT = 4172,
+            NodePayloadAMDX = 5068,
+            NodeOutputPayloadAMDX = 5076,
             CallableDataKHR = 5328,
             CallableDataNV = 5328,
             IncomingCallableDataKHR = 5329,
@@ -224,6 +246,7 @@
             ShaderRecordBufferNV = 5343,
             PhysicalStorageBuffer = 5349,
             PhysicalStorageBufferEXT = 5349,
+            HitObjectAttributeNV = 5385,
             TaskPayloadWorkgroupEXT = 5402,
             CodeSectionINTEL = 5605,
             DeviceOnlyINTEL = 5936,
@@ -239,6 +262,7 @@
             Rect = 4,
             Buffer = 5,
             SubpassData = 6,
+            TileImageDataEXT = 4173,
         }
 
         [AllowDuplicates, CRepr] public enum SamplerAddressingMode
@@ -345,6 +369,8 @@
             Float = 14,
             UnormInt24 = 15,
             UnormInt101010_2 = 16,
+            UnsignedIntRaw10EXT = 19,
+            UnsignedIntRaw12EXT = 20,
         }
 
         [AllowDuplicates, CRepr] public enum ImageOperandsShift
@@ -403,8 +429,11 @@
             NSZ = 2,
             AllowRecip = 3,
             Fast = 4,
+            AllowContract = 16,
             AllowContractFastINTEL = 16,
+            AllowReassoc = 17,
             AllowReassocINTEL = 17,
+            AllowTransform = 18,
         }
 
         [AllowDuplicates, CRepr] public enum FPFastMathModeMask
@@ -415,8 +444,11 @@
             NSZ = 0x00000004,
             AllowRecip = 0x00000008,
             Fast = 0x00000010,
+            AllowContract = 0x00010000,
             AllowContractFastINTEL = 0x00010000,
+            AllowReassoc = 0x00020000,
             AllowReassocINTEL = 0x00020000,
+            AllowTransform = 0x00040000,
         }
 
         [AllowDuplicates, CRepr] public enum FPRoundingMode
@@ -451,6 +483,7 @@
             NoCapture = 5,
             NoWrite = 6,
             NoReadWrite = 7,
+            RuntimeAlignedINTEL = 5940,
         }
 
         [AllowDuplicates, CRepr] public enum Decoration
@@ -504,7 +537,13 @@
             MaxByteOffsetId = 47,
             NoSignedWrap = 4469,
             NoUnsignedWrap = 4470,
+            WeightTextureQCOM = 4487,
+            BlockMatchTextureQCOM = 4488,
             ExplicitInterpAMD = 4999,
+            NodeSharesPayloadLimitsWithAMDX = 5019,
+            NodeMaxPayloadsAMDX = 5020,
+            TrackFinishWritingAMDX = 5078,
+            PayloadNodeNameAMDX = 5091,
             OverrideCoverageNV = 5248,
             PassthroughNV = 5250,
             ViewportRelativeNV = 5252,
@@ -521,6 +560,7 @@
             RestrictPointerEXT = 5355,
             AliasedPointer = 5356,
             AliasedPointerEXT = 5356,
+            HitObjectShaderRecordBufferNV = 5386,
             BindlessSamplerNV = 5398,
             BindlessImageNV = 5399,
             BoundSamplerNV = 5400,
@@ -553,20 +593,45 @@
             MergeINTEL = 5834,
             BankBitsINTEL = 5835,
             ForcePow2DepthINTEL = 5836,
+            StridesizeINTEL = 5883,
+            WordsizeINTEL = 5884,
+            TrueDualPortINTEL = 5885,
             BurstCoalesceINTEL = 5899,
             CacheSizeINTEL = 5900,
             DontStaticallyCoalesceINTEL = 5901,
             PrefetchINTEL = 5902,
             StallEnableINTEL = 5905,
             FuseLoopsInFunctionINTEL = 5907,
+            MathOpDSPModeINTEL = 5909,
             AliasScopeINTEL = 5914,
             NoAliasINTEL = 5915,
+            InitiationIntervalINTEL = 5917,
+            MaxConcurrencyINTEL = 5918,
+            PipelineEnableINTEL = 5919,
             BufferLocationINTEL = 5921,
             IOPipeStorageINTEL = 5944,
             FunctionFloatingPointModeINTEL = 6080,
             SingleElementVectorINTEL = 6085,
             VectorComputeCallableFunctionINTEL = 6087,
             MediaBlockIOINTEL = 6140,
+            StallFreeINTEL = 6151,
+            FPMaxErrorDecorationINTEL = 6170,
+            LatencyControlLabelINTEL = 6172,
+            LatencyControlConstraintINTEL = 6173,
+            ConduitKernelArgumentINTEL = 6175,
+            RegisterMapKernelArgumentINTEL = 6176,
+            MMHostInterfaceAddressWidthINTEL = 6177,
+            MMHostInterfaceDataWidthINTEL = 6178,
+            MMHostInterfaceLatencyINTEL = 6179,
+            MMHostInterfaceReadWriteModeINTEL = 6180,
+            MMHostInterfaceMaxBurstINTEL = 6181,
+            MMHostInterfaceWaitRequestINTEL = 6182,
+            StableKernelArgumentINTEL = 6183,
+            HostAccessINTEL = 6188,
+            InitModeINTEL = 6190,
+            ImplementInRegisterMapINTEL = 6191,
+            CacheControlLoadINTEL = 6442,
+            CacheControlStoreINTEL = 6443,
         }
 
         [AllowDuplicates, CRepr] public enum BuiltIn
@@ -612,6 +677,11 @@
             SubgroupLocalInvocationId = 41,
             VertexIndex = 42,
             InstanceIndex = 43,
+            CoreIDARM = 4160,
+            CoreCountARM = 4161,
+            CoreMaxIDARM = 4162,
+            WarpIDARM = 4163,
+            WarpMaxIDARM = 4164,
             SubgroupEqMask = 4416,
             SubgroupEqMaskKHR = 4416,
             SubgroupGeMask = 4417,
@@ -637,6 +707,8 @@
             BaryCoordSmoothSampleAMD = 4997,
             BaryCoordPullModelAMD = 4998,
             FragStencilRefEXT = 5014,
+            CoalescedInputCountAMDX = 5021,
+            ShaderIndexAMDX = 5073,
             ViewportMaskNV = 5253,
             SecondaryPositionNV = 5257,
             SecondaryViewportMaskNV = 5258,
@@ -689,6 +761,9 @@
             HitKindKHR = 5333,
             HitKindNV = 5333,
             CurrentRayTimeNV = 5334,
+            HitTriangleVertexPositionsKHR = 5335,
+            HitMicroTriangleVertexPositionsNV = 5337,
+            HitMicroTriangleVertexBarycentricsNV = 5344,
             IncomingRayFlagsKHR = 5351,
             IncomingRayFlagsNV = 5351,
             RayGeometryIndexKHR = 5352,
@@ -696,6 +771,8 @@
             SMCountNV = 5375,
             WarpIDNV = 5376,
             SMIDNV = 5377,
+            HitKindFrontFacingMicroTriangleNV = 5405,
+            HitKindBackFacingMicroTriangleNV = 5406,
             CullMaskKHR = 6021,
         }
 
@@ -731,6 +808,8 @@
             MaxInterleavingINTEL = 21,
             SpeculatedIterationsINTEL = 22,
             NoFusionINTEL = 23,
+            LoopCountINTEL = 24,
+            MaxReinvocationDelayINTEL = 25,
         }
 
         [AllowDuplicates, CRepr] public enum LoopControlMask
@@ -753,6 +832,8 @@
             MaxInterleavingINTEL = 0x00200000,
             SpeculatedIterationsINTEL = 0x00400000,
             NoFusionINTEL = 0x00800000,
+            LoopCountINTEL = 0x01000000,
+            MaxReinvocationDelayINTEL = 0x02000000,
         }
 
         [AllowDuplicates, CRepr] public enum FunctionControlShift
@@ -961,6 +1042,10 @@
             ShaderLayer = 69,
             ShaderViewportIndex = 70,
             UniformDecoration = 71,
+            CoreBuiltinsARM = 4165,
+            TileImageColorReadAccessEXT = 4166,
+            TileImageDepthReadAccessEXT = 4167,
+            TileImageStencilReadAccessEXT = 4168,
             FragmentShadingRateKHR = 4422,
             SubgroupBallotKHR = 4423,
             DrawParameters = 4427,
@@ -992,6 +1077,9 @@
             RayQueryKHR = 4472,
             RayTraversalPrimitiveCullingKHR = 4478,
             RayTracingKHR = 4479,
+            TextureSampleWeightedQCOM = 4484,
+            TextureBoxFilterQCOM = 4485,
+            TextureBlockMatchQCOM = 4486,
             Float16ImageAMD = 5008,
             ImageGatherBiasLodAMD = 5009,
             FragmentMaskAMD = 5010,
@@ -999,6 +1087,8 @@
             ImageReadWriteLodAMD = 5015,
             Int64ImageEXT = 5016,
             ShaderClockKHR = 5055,
+            ShaderEnqueueAMDX = 5067,
+            QuadControlKHR = 5087,
             SampleMaskOverrideCoverageNV = 5249,
             GeometryShaderPassthroughNV = 5251,
             ShaderViewportIndexLayerEXT = 5254,
@@ -1040,6 +1130,7 @@
             UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
             StorageTexelBufferArrayNonUniformIndexing = 5312,
             StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+            RayTracingPositionFetchKHR = 5336,
             RayTracingNV = 5340,
             RayTracingMotionBlurNV = 5341,
             VulkanMemoryModel = 5345,
@@ -1057,7 +1148,12 @@
             FragmentShaderPixelInterlockEXT = 5378,
             DemoteToHelperInvocation = 5379,
             DemoteToHelperInvocationEXT = 5379,
+            DisplacementMicromapNV = 5380,
+            RayTracingOpacityMicromapEXT = 5381,
+            ShaderInvocationReorderNV = 5383,
             BindlessTextureNV = 5390,
+            RayQueryPositionFetchKHR = 5391,
+            RayTracingDisplacementMicromapNV = 5409,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
             SubgroupImageBlockIOINTEL = 5570,
@@ -1090,10 +1186,13 @@
             FPGAMemoryAccessesINTEL = 5898,
             FPGAClusterAttributesINTEL = 5904,
             LoopFuseINTEL = 5906,
+            FPGADSPControlINTEL = 5908,
             MemoryAccessAliasingINTEL = 5910,
+            FPGAInvocationPipeliningAttributesINTEL = 5916,
             FPGABufferLocationINTEL = 5920,
             ArbitraryPrecisionFixedPointINTEL = 5922,
             USMStorageClassesINTEL = 5935,
+            RuntimeAlignedAttributeINTEL = 5939,
             IOPipesINTEL = 5943,
             BlockingPipesINTEL = 5945,
             FPGARegINTEL = 5948,
@@ -1106,16 +1205,28 @@
             DotProduct = 6019,
             DotProductKHR = 6019,
             RayCullMaskKHR = 6020,
+            CooperativeMatrixKHR = 6022,
             BitInstructions = 6025,
             GroupNonUniformRotateKHR = 6026,
+            FloatControls2 = 6029,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat64AddEXT = 6034,
-            LongConstantCompositeINTEL = 6089,
+            LongCompositesINTEL = 6089,
             OptNoneINTEL = 6094,
             AtomicFloat16AddEXT = 6095,
             DebugInfoModuleINTEL = 6114,
+            BFloat16ConversionINTEL = 6115,
             SplitBarrierINTEL = 6141,
+            FPGAClusterAttributesV2INTEL = 6150,
+            FPGAKernelAttributesv2INTEL = 6161,
+            FPMaxErrorINTEL = 6169,
+            FPGALatencyControlINTEL = 6171,
+            FPGAArgumentInterfacesINTEL = 6174,
+            GlobalVariableHostAccessINTEL = 6187,
+            GlobalVariableFPGADecorationsINTEL = 6189,
             GroupUniformArithmeticKHR = 6400,
+            MaskedGatherScatterINTEL = 6427,
+            CacheControlsINTEL = 6441,
         }
 
         [AllowDuplicates, CRepr] public enum RayFlagsShift
@@ -1130,6 +1241,7 @@
             CullNoOpaqueKHR = 7,
             SkipTrianglesKHR = 8,
             SkipAABBsKHR = 9,
+            ForceOpacityMicromap2StateEXT = 10,
         }
 
         [AllowDuplicates, CRepr] public enum RayFlagsMask
@@ -1145,6 +1257,7 @@
             CullNoOpaqueKHR = 0x00000080,
             SkipTrianglesKHR = 0x00000100,
             SkipAABBsKHR = 0x00000200,
+            ForceOpacityMicromap2StateEXT = 0x00000400,
         }
 
         [AllowDuplicates, CRepr] public enum RayQueryIntersection
@@ -1221,6 +1334,69 @@
             PackedVectorFormat4x8BitKHR = 0,
         }
 
+        [AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsShift
+        {
+            MatrixASignedComponentsKHR = 0,
+            MatrixBSignedComponentsKHR = 1,
+            MatrixCSignedComponentsKHR = 2,
+            MatrixResultSignedComponentsKHR = 3,
+            SaturatingAccumulationKHR = 4,
+        }
+
+        [AllowDuplicates, CRepr] public enum CooperativeMatrixOperandsMask
+        {
+            MaskNone = 0,
+            MatrixASignedComponentsKHR = 0x00000001,
+            MatrixBSignedComponentsKHR = 0x00000002,
+            MatrixCSignedComponentsKHR = 0x00000004,
+            MatrixResultSignedComponentsKHR = 0x00000008,
+            SaturatingAccumulationKHR = 0x00000010,
+        }
+
+        [AllowDuplicates, CRepr] public enum CooperativeMatrixLayout
+        {
+            RowMajorKHR = 0,
+            ColumnMajorKHR = 1,
+        }
+
+        [AllowDuplicates, CRepr] public enum CooperativeMatrixUse
+        {
+            MatrixAKHR = 0,
+            MatrixBKHR = 1,
+            MatrixAccumulatorKHR = 2,
+        }
+
+        [AllowDuplicates, CRepr] public enum InitializationModeQualifier
+        {
+            InitOnDeviceReprogramINTEL = 0,
+            InitOnDeviceResetINTEL = 1,
+        }
+
+        [AllowDuplicates, CRepr] public enum HostAccessQualifier
+        {
+            NoneINTEL = 0,
+            ReadINTEL = 1,
+            WriteINTEL = 2,
+            ReadWriteINTEL = 3,
+        }
+
+        [AllowDuplicates, CRepr] public enum LoadCacheControl
+        {
+            UncachedINTEL = 0,
+            CachedINTEL = 1,
+            StreamingINTEL = 2,
+            InvalidateAfterReadINTEL = 3,
+            ConstCachedINTEL = 4,
+        }
+
+        [AllowDuplicates, CRepr] public enum StoreCacheControl
+        {
+            UncachedINTEL = 0,
+            WriteThroughINTEL = 1,
+            WriteBackINTEL = 2,
+            StreamingINTEL = 3,
+        }
+
         [AllowDuplicates, CRepr] public enum Op
         {
             OpNop = 0,
@@ -1567,6 +1743,9 @@
             OpPtrEqual = 401,
             OpPtrNotEqual = 402,
             OpPtrDiff = 403,
+            OpColorAttachmentReadEXT = 4160,
+            OpDepthAttachmentReadEXT = 4161,
+            OpStencilAttachmentReadEXT = 4162,
             OpTerminateInvocation = 4416,
             OpSubgroupBallotKHR = 4421,
             OpSubgroupFirstInvocationKHR = 4422,
@@ -1592,6 +1771,11 @@
             OpUDotAccSatKHR = 4454,
             OpSUDotAccSat = 4455,
             OpSUDotAccSatKHR = 4455,
+            OpTypeCooperativeMatrixKHR = 4456,
+            OpCooperativeMatrixLoadKHR = 4457,
+            OpCooperativeMatrixStoreKHR = 4458,
+            OpCooperativeMatrixMulAddKHR = 4459,
+            OpCooperativeMatrixLengthKHR = 4460,
             OpTypeRayQueryKHR = 4472,
             OpRayQueryInitializeKHR = 4473,
             OpRayQueryTerminateKHR = 4474,
@@ -1599,6 +1783,10 @@
             OpRayQueryConfirmIntersectionKHR = 4476,
             OpRayQueryProceedKHR = 4477,
             OpRayQueryGetIntersectionTypeKHR = 4479,
+            OpImageSampleWeightedQCOM = 4480,
+            OpImageBoxFilterQCOM = 4481,
+            OpImageBlockMatchSSDQCOM = 4482,
+            OpImageBlockMatchSADQCOM = 4483,
             OpGroupIAddNonUniformAMD = 5000,
             OpGroupFAddNonUniformAMD = 5001,
             OpGroupFMinNonUniformAMD = 5002,
@@ -1610,11 +1798,51 @@
             OpFragmentMaskFetchAMD = 5011,
             OpFragmentFetchAMD = 5012,
             OpReadClockKHR = 5056,
+            OpFinalizeNodePayloadsAMDX = 5075,
+            OpFinishWritingNodePayloadAMDX = 5078,
+            OpInitializeNodePayloadsAMDX = 5090,
+            OpGroupNonUniformQuadAllKHR = 5110,
+            OpGroupNonUniformQuadAnyKHR = 5111,
+            OpHitObjectRecordHitMotionNV = 5249,
+            OpHitObjectRecordHitWithIndexMotionNV = 5250,
+            OpHitObjectRecordMissMotionNV = 5251,
+            OpHitObjectGetWorldToObjectNV = 5252,
+            OpHitObjectGetObjectToWorldNV = 5253,
+            OpHitObjectGetObjectRayDirectionNV = 5254,
+            OpHitObjectGetObjectRayOriginNV = 5255,
+            OpHitObjectTraceRayMotionNV = 5256,
+            OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+            OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+            OpHitObjectRecordEmptyNV = 5259,
+            OpHitObjectTraceRayNV = 5260,
+            OpHitObjectRecordHitNV = 5261,
+            OpHitObjectRecordHitWithIndexNV = 5262,
+            OpHitObjectRecordMissNV = 5263,
+            OpHitObjectExecuteShaderNV = 5264,
+            OpHitObjectGetCurrentTimeNV = 5265,
+            OpHitObjectGetAttributesNV = 5266,
+            OpHitObjectGetHitKindNV = 5267,
+            OpHitObjectGetPrimitiveIndexNV = 5268,
+            OpHitObjectGetGeometryIndexNV = 5269,
+            OpHitObjectGetInstanceIdNV = 5270,
+            OpHitObjectGetInstanceCustomIndexNV = 5271,
+            OpHitObjectGetWorldRayDirectionNV = 5272,
+            OpHitObjectGetWorldRayOriginNV = 5273,
+            OpHitObjectGetRayTMaxNV = 5274,
+            OpHitObjectGetRayTMinNV = 5275,
+            OpHitObjectIsEmptyNV = 5276,
+            OpHitObjectIsHitNV = 5277,
+            OpHitObjectIsMissNV = 5278,
+            OpReorderThreadWithHitObjectNV = 5279,
+            OpReorderThreadWithHintNV = 5280,
+            OpTypeHitObjectNV = 5281,
             OpImageSampleFootprintNV = 5283,
             OpEmitMeshTasksEXT = 5294,
             OpSetMeshOutputsEXT = 5295,
             OpGroupNonUniformPartitionNV = 5296,
             OpWritePackedPrimitiveIndices4x8NV = 5299,
+            OpFetchMicroTriangleVertexPositionNV = 5300,
+            OpFetchMicroTriangleVertexBarycentricNV = 5301,
             OpReportIntersectionKHR = 5334,
             OpReportIntersectionNV = 5334,
             OpIgnoreIntersectionNV = 5335,
@@ -1622,6 +1850,7 @@
             OpTraceNV = 5337,
             OpTraceMotionNV = 5338,
             OpTraceRayMotionNV = 5339,
+            OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
             OpTypeAccelerationStructureKHR = 5341,
             OpTypeAccelerationStructureNV = 5341,
             OpExecuteCallableNV = 5344,
@@ -1883,6 +2112,9 @@
             OpTypeStructContinuedINTEL = 6090,
             OpConstantCompositeContinuedINTEL = 6091,
             OpSpecConstantCompositeContinuedINTEL = 6092,
+            OpCompositeConstructContinuedINTEL = 6096,
+            OpConvertFToBF16INTEL = 6116,
+            OpConvertBF16ToFINTEL = 6117,
             OpControlBarrierArriveINTEL = 6142,
             OpControlBarrierWaitINTEL = 6143,
             OpGroupIMulKHR = 6401,
@@ -1893,6 +2125,8 @@
             OpGroupLogicalAndKHR = 6406,
             OpGroupLogicalOrKHR = 6407,
             OpGroupLogicalXorKHR = 6408,
+            OpMaskedGatherINTEL = 6428,
+            OpMaskedScatterINTEL = 6429,
         }
     }
 }
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index bd1289e..1d595c1 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -1,6 +1,6 @@
 {
   "copyright" : [
-    "Copyright (c) 2014-2020 The Khronos Group Inc.",
+    "Copyright (c) 2014-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\"),",
@@ -137,7 +137,8 @@
     {
       "opname" : "OpNop",
       "class"  : "Miscellaneous",
-      "opcode" : 0
+      "opcode" : 0,
+      "version" : "1.0"
     },
     {
       "opname" : "OpUndef",
@@ -146,7 +147,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version" : "1.0"
     },
     {
       "opname" : "OpSourceContinued",
@@ -154,7 +156,8 @@
       "opcode" : 2,
       "operands" : [
         { "kind" : "LiteralString", "name" : "'Continued Source'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSource",
@@ -165,7 +168,8 @@
         { "kind" : "LiteralInteger",                     "name" : "'Version'" },
         { "kind" : "IdRef",          "quantifier" : "?", "name" : "'File'" },
         { "kind" : "LiteralString",  "quantifier" : "?", "name" : "'Source'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSourceExtension",
@@ -173,7 +177,8 @@
       "opcode" : 4,
       "operands" : [
         { "kind" : "LiteralString", "name" : "'Extension'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpName",
@@ -182,7 +187,8 @@
       "operands" : [
         { "kind" : "IdRef",         "name" : "'Target'" },
         { "kind" : "LiteralString", "name" : "'Name'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMemberName",
@@ -192,7 +198,8 @@
         { "kind" : "IdRef",          "name" : "'Type'" },
         { "kind" : "LiteralInteger", "name" : "'Member'" },
         { "kind" : "LiteralString",  "name" : "'Name'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpString",
@@ -201,7 +208,8 @@
       "operands" : [
         { "kind" : "IdResult" },
         { "kind" : "LiteralString", "name" : "'String'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLine",
@@ -211,7 +219,8 @@
         { "kind" : "IdRef",          "name" : "'File'" },
         { "kind" : "LiteralInteger", "name" : "'Line'" },
         { "kind" : "LiteralInteger", "name" : "'Column'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpExtension",
@@ -219,7 +228,8 @@
       "opcode" : 10,
       "operands" : [
         { "kind" : "LiteralString", "name" : "'Name'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpExtInstImport",
@@ -228,7 +238,8 @@
       "operands" : [
         { "kind" : "IdResult" },
         { "kind" : "LiteralString", "name" : "'Name'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpExtInst",
@@ -240,7 +251,8 @@
         { "kind" : "IdRef",                                     "name" : "'Set'" },
         { "kind" : "LiteralExtInstInteger",                     "name" : "'Instruction'" },
         { "kind" : "IdRef",                 "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMemoryModel",
@@ -249,7 +261,8 @@
       "operands" : [
         { "kind" : "AddressingModel" },
         { "kind" : "MemoryModel" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEntryPoint",
@@ -260,7 +273,8 @@
         { "kind" : "IdRef",                              "name" : "'Entry Point'" },
         { "kind" : "LiteralString",                      "name" : "'Name'" },
         { "kind" : "IdRef",          "quantifier" : "*", "name" : "'Interface'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpExecutionMode",
@@ -269,7 +283,8 @@
       "operands" : [
         { "kind" : "IdRef",         "name" : "'Entry Point'" },
         { "kind" : "ExecutionMode", "name" : "'Mode'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCapability",
@@ -277,7 +292,8 @@
       "opcode" : 17,
       "operands" : [
         { "kind" : "Capability", "name" : "'Capability'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeVoid",
@@ -285,7 +301,8 @@
       "opcode" : 19,
       "operands" : [
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeBool",
@@ -293,7 +310,8 @@
       "opcode" : 20,
       "operands" : [
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeInt",
@@ -303,7 +321,8 @@
         { "kind" : "IdResult" },
         { "kind" : "LiteralInteger", "name" : "'Width'" },
         { "kind" : "LiteralInteger", "name" : "'Signedness'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeFloat",
@@ -312,7 +331,8 @@
       "operands" : [
         { "kind" : "IdResult" },
         { "kind" : "LiteralInteger", "name" : "'Width'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeVector",
@@ -322,7 +342,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",          "name" : "'Component Type'" },
         { "kind" : "LiteralInteger", "name" : "'Component Count'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeMatrix",
@@ -333,7 +354,8 @@
         { "kind" : "IdRef",          "name" : "'Column Type'" },
         { "kind" : "LiteralInteger", "name" : "'Column Count'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeImage",
@@ -349,7 +371,8 @@
         { "kind" : "LiteralInteger",                      "name" : "'Sampled'" },
         { "kind" : "ImageFormat" },
         { "kind" : "AccessQualifier", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeSampler",
@@ -357,7 +380,8 @@
       "opcode" : 26,
       "operands" : [
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeSampledImage",
@@ -366,7 +390,8 @@
       "operands" : [
         { "kind" : "IdResult" },
         { "kind" : "IdRef",    "name" : "'Image Type'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeArray",
@@ -376,7 +401,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",    "name" : "'Element Type'" },
         { "kind" : "IdRef",    "name" : "'Length'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeRuntimeArray",
@@ -386,7 +412,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",    "name" : "'Element Type'" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeStruct",
@@ -395,7 +422,8 @@
       "operands" : [
         { "kind" : "IdResult" },
         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeOpaque",
@@ -405,7 +433,8 @@
         { "kind" : "IdResult" },
         { "kind" : "LiteralString", "name" : "The name of the opaque type." }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypePointer",
@@ -415,7 +444,8 @@
         { "kind" : "IdResult" },
         { "kind" : "StorageClass" },
         { "kind" : "IdRef",        "name" : "'Type'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeFunction",
@@ -425,7 +455,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                        "name" : "'Return Type'" },
         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeEvent",
@@ -434,7 +465,8 @@
       "operands" : [
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeDeviceEvent",
@@ -443,7 +475,8 @@
       "operands" : [
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeReserveId",
@@ -452,7 +485,8 @@
       "operands" : [
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeQueue",
@@ -461,7 +495,8 @@
       "operands" : [
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypePipe",
@@ -471,7 +506,8 @@
         { "kind" : "IdResult" },
         { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTypeForwardPointer",
@@ -484,7 +520,8 @@
       "capabilities" : [
         "Addresses",
         "PhysicalStorageBufferAddresses"
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstantTrue",
@@ -493,7 +530,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstantFalse",
@@ -502,7 +540,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstant",
@@ -512,7 +551,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstantComposite",
@@ -522,7 +562,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstantSampler",
@@ -535,7 +576,8 @@
         { "kind" : "LiteralInteger",        "name" : "'Param'" },
         { "kind" : "SamplerFilterMode" }
       ],
-      "capabilities" : [ "LiteralSampler" ]
+      "capabilities" : [ "LiteralSampler" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConstantNull",
@@ -544,7 +586,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSpecConstantTrue",
@@ -553,7 +596,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSpecConstantFalse",
@@ -562,7 +606,8 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSpecConstant",
@@ -572,7 +617,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSpecConstantComposite",
@@ -582,7 +628,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSpecConstantOp",
@@ -592,7 +639,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFunction",
@@ -603,7 +651,8 @@
         { "kind" : "IdResult" },
         { "kind" : "FunctionControl" },
         { "kind" : "IdRef",           "name" : "'Function Type'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFunctionParameter",
@@ -612,12 +661,14 @@
       "operands" : [
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFunctionEnd",
       "class"  : "Function",
-      "opcode" : 56
+      "opcode" : 56,
+      "version" : "1.0"
     },
     {
       "opname" : "OpFunctionCall",
@@ -628,7 +679,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                            "name" : "'Function'" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVariable",
@@ -639,7 +691,8 @@
         { "kind" : "IdResult" },
         { "kind" : "StorageClass" },
         { "kind" : "IdRef",        "quantifier" : "?", "name" : "'Initializer'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageTexelPointer",
@@ -651,7 +704,8 @@
         { "kind" : "IdRef",        "name" : "'Image'" },
         { "kind" : "IdRef",        "name" : "'Coordinate'" },
         { "kind" : "IdRef",        "name" : "'Sample'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLoad",
@@ -662,7 +716,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                            "name" : "'Pointer'" },
         { "kind" : "MemoryAccess", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpStore",
@@ -672,7 +727,8 @@
         { "kind" : "IdRef",                            "name" : "'Pointer'" },
         { "kind" : "IdRef",                            "name" : "'Object'" },
         { "kind" : "MemoryAccess", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCopyMemory",
@@ -683,7 +739,8 @@
         { "kind" : "IdRef",                            "name" : "'Source'" },
         { "kind" : "MemoryAccess", "quantifier" : "?" },
         { "kind" : "MemoryAccess", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCopyMemorySized",
@@ -696,7 +753,8 @@
         { "kind" : "MemoryAccess", "quantifier" : "?" },
         { "kind" : "MemoryAccess", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Addresses" ]
+      "capabilities" : [ "Addresses" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAccessChain",
@@ -707,7 +765,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                            "name" : "'Base'" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpInBoundsAccessChain",
@@ -718,7 +777,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                            "name" : "'Base'" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpPtrAccessChain",
@@ -736,7 +796,8 @@
         "VariablePointers",
         "VariablePointersStorageBuffer",
         "PhysicalStorageBufferAddresses"
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpArrayLength",
@@ -748,7 +809,8 @@
         { "kind" : "IdRef",          "name" : "'Structure'" },
         { "kind" : "LiteralInteger", "name" : "'Array member'" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGenericPtrMemSemantics",
@@ -759,7 +821,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Pointer'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpInBoundsPtrAccessChain",
@@ -772,7 +835,8 @@
         { "kind" : "IdRef",                            "name" : "'Element'" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
       ],
-      "capabilities" : [ "Addresses" ]
+      "capabilities" : [ "Addresses" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDecorate",
@@ -781,7 +845,8 @@
       "operands" : [
         { "kind" : "IdRef",      "name" : "'Target'" },
         { "kind" : "Decoration" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMemberDecorate",
@@ -791,7 +856,8 @@
         { "kind" : "IdRef",          "name" : "'Structure Type'" },
         { "kind" : "LiteralInteger", "name" : "'Member'" },
         { "kind" : "Decoration" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDecorationGroup",
@@ -799,7 +865,8 @@
       "opcode" : 73,
       "operands" : [
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupDecorate",
@@ -808,7 +875,8 @@
       "operands" : [
         { "kind" : "IdRef",                     "name" : "'Decoration Group'" },
         { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupMemberDecorate",
@@ -817,7 +885,8 @@
       "operands" : [
         { "kind" : "IdRef",                                       "name" : "'Decoration Group'" },
         { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVectorExtractDynamic",
@@ -828,7 +897,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Vector'" },
         { "kind" : "IdRef",        "name" : "'Index'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVectorInsertDynamic",
@@ -840,7 +910,8 @@
         { "kind" : "IdRef",        "name" : "'Vector'" },
         { "kind" : "IdRef",        "name" : "'Component'" },
         { "kind" : "IdRef",        "name" : "'Index'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVectorShuffle",
@@ -852,7 +923,8 @@
         { "kind" : "IdRef",                              "name" : "'Vector 1'" },
         { "kind" : "IdRef",                              "name" : "'Vector 2'" },
         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCompositeConstruct",
@@ -862,7 +934,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCompositeExtract",
@@ -873,7 +946,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",                              "name" : "'Composite'" },
         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCompositeInsert",
@@ -885,7 +959,8 @@
         { "kind" : "IdRef",                              "name" : "'Object'" },
         { "kind" : "IdRef",                              "name" : "'Composite'" },
         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCopyObject",
@@ -895,7 +970,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpTranspose",
@@ -906,7 +982,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Matrix'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSampledImage",
@@ -917,7 +994,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" },
         { "kind" : "IdRef",        "name" : "'Sampler'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleImplicitLod",
@@ -930,7 +1008,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleExplicitLod",
@@ -942,7 +1021,8 @@
         { "kind" : "IdRef",         "name" : "'Sampled Image'" },
         { "kind" : "IdRef",         "name" : "'Coordinate'" },
         { "kind" : "ImageOperands" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleDrefImplicitLod",
@@ -956,7 +1036,8 @@
         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleDrefExplicitLod",
@@ -970,7 +1051,8 @@
         { "kind" : "IdRef",         "name" : "'D~ref~'" },
         { "kind" : "ImageOperands" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleProjImplicitLod",
@@ -983,7 +1065,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleProjExplicitLod",
@@ -996,7 +1079,8 @@
         { "kind" : "IdRef",         "name" : "'Coordinate'" },
         { "kind" : "ImageOperands" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleProjDrefImplicitLod",
@@ -1010,7 +1094,8 @@
         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSampleProjDrefExplicitLod",
@@ -1024,7 +1109,8 @@
         { "kind" : "IdRef",         "name" : "'D~ref~'" },
         { "kind" : "ImageOperands" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageFetch",
@@ -1036,7 +1122,8 @@
         { "kind" : "IdRef",                             "name" : "'Image'" },
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageGather",
@@ -1050,7 +1137,8 @@
         { "kind" : "IdRef",                             "name" : "'Component'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageDrefGather",
@@ -1064,7 +1152,8 @@
         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageRead",
@@ -1076,7 +1165,8 @@
         { "kind" : "IdRef",                             "name" : "'Image'" },
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageWrite",
@@ -1087,7 +1177,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "IdRef",                             "name" : "'Texel'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImage",
@@ -1097,7 +1188,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Sampled Image'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQueryFormat",
@@ -1108,7 +1200,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQueryOrder",
@@ -1119,7 +1212,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQuerySizeLod",
@@ -1131,7 +1225,8 @@
         { "kind" : "IdRef",        "name" : "'Image'" },
         { "kind" : "IdRef",        "name" : "'Level of Detail'" }
       ],
-      "capabilities" : [ "Kernel", "ImageQuery" ]
+      "capabilities" : [ "Kernel", "ImageQuery" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQuerySize",
@@ -1142,7 +1237,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" }
       ],
-      "capabilities" : [ "Kernel", "ImageQuery" ]
+      "capabilities" : [ "Kernel", "ImageQuery" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQueryLod",
@@ -1154,7 +1250,8 @@
         { "kind" : "IdRef",        "name" : "'Sampled Image'" },
         { "kind" : "IdRef",        "name" : "'Coordinate'" }
       ],
-      "capabilities" : [ "ImageQuery" ]
+      "capabilities" : [ "ImageQuery" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQueryLevels",
@@ -1165,7 +1262,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" }
       ],
-      "capabilities" : [ "Kernel", "ImageQuery" ]
+      "capabilities" : [ "Kernel", "ImageQuery" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageQuerySamples",
@@ -1176,7 +1274,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Image'" }
       ],
-      "capabilities" : [ "Kernel", "ImageQuery" ]
+      "capabilities" : [ "Kernel", "ImageQuery" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertFToU",
@@ -1186,7 +1285,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Float Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertFToS",
@@ -1196,7 +1296,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Float Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertSToF",
@@ -1206,7 +1307,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Signed Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertUToF",
@@ -1216,7 +1318,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUConvert",
@@ -1226,7 +1329,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSConvert",
@@ -1236,7 +1340,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Signed Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFConvert",
@@ -1246,7 +1351,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Float Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpQuantizeToF16",
@@ -1256,7 +1362,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertPtrToU",
@@ -1270,7 +1377,8 @@
       "capabilities" : [
         "Addresses",
         "PhysicalStorageBufferAddresses"
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSatConvertSToU",
@@ -1281,7 +1389,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Signed Value'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSatConvertUToS",
@@ -1292,7 +1401,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpConvertUToPtr",
@@ -1306,7 +1416,8 @@
       "capabilities" : [
         "Addresses",
         "PhysicalStorageBufferAddresses"
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpPtrCastToGeneric",
@@ -1317,7 +1428,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Pointer'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGenericCastToPtr",
@@ -1328,7 +1440,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Pointer'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGenericCastToPtrExplicit",
@@ -1340,7 +1453,8 @@
         { "kind" : "IdRef",        "name" : "'Pointer'" },
         { "kind" : "StorageClass", "name" : "'Storage'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitcast",
@@ -1350,7 +1464,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSNegate",
@@ -1360,7 +1475,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFNegate",
@@ -1370,7 +1486,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIAdd",
@@ -1381,7 +1498,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFAdd",
@@ -1392,7 +1510,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpISub",
@@ -1403,7 +1522,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFSub",
@@ -1414,7 +1534,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIMul",
@@ -1425,7 +1546,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFMul",
@@ -1436,7 +1558,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUDiv",
@@ -1447,7 +1570,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSDiv",
@@ -1458,7 +1582,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFDiv",
@@ -1469,7 +1594,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUMod",
@@ -1480,7 +1606,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSRem",
@@ -1491,7 +1618,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSMod",
@@ -1502,7 +1630,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFRem",
@@ -1513,7 +1642,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFMod",
@@ -1524,7 +1654,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVectorTimesScalar",
@@ -1535,7 +1666,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Vector'" },
         { "kind" : "IdRef",        "name" : "'Scalar'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMatrixTimesScalar",
@@ -1547,7 +1679,8 @@
         { "kind" : "IdRef",        "name" : "'Matrix'" },
         { "kind" : "IdRef",        "name" : "'Scalar'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpVectorTimesMatrix",
@@ -1559,7 +1692,8 @@
         { "kind" : "IdRef",        "name" : "'Vector'" },
         { "kind" : "IdRef",        "name" : "'Matrix'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMatrixTimesVector",
@@ -1571,7 +1705,8 @@
         { "kind" : "IdRef",        "name" : "'Matrix'" },
         { "kind" : "IdRef",        "name" : "'Vector'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMatrixTimesMatrix",
@@ -1583,7 +1718,8 @@
         { "kind" : "IdRef",        "name" : "'LeftMatrix'" },
         { "kind" : "IdRef",        "name" : "'RightMatrix'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpOuterProduct",
@@ -1595,7 +1731,8 @@
         { "kind" : "IdRef",        "name" : "'Vector 1'" },
         { "kind" : "IdRef",        "name" : "'Vector 2'" }
       ],
-      "capabilities" : [ "Matrix" ]
+      "capabilities" : [ "Matrix" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDot",
@@ -1606,7 +1743,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Vector 1'" },
         { "kind" : "IdRef",        "name" : "'Vector 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIAddCarry",
@@ -1617,7 +1755,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpISubBorrow",
@@ -1628,7 +1767,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUMulExtended",
@@ -1639,7 +1779,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSMulExtended",
@@ -1650,7 +1791,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAny",
@@ -1660,7 +1802,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Vector'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAll",
@@ -1670,7 +1813,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Vector'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsNan",
@@ -1680,7 +1824,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'x'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsInf",
@@ -1690,7 +1835,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'x'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsFinite",
@@ -1701,7 +1847,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'x'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsNormal",
@@ -1712,7 +1859,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'x'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSignBitSet",
@@ -1723,7 +1871,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'x'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLessOrGreater",
@@ -1736,6 +1885,7 @@
         { "kind" : "IdRef",        "name" : "'y'" }
       ],
       "capabilities" : [ "Kernel" ],
+      "version" : "1.0",
       "lastVersion" : "1.5"
     },
     {
@@ -1748,7 +1898,8 @@
         { "kind" : "IdRef",        "name" : "'x'" },
         { "kind" : "IdRef",        "name" : "'y'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUnordered",
@@ -1760,7 +1911,8 @@
         { "kind" : "IdRef",        "name" : "'x'" },
         { "kind" : "IdRef",        "name" : "'y'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLogicalEqual",
@@ -1771,7 +1923,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLogicalNotEqual",
@@ -1782,7 +1935,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLogicalOr",
@@ -1793,7 +1947,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLogicalAnd",
@@ -1804,7 +1959,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version" : "1.0"
     },
     {
       "opname" : "OpLogicalNot",
@@ -1814,7 +1970,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSelect",
@@ -1826,7 +1983,8 @@
         { "kind" : "IdRef",        "name" : "'Condition'" },
         { "kind" : "IdRef",        "name" : "'Object 1'" },
         { "kind" : "IdRef",        "name" : "'Object 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIEqual",
@@ -1837,7 +1995,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpINotEqual",
@@ -1848,7 +2007,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUGreaterThan",
@@ -1859,7 +2019,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSGreaterThan",
@@ -1870,7 +2031,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUGreaterThanEqual",
@@ -1881,7 +2043,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSGreaterThanEqual",
@@ -1892,7 +2055,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpULessThan",
@@ -1903,7 +2067,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSLessThan",
@@ -1914,7 +2079,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpULessThanEqual",
@@ -1925,7 +2091,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSLessThanEqual",
@@ -1936,7 +2103,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdEqual",
@@ -1947,7 +2115,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordEqual",
@@ -1958,7 +2127,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdNotEqual",
@@ -1969,7 +2139,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordNotEqual",
@@ -1980,7 +2151,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdLessThan",
@@ -1991,7 +2163,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordLessThan",
@@ -2002,7 +2175,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdGreaterThan",
@@ -2013,7 +2187,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordGreaterThan",
@@ -2024,7 +2199,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdLessThanEqual",
@@ -2035,7 +2211,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordLessThanEqual",
@@ -2046,7 +2223,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFOrdGreaterThanEqual",
@@ -2057,7 +2235,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFUnordGreaterThanEqual",
@@ -2068,7 +2247,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpShiftRightLogical",
@@ -2079,7 +2259,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Base'" },
         { "kind" : "IdRef",        "name" : "'Shift'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpShiftRightArithmetic",
@@ -2090,7 +2271,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Base'" },
         { "kind" : "IdRef",        "name" : "'Shift'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpShiftLeftLogical",
@@ -2101,7 +2283,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Base'" },
         { "kind" : "IdRef",        "name" : "'Shift'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitwiseOr",
@@ -2112,7 +2295,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitwiseXor",
@@ -2123,7 +2307,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitwiseAnd",
@@ -2134,7 +2319,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand 1'" },
         { "kind" : "IdRef",        "name" : "'Operand 2'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpNot",
@@ -2144,7 +2330,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Operand'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitFieldInsert",
@@ -2158,7 +2345,8 @@
         { "kind" : "IdRef",        "name" : "'Offset'" },
         { "kind" : "IdRef",        "name" : "'Count'" }
       ],
-      "capabilities" : [ "Shader", "BitInstructions" ]
+      "capabilities" : [ "Shader", "BitInstructions" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitFieldSExtract",
@@ -2171,7 +2359,8 @@
         { "kind" : "IdRef",        "name" : "'Offset'" },
         { "kind" : "IdRef",        "name" : "'Count'" }
       ],
-      "capabilities" : [ "Shader", "BitInstructions" ]
+      "capabilities" : [ "Shader", "BitInstructions" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitFieldUExtract",
@@ -2184,7 +2373,8 @@
         { "kind" : "IdRef",        "name" : "'Offset'" },
         { "kind" : "IdRef",        "name" : "'Count'" }
       ],
-      "capabilities" : [ "Shader", "BitInstructions" ]
+      "capabilities" : [ "Shader", "BitInstructions" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitReverse",
@@ -2195,7 +2385,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Base'" }
       ],
-      "capabilities" : [ "Shader", "BitInstructions" ]
+      "capabilities" : [ "Shader", "BitInstructions" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBitCount",
@@ -2205,7 +2396,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Base'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdx",
@@ -2216,7 +2408,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdy",
@@ -2227,7 +2420,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFwidth",
@@ -2238,7 +2432,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdxFine",
@@ -2249,7 +2444,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdyFine",
@@ -2260,7 +2456,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFwidthFine",
@@ -2271,7 +2468,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdxCoarse",
@@ -2282,7 +2480,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpDPdyCoarse",
@@ -2293,7 +2492,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpFwidthCoarse",
@@ -2304,19 +2504,22 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'P'" }
       ],
-      "capabilities" : [ "DerivativeControl" ]
+      "capabilities" : [ "DerivativeControl" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEmitVertex",
       "class"  : "Primitive",
       "opcode" : 218,
-      "capabilities" : [ "Geometry" ]
+      "capabilities" : [ "Geometry" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEndPrimitive",
       "class"  : "Primitive",
       "opcode" : 219,
-      "capabilities" : [ "Geometry" ]
+      "capabilities" : [ "Geometry" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEmitStreamVertex",
@@ -2325,7 +2528,8 @@
       "operands" : [
         { "kind" : "IdRef", "name" : "'Stream'" }
       ],
-      "capabilities" : [ "GeometryStreams" ]
+      "capabilities" : [ "GeometryStreams" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEndStreamPrimitive",
@@ -2334,7 +2538,8 @@
       "operands" : [
         { "kind" : "IdRef", "name" : "'Stream'" }
       ],
-      "capabilities" : [ "GeometryStreams" ]
+      "capabilities" : [ "GeometryStreams" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpControlBarrier",
@@ -2344,7 +2549,8 @@
         { "kind" : "IdScope",           "name" : "'Execution'" },
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpMemoryBarrier",
@@ -2353,7 +2559,8 @@
       "operands" : [
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicLoad",
@@ -2365,7 +2572,8 @@
         { "kind" : "IdRef",             "name" : "'Pointer'" },
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicStore",
@@ -2376,7 +2584,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicExchange",
@@ -2389,7 +2598,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicCompareExchange",
@@ -2404,7 +2614,8 @@
         { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
         { "kind" : "IdRef",             "name" : "'Value'" },
         { "kind" : "IdRef",             "name" : "'Comparator'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicCompareExchangeWeak",
@@ -2421,6 +2632,7 @@
         { "kind" : "IdRef",             "name" : "'Comparator'" }
       ],
       "capabilities" : [ "Kernel" ],
+      "version" : "1.0",
       "lastVersion" : "1.3"
     },
     {
@@ -2433,7 +2645,8 @@
         { "kind" : "IdRef",             "name" : "'Pointer'" },
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicIDecrement",
@@ -2445,7 +2658,8 @@
         { "kind" : "IdRef",             "name" : "'Pointer'" },
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicIAdd",
@@ -2458,7 +2672,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicISub",
@@ -2471,7 +2686,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicSMin",
@@ -2484,7 +2700,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicUMin",
@@ -2497,7 +2714,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicSMax",
@@ -2510,7 +2728,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicUMax",
@@ -2523,7 +2742,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicAnd",
@@ -2536,7 +2756,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicOr",
@@ -2549,7 +2770,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicXor",
@@ -2562,7 +2784,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
         { "kind" : "IdRef",             "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpPhi",
@@ -2572,7 +2795,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" },
         { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLoopMerge",
@@ -2582,7 +2806,8 @@
         { "kind" : "IdRef",       "name" : "'Merge Block'" },
         { "kind" : "IdRef",       "name" : "'Continue Target'" },
         { "kind" : "LoopControl" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSelectionMerge",
@@ -2591,7 +2816,8 @@
       "operands" : [
         { "kind" : "IdRef",            "name" : "'Merge Block'" },
         { "kind" : "SelectionControl" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLabel",
@@ -2599,7 +2825,8 @@
       "opcode" : 248,
       "operands" : [
         { "kind" : "IdResult" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBranch",
@@ -2607,7 +2834,8 @@
       "opcode" : 249,
       "operands" : [
         { "kind" : "IdRef", "name" : "'Target Label'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBranchConditional",
@@ -2618,7 +2846,8 @@
         { "kind" : "IdRef",                              "name" : "'True Label'" },
         { "kind" : "IdRef",                              "name" : "'False Label'" },
         { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSwitch",
@@ -2628,18 +2857,21 @@
         { "kind" : "IdRef",                                       "name" : "'Selector'" },
         { "kind" : "IdRef",                                       "name" : "'Default'" },
         { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpKill",
       "class"  : "Control-Flow",
       "opcode" : 252,
-      "capabilities" : [ "Shader" ]
+      "capabilities" : [ "Shader" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReturn",
       "class"  : "Control-Flow",
-      "opcode" : 253
+      "opcode" : 253,
+      "version" : "1.0"
     },
     {
       "opname" : "OpReturnValue",
@@ -2647,12 +2879,14 @@
       "opcode" : 254,
       "operands" : [
         { "kind" : "IdRef", "name" : "'Value'" }
-      ]
+      ],
+      "version": "1.0"
     },
     {
       "opname" : "OpUnreachable",
       "class"  : "Control-Flow",
-      "opcode" : 255
+      "opcode" : 255,
+      "version" : "1.0"
     },
     {
       "opname" : "OpLifetimeStart",
@@ -2662,7 +2896,8 @@
         { "kind" : "IdRef",          "name" : "'Pointer'" },
         { "kind" : "LiteralInteger", "name" : "'Size'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpLifetimeStop",
@@ -2672,7 +2907,8 @@
         { "kind" : "IdRef",          "name" : "'Pointer'" },
         { "kind" : "LiteralInteger", "name" : "'Size'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupAsyncCopy",
@@ -2688,7 +2924,8 @@
         { "kind" : "IdRef",        "name" : "'Stride'" },
         { "kind" : "IdRef",        "name" : "'Event'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupWaitEvents",
@@ -2699,7 +2936,8 @@
         { "kind" : "IdRef",   "name" : "'Num Events'" },
         { "kind" : "IdRef",   "name" : "'Events List'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupAll",
@@ -2711,7 +2949,8 @@
         { "kind" : "IdScope",      "name" : "'Execution'" },
         { "kind" : "IdRef",        "name" : "'Predicate'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupAny",
@@ -2723,7 +2962,8 @@
         { "kind" : "IdScope",      "name" : "'Execution'" },
         { "kind" : "IdRef",        "name" : "'Predicate'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupBroadcast",
@@ -2736,7 +2976,8 @@
         { "kind" : "IdRef",        "name" : "'Value'" },
         { "kind" : "IdRef",        "name" : "'LocalId'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupIAdd",
@@ -2749,7 +2990,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupFAdd",
@@ -2762,7 +3004,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupFMin",
@@ -2775,7 +3018,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupUMin",
@@ -2788,7 +3032,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupSMin",
@@ -2801,7 +3046,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupFMax",
@@ -2814,7 +3060,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupUMax",
@@ -2827,7 +3074,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupSMax",
@@ -2840,7 +3088,8 @@
         { "kind" : "GroupOperation", "name" : "'Operation'" },
         { "kind" : "IdRef",          "name" : "'X'" }
       ],
-      "capabilities" : [ "Groups" ]
+      "capabilities" : [ "Groups" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReadPipe",
@@ -2854,7 +3103,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpWritePipe",
@@ -2868,7 +3118,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReservedReadPipe",
@@ -2884,7 +3135,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReservedWritePipe",
@@ -2900,7 +3152,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReserveReadPipePackets",
@@ -2914,7 +3167,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReserveWritePipePackets",
@@ -2928,7 +3182,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCommitReadPipe",
@@ -2940,7 +3195,8 @@
         { "kind" : "IdRef", "name" : "'Packet Size'" },
         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCommitWritePipe",
@@ -2952,7 +3208,8 @@
         { "kind" : "IdRef", "name" : "'Packet Size'" },
         { "kind" : "IdRef", "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsValidReserveId",
@@ -2963,7 +3220,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Reserve Id'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetNumPipePackets",
@@ -2976,7 +3234,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetMaxPipePackets",
@@ -2989,7 +3248,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupReserveReadPipePackets",
@@ -3004,7 +3264,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupReserveWritePipePackets",
@@ -3019,7 +3280,8 @@
         { "kind" : "IdRef",        "name" : "'Packet Size'" },
         { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupCommitReadPipe",
@@ -3032,7 +3294,8 @@
         { "kind" : "IdRef",   "name" : "'Packet Size'" },
         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGroupCommitWritePipe",
@@ -3045,7 +3308,8 @@
         { "kind" : "IdRef",   "name" : "'Packet Size'" },
         { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
       ],
-      "capabilities" : [ "Pipes" ]
+      "capabilities" : [ "Pipes" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEnqueueMarker",
@@ -3059,7 +3323,8 @@
         { "kind" : "IdRef",        "name" : "'Wait Events'" },
         { "kind" : "IdRef",        "name" : "'Ret Event'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpEnqueueKernel",
@@ -3080,7 +3345,8 @@
         { "kind" : "IdRef",                            "name" : "'Param Align'" },
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Local Size'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetKernelNDrangeSubGroupCount",
@@ -3095,7 +3361,8 @@
         { "kind" : "IdRef",        "name" : "'Param Size'" },
         { "kind" : "IdRef",        "name" : "'Param Align'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
@@ -3110,7 +3377,8 @@
         { "kind" : "IdRef",        "name" : "'Param Size'" },
         { "kind" : "IdRef",        "name" : "'Param Align'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetKernelWorkGroupSize",
@@ -3124,7 +3392,8 @@
         { "kind" : "IdRef",        "name" : "'Param Size'" },
         { "kind" : "IdRef",        "name" : "'Param Align'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
@@ -3138,7 +3407,8 @@
         { "kind" : "IdRef",        "name" : "'Param Size'" },
         { "kind" : "IdRef",        "name" : "'Param Align'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpRetainEvent",
@@ -3147,7 +3417,8 @@
       "operands" : [
         { "kind" : "IdRef", "name" : "'Event'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpReleaseEvent",
@@ -3156,7 +3427,8 @@
       "operands" : [
         { "kind" : "IdRef", "name" : "'Event'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCreateUserEvent",
@@ -3166,7 +3438,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpIsValidEvent",
@@ -3177,7 +3450,8 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Event'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSetUserEventStatus",
@@ -3187,7 +3461,8 @@
         { "kind" : "IdRef", "name" : "'Event'" },
         { "kind" : "IdRef", "name" : "'Status'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpCaptureEventProfilingInfo",
@@ -3198,7 +3473,8 @@
         { "kind" : "IdRef", "name" : "'Profiling Info'" },
         { "kind" : "IdRef", "name" : "'Value'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpGetDefaultQueue",
@@ -3208,7 +3484,8 @@
         { "kind" : "IdResultType" },
         { "kind" : "IdResult" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpBuildNDRange",
@@ -3221,7 +3498,8 @@
         { "kind" : "IdRef",        "name" : "'LocalWorkSize'" },
         { "kind" : "IdRef",        "name" : "'GlobalWorkOffset'" }
       ],
-      "capabilities" : [ "DeviceEnqueue" ]
+      "capabilities" : [ "DeviceEnqueue" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseSampleImplicitLod",
@@ -3234,7 +3512,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseSampleExplicitLod",
@@ -3247,7 +3526,8 @@
         { "kind" : "IdRef",         "name" : "'Coordinate'" },
         { "kind" : "ImageOperands" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseSampleDrefImplicitLod",
@@ -3261,7 +3541,8 @@
         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseSampleDrefExplicitLod",
@@ -3275,7 +3556,8 @@
         { "kind" : "IdRef",         "name" : "'D~ref~'" },
         { "kind" : "ImageOperands" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseSampleProjImplicitLod",
@@ -3346,7 +3628,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseGather",
@@ -3360,7 +3643,8 @@
         { "kind" : "IdRef",                             "name" : "'Component'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseDrefGather",
@@ -3374,7 +3658,8 @@
         { "kind" : "IdRef",                             "name" : "'D~ref~'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseTexelsResident",
@@ -3385,12 +3670,14 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Resident Code'" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpNoLine",
       "class"  : "Debug",
-      "opcode" : 317
+      "opcode" : 317,
+      "version" : "1.0"
     },
     {
       "opname" : "OpAtomicFlagTestAndSet",
@@ -3403,7 +3690,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpAtomicFlagClear",
@@ -3414,7 +3702,8 @@
         { "kind" : "IdScope",           "name" : "'Memory'" },
         { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
       ],
-      "capabilities" : [ "Kernel" ]
+      "capabilities" : [ "Kernel" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpImageSparseRead",
@@ -3427,7 +3716,8 @@
         { "kind" : "IdRef",                             "name" : "'Coordinate'" },
         { "kind" : "ImageOperands", "quantifier" : "?" }
       ],
-      "capabilities" : [ "SparseResidency" ]
+      "capabilities" : [ "SparseResidency" ],
+      "version": "1.0"
     },
     {
       "opname" : "OpSizeOf",
@@ -4103,6 +4393,43 @@
       "version" : "1.4"
     },
     {
+      "opname" : "OpColorAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4160,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Attachment'" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities": [ "TileImageColorReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpDepthAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4161,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TileImageDepthReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpStencilAttachmentReadEXT",
+      "class"  : "Image",
+      "opcode" : 4162,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Sample'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "TileImageStencilReadAccessEXT" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpTerminateInvocation",
       "class"  : "Control-Flow",
       "opcode" : 4416,
@@ -4457,8 +4784,79 @@
       "version" : "1.6"
     },
     {
+      "opname" : "OpTypeCooperativeMatrixKHR",
+      "class"  : "Type-Declaration",
+      "opcode" : 4456,
+      "operands" : [
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'Component Type'" },
+        { "kind" : "IdScope",      "name" : "'Scope'" },
+        { "kind" : "IdRef",        "name" : "'Rows'" },
+        { "kind" : "IdRef",        "name" : "'Columns'" },
+        { "kind" : "IdRef",        "name" : "'Use'" }
+      ],
+      "capabilities" : [ "CooperativeMatrixKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpCooperativeMatrixLoadKHR",
+      "class"  : "Memory",
+      "opcode" : 4457,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",             "name" : "'Pointer'" },
+        { "kind" : "IdRef",             "name" : "'MemoryLayout'" },
+        { "kind" : "IdRef",             "name" : "'Stride'", "quantifier": "?" },
+        { "kind" : "MemoryAccess",      "name" : "'Memory Operand'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "CooperativeMatrixKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpCooperativeMatrixStoreKHR",
+      "class"  : "Memory",
+      "opcode" : 4458,
+      "operands" : [
+        { "kind" : "IdRef",             "name" : "'Pointer'" },
+        { "kind" : "IdRef",             "name" : "'Object'" },
+        { "kind" : "IdRef",             "name" : "'MemoryLayout'" },
+        { "kind" : "IdRef",             "name" : "'Stride'", "quantifier": "?" },
+        { "kind" : "MemoryAccess",      "name" : "'Memory Operand'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "CooperativeMatrixKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpCooperativeMatrixMulAddKHR",
+      "class"  : "Arithmetic",
+      "opcode" : 4459,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",             "name" : "'A'" },
+        { "kind" : "IdRef",             "name" : "'B'" },
+        { "kind" : "IdRef",             "name" : "'C'" },
+        { "kind" : "CooperativeMatrixOperands", "name" : "'Cooperative Matrix Operands'", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "CooperativeMatrixKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpCooperativeMatrixLengthKHR",
+      "class"  : "Miscellaneous",
+      "opcode" : 4460,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'Type'" }
+      ],
+      "capabilities" : [ "CooperativeMatrixKHR" ],
+      "version" : "None"
+    },
+    {
         "opname" : "OpTypeRayQueryKHR",
-        "class" : "Reserved",
+        "class" : "Type-Declaration",
         "opcode" : 4472,
         "operands" : [
             { "kind" : "IdResult" }
@@ -4593,6 +4991,66 @@
         "version" : "None"
     },
     {
+      "opname" : "OpImageSampleWeightedQCOM",
+      "class"  : "Image",
+      "opcode" : 4480,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Texture'" },
+        { "kind" : "IdRef", "name" : "'Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Weights'" }
+      ],
+      "capabilities" : [ "TextureSampleWeightedQCOM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpImageBoxFilterQCOM",
+      "class"  : "Image",
+      "opcode" : 4481,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Texture'" },
+        { "kind" : "IdRef", "name" : "'Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Box Size'" }
+      ],
+      "capabilities" : [ "TextureBoxFilterQCOM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpImageBlockMatchSSDQCOM",
+      "class"  : "Image",
+      "opcode" : 4482,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Target'" },
+        { "kind" : "IdRef", "name" : "'Target Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Reference'" },
+        { "kind" : "IdRef", "name" : "'Reference Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Block Size'" }
+      ],
+      "capabilities" : [ "TextureBlockMatchQCOM" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpImageBlockMatchSADQCOM",
+      "class"  : "Image",
+      "opcode" : 4483,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Target'" },
+        { "kind" : "IdRef", "name" : "'Target Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Reference'" },
+        { "kind" : "IdRef", "name" : "'Reference Coordinates'" },
+        { "kind" : "IdRef", "name" : "'Block Size'" }
+      ],
+      "capabilities" : [ "TextureBlockMatchQCOM" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpGroupIAddNonUniformAMD",
       "class"  : "Group",
       "opcode" : 5000,
@@ -4751,7 +5209,520 @@
         { "kind" : "IdScope", "name" : "'Scope'" }
       ],
       "capabilities" : [ "ShaderClockKHR" ],
-      "extensions" : [ "SPV_KHR_shader_clock" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFinalizeNodePayloadsAMDX",
+      "class"  : "Reserved",
+      "opcode" : 5075,
+      "operands" : [
+        { "kind" : "IdRef", "name": "'Payload Array'" }
+      ],
+      "capabilities" : [ "ShaderEnqueueAMDX" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFinishWritingNodePayloadAMDX",
+      "class"  : "Reserved",
+      "opcode" : 5078,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name": "'Payload'" }
+      ],
+      "capabilities" : [ "ShaderEnqueueAMDX" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpInitializeNodePayloadsAMDX",
+      "class"  : "Reserved",
+      "opcode" : 5090,
+      "operands" : [
+        { "kind" : "IdRef", "name": "'Payload Array'" },
+        { "kind" : "IdScope", "name": "'Visibility'" },
+        { "kind" : "IdRef", "name": "'Payload Count'" },
+        { "kind" : "IdRef", "name": "'Node Index'" }
+      ],
+      "capabilities" : [ "ShaderEnqueueAMDX" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpGroupNonUniformQuadAllKHR",
+      "class"  : "Non-Uniform",
+      "opcode" : 5110,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Predicate'" }
+      ],
+      "capabilities" : [ "QuadControlKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpGroupNonUniformQuadAnyKHR",
+      "class"  : "Non-Uniform",
+      "opcode" : 5111,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Predicate'" }
+      ],
+      "capabilities" : [ "QuadControlKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordHitMotionNV",
+      "class"  : "Reserved",
+      "opcode" : 5249,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+        { "kind" : "IdRef", "name" : "'InstanceId'" },
+        { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+        { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+        { "kind" : "IdRef", "name" : "'Hit Kind'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Offset'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Stride'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" },
+        { "kind" : "IdRef", "name" : "'Current Time'" },
+        { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordHitWithIndexMotionNV",
+      "class"  : "Reserved",
+      "opcode" : 5250,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+        { "kind" : "IdRef", "name" : "'InstanceId'" },
+        { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+        { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+        { "kind" : "IdRef", "name" : "'Hit Kind'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Index'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" },
+        { "kind" : "IdRef", "name" : "'Current Time'" },
+        { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordMissMotionNV",
+      "class"  : "Reserved",
+      "opcode" : 5251,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'SBT Index'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" },
+        { "kind" : "IdRef", "name" : "'Current Time'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetWorldToObjectNV",
+      "class"  : "Reserved",
+      "opcode" : 5252,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetObjectToWorldNV",
+      "class"  : "Reserved",
+      "opcode" : 5253,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetObjectRayDirectionNV",
+      "class"  : "Reserved",
+      "opcode" : 5254,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetObjectRayOriginNV",
+      "class"  : "Reserved",
+      "opcode" : 5255,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectTraceRayMotionNV",
+      "class"  : "Reserved",
+      "opcode" : 5256,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'"},
+        { "kind" : "IdRef", "name" : "'RayFlags'"},
+        { "kind" : "IdRef", "name" : "'Cullmask'"},
+        { "kind" : "IdRef", "name" : "'SBT Record Offset'"},
+        { "kind" : "IdRef", "name" : "'SBT Record Stride'"},
+        { "kind" : "IdRef", "name" : "'Miss Index'"},
+        { "kind" : "IdRef", "name" : "'Origin'"},
+        { "kind" : "IdRef", "name" : "'TMin'"},
+        { "kind" : "IdRef", "name" : "'Direction'"},
+        { "kind" : "IdRef", "name" : "'TMax'"},
+        { "kind" : "IdRef", "name" : "'Time'"},
+        { "kind" : "IdRef", "name" : "'Payload'"}
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV", "RayTracingMotionBlurNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetShaderRecordBufferHandleNV",
+      "class"  : "Reserved",
+      "opcode" : 5257,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetShaderBindingTableRecordIndexNV",
+      "class"  : "Reserved",
+      "opcode" : 5258,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordEmptyNV",
+      "class"  : "Reserved",
+      "opcode" : 5259,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectTraceRayNV",
+      "class"  : "Reserved",
+      "opcode" : 5260,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'"},
+        { "kind" : "IdRef", "name" : "'RayFlags'"},
+        { "kind" : "IdRef", "name" : "'Cullmask'"},
+        { "kind" : "IdRef", "name" : "'SBT Record Offset'"},
+        { "kind" : "IdRef", "name" : "'SBT Record Stride'"},
+        { "kind" : "IdRef", "name" : "'Miss Index'"},
+        { "kind" : "IdRef", "name" : "'Origin'"},
+        { "kind" : "IdRef", "name" : "'TMin'"},
+        { "kind" : "IdRef", "name" : "'Direction'"},
+        { "kind" : "IdRef", "name" : "'TMax'"},
+        { "kind" : "IdRef", "name" : "'Payload'"}
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordHitNV",
+      "class"  : "Reserved",
+      "opcode" : 5261,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+        { "kind" : "IdRef", "name" : "'InstanceId'" },
+        { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+        { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+        { "kind" : "IdRef", "name" : "'Hit Kind'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Offset'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Stride'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" },
+        { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordHitWithIndexNV",
+      "class"  : "Reserved",
+      "opcode" : 5262,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Acceleration Structure'" },
+        { "kind" : "IdRef", "name" : "'InstanceId'" },
+        { "kind" : "IdRef", "name" : "'PrimitiveId'" },
+        { "kind" : "IdRef", "name" : "'GeometryIndex'" },
+        { "kind" : "IdRef", "name" : "'Hit Kind'" },
+        { "kind" : "IdRef", "name" : "'SBT Record Index'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" },
+        { "kind" : "IdRef", "name" : "'HitObject Attributes'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectRecordMissNV",
+      "class"  : "Reserved",
+      "opcode" : 5263,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'SBT Index'" },
+        { "kind" : "IdRef", "name" : "'Origin'" },
+        { "kind" : "IdRef", "name" : "'TMin'" },
+        { "kind" : "IdRef", "name" : "'Direction'" },
+        { "kind" : "IdRef", "name" : "'TMax'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectExecuteShaderNV",
+      "class"  : "Reserved",
+      "opcode" : 5264,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Payload'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetCurrentTimeNV",
+      "class"  : "Reserved",
+      "opcode" : 5265,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetAttributesNV",
+      "class"  : "Reserved",
+      "opcode" : 5266,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "name" : "'Hit Object Attribute'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetHitKindNV",
+      "class"  : "Reserved",
+      "opcode" : 5267,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetPrimitiveIndexNV",
+      "class"  : "Reserved",
+      "opcode" : 5268,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetGeometryIndexNV",
+      "class"  : "Reserved",
+      "opcode" : 5269,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetInstanceIdNV",
+      "class"  : "Reserved",
+      "opcode" : 5270,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetInstanceCustomIndexNV",
+      "class"  : "Reserved",
+      "opcode" : 5271,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetWorldRayDirectionNV",
+      "class"  : "Reserved",
+      "opcode" : 5272,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetWorldRayOriginNV",
+      "class"  : "Reserved",
+      "opcode" : 5273,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetRayTMaxNV",
+      "class"  : "Reserved",
+      "opcode" : 5274,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectGetRayTMinNV",
+      "class"  : "Reserved",
+      "opcode" : 5275,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectIsEmptyNV",
+      "class"  : "Reserved",
+      "opcode" : 5276,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectIsHitNV",
+      "class"  : "Reserved",
+      "opcode" : 5277,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpHitObjectIsMissNV",
+      "class"  : "Reserved",
+      "opcode" : 5278,
+      "operands" : [
+        { "kind" : "IdResultType"},
+        { "kind" : "IdResult"},
+        { "kind" : "IdRef", "name" : "'Hit Object'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpReorderThreadWithHitObjectNV",
+      "class"  : "Reserved",
+      "opcode" : 5279,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hit Object'" },
+        { "kind" : "IdRef", "quantifier" : "?", "name" : "'Hint'" },
+        { "kind" : "IdRef", "quantifier" : "?", "name" : "'Bits'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpReorderThreadWithHintNV",
+      "class"  : "Reserved",
+      "opcode" : 5280,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Hint'" },
+        { "kind" : "IdRef", "name" : "'Bits'" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpTypeHitObjectNV",
+      "class"  : "Type-Declaration",
+      "opcode" : 5281,
+      "operands" : [
+        { "kind" : "IdResult" }
+      ],
+      "capabilities" : [ "ShaderInvocationReorderNV" ],
       "version" : "None"
     },
     {
@@ -4821,6 +5792,38 @@
       "version" : "None"
     },
     {
+      "opname" : "OpFetchMicroTriangleVertexPositionNV",
+      "class"  : "Reserved",
+      "opcode" : 5300,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Accel'" },
+        { "kind" : "IdRef", "name" : "'Instance Id'" },
+        { "kind" : "IdRef", "name" : "'Geometry Index'" },
+        { "kind" : "IdRef", "name" : "'Primitive Index'" },
+        { "kind" : "IdRef", "name" : "'Barycentric'" }
+      ],
+      "capabilities" : [ "DisplacementMicromapNV" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpFetchMicroTriangleVertexBarycentricNV",
+      "class"  : "Reserved",
+      "opcode" : 5301,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Accel'" },
+        { "kind" : "IdRef", "name" : "'Instance Id'" },
+        { "kind" : "IdRef", "name" : "'Geometry Index'" },
+        { "kind" : "IdRef", "name" : "'Primitive Index'" },
+        { "kind" : "IdRef", "name" : "'Barycentric'" }
+      ],
+      "capabilities" : [ "DisplacementMicromapNV" ],
+      "version" : "None"
+    },
+    {
       "opname" : "OpReportIntersectionNV",
       "class"  : "Reserved",
       "opcode" : 5334,
@@ -4933,8 +5936,27 @@
       "version" : "None"
     },
     {
-      "opname" : "OpTypeAccelerationStructureNV",
+      "opname" : "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
       "class"  : "Reserved",
+      "opcode" : 5340,
+        "operands" : [
+            { "kind" : "IdResultType" },
+            { "kind" : "IdResult" },
+            {
+                "kind" : "IdRef",
+                "name" : "'RayQuery'"
+            },
+            {
+                "kind" : "IdRef",
+                "name" : "'Intersection'"
+            }
+        ],
+      "capabilities" : [ "RayQueryPositionFetchKHR" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpTypeAccelerationStructureNV",
+      "class"  : "Type-Declaration",
       "opcode" : 5341,
       "operands" : [
         { "kind" : "IdResult" }
@@ -4945,7 +5967,7 @@
     },
     {
       "opname" : "OpTypeAccelerationStructureKHR",
-      "class"  : "Reserved",
+      "class"  : "Type-Declaration",
       "opcode" : 5341,
       "operands" : [
         { "kind" : "IdResult" }
@@ -4969,7 +5991,7 @@
     },
     {
       "opname" : "OpTypeCooperativeMatrixNV",
-      "class"  : "Reserved",
+      "class"  : "Type-Declaration",
       "opcode" : 5358,
       "operands" : [
         { "kind" : "IdResult" },
@@ -8566,7 +9588,7 @@
       "operands" : [
         { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
       ],
-      "capabilities" : [ "LongConstantCompositeINTEL" ],
+      "capabilities" : [ "LongCompositesINTEL" ],
       "version" : "None"
     },
     {
@@ -8576,7 +9598,7 @@
       "operands" : [
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
       ],
-      "capabilities" : [ "LongConstantCompositeINTEL" ],
+      "capabilities" : [ "LongCompositesINTEL" ],
       "version" : "None"
     },
     {
@@ -8586,7 +9608,43 @@
       "operands" : [
         { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
       ],
-      "capabilities" : [ "LongConstantCompositeINTEL" ],
+      "capabilities" : [ "LongCompositesINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpCompositeConstructContinuedINTEL",
+      "class"  : "Composite",
+      "opcode" : 6096,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
+      ],
+      "capabilities" : [ "LongCompositesINTEL" ],
+      "version": "None"
+    },
+    {
+      "opname" : "OpConvertFToBF16INTEL",
+      "class"  : "Conversion",
+      "opcode" : 6116,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'Float Value'" }
+      ],
+      "capabilities" : [ "BFloat16ConversionINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpConvertBF16ToFINTEL",
+      "class"  : "Conversion",
+      "opcode" : 6117,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",        "name" : "'BFloat16 Value'" }
+      ],
+      "capabilities" : [ "BFloat16ConversionINTEL" ],
       "version" : "None"
     },
     {
@@ -8724,6 +9782,34 @@
       ],
       "capabilities" : [ "GroupUniformArithmeticKHR" ],
       "version" : "None"
+    },
+    {
+      "opname" : "OpMaskedGatherINTEL",
+      "class"  : "Memory",
+      "opcode" : 6428,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef",           "name" : "'PtrVector'" },
+        { "kind" : "LiteralInteger",  "name" : "'Alignment'" },
+        { "kind" : "IdRef",           "name" : "'Mask'" },
+        { "kind" : "IdRef",           "name" : "'FillEmpty'" }
+      ],
+      "capabilities" : [ "MaskedGatherScatterINTEL" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpMaskedScatterINTEL",
+      "class"  : "Memory",
+      "opcode" : 6429,
+      "operands" : [
+        { "kind" : "IdRef",           "name" : "'InputVector'" },
+        { "kind" : "IdRef",           "name" : "'PtrVector'" },
+        { "kind" : "LiteralInteger",  "name" : "'Alignment'" },
+        { "kind" : "IdRef",           "name" : "'Mask'" }
+      ],
+      "capabilities" : [ "MaskedGatherScatterINTEL" ],
+      "version" : "None"
     }
   ],
   "operand_kinds" : [
@@ -8741,14 +9827,16 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Lod",
           "value" : "0x0002",
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Grad",
@@ -8756,14 +9844,16 @@
           "parameters" : [
             { "kind" : "IdRef" },
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ConstOffset",
           "value" : "0x0008",
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Offset",
@@ -8771,7 +9861,8 @@
           "capabilities" : [ "ImageGatherExtended" ],
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ConstOffsets",
@@ -8779,14 +9870,16 @@
           "capabilities" : [ "ImageGatherExtended" ],
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Sample",
           "value" : "0x0040",
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MinLod",
@@ -8794,7 +9887,8 @@
           "capabilities" : [ "MinLod" ],
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MakeTexelAvailable",
@@ -8880,7 +9974,8 @@
           "value" : "0x10000",
           "parameters" : [
             { "kind" : "IdRef" }
-          ]
+          ],
+          "version": "1.0"
         }
       ]
     },
@@ -8890,38 +9985,62 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "NotNaN",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "version" : "1.0"
         },
         {
           "enumerant" : "NotInf",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "version" : "1.0"
         },
         {
           "enumerant" : "NSZ",
-          "value" : "0x0004"
+          "value" : "0x0004",
+          "version" : "1.0"
         },
         {
           "enumerant" : "AllowRecip",
-          "value" : "0x0008"
+          "value" : "0x0008",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Fast",
-          "value" : "0x0010"
+          "value" : "0x0010",
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "AllowContract",
+          "value" : "0x10000",
+          "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ],
+          "version" : "None"
         },
         {
           "enumerant" : "AllowContractFastINTEL",
           "value" : "0x10000",
-          "capabilities" : [ "FPFastMathModeINTEL" ],
+          "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "AllowReassoc",
+          "value" : "0x20000",
+          "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ],
           "version" : "None"
         },
         {
           "enumerant" : "AllowReassocINTEL",
           "value" : "0x20000",
-          "capabilities" : [ "FPFastMathModeINTEL" ],
+          "capabilities" : [ "FloatControls2", "FPFastMathModeINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "AllowTransform",
+          "value" : "0x40000",
+          "capabilities" : [ "FloatControls2" ],
           "version" : "None"
         }
       ]
@@ -8932,15 +10051,18 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Flatten",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "version" : "1.0"
         },
         {
           "enumerant" : "DontFlatten",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "version" : "1.0"
         }
       ]
     },
@@ -8950,15 +10072,18 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Unroll",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "version" : "1.0"
         },
         {
           "enumerant" : "DontUnroll",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "version" : "1.0"
         },
         {
           "enumerant" : "DependencyInfinite",
@@ -9020,7 +10145,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9030,7 +10154,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9040,7 +10163,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9050,7 +10172,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9060,7 +10181,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9070,7 +10190,6 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
@@ -9080,17 +10199,30 @@
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
           "version" : "None"
         },
         {
           "enumerant" : "NoFusionINTEL",
           "value" : "0x800000",
+          "capabilities" : [ "FPGALoopControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "LoopCountINTEL",
+          "value" : "0x1000000",
           "parameters" : [
             { "kind" : "LiteralInteger" }
           ],
           "capabilities" : [ "FPGALoopControlsINTEL" ],
-          "extensions" : [ "SPV_INTEL_fpga_loop_controls" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MaxReinvocationDelayINTEL",
+          "value" : "0x2000000",
+          "parameters" : [
+            { "kind" : "LiteralInteger" }
+          ],
+          "capabilities" : [ "FPGALoopControlsINTEL" ],
           "version" : "None"
         }
       ]
@@ -9101,23 +10233,28 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Inline",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "version" : "1.0"
         },
         {
           "enumerant" : "DontInline",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Pure",
-          "value" : "0x0004"
+          "value" : "0x0004",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Const",
-          "value" : "0x0008"
+          "value" : "0x0008",
+          "version" : "1.0"
         },
         {
           "enumerant" : "OptNoneINTEL",
@@ -9133,53 +10270,65 @@
       "enumerants" : [
         {
           "enumerant" : "Relaxed",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Acquire",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Release",
-          "value" : "0x0004"
+          "value" : "0x0004",
+          "version" : "1.0"
         },
         {
           "enumerant" : "AcquireRelease",
-          "value" : "0x0008"
+          "value" : "0x0008",
+          "version" : "1.0"
         },
         {
           "enumerant" : "SequentiallyConsistent",
-          "value" : "0x0010"
+          "value" : "0x0010",
+          "version" : "1.0"
         },
         {
           "enumerant" : "UniformMemory",
           "value" : "0x0040",
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupMemory",
-          "value" : "0x0080"
+          "value" : "0x0080",
+          "version" : "1.0"
         },
         {
           "enumerant" : "WorkgroupMemory",
-          "value" : "0x0100"
+          "value" : "0x0100",
+          "version" : "1.0"
         },
         {
           "enumerant" : "CrossWorkgroupMemory",
-          "value" : "0x0200"
+          "value" : "0x0200",
+          "version" : "1.0"
         },
         {
           "enumerant" : "AtomicCounterMemory",
           "value" : "0x0400",
-          "capabilities" : [ "AtomicStorage" ]
+          "capabilities" : [ "AtomicStorage" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageMemory",
-          "value" : "0x0800"
+          "value" : "0x0800",
+          "version" : "1.0"
         },
         {
           "enumerant" : "OutputMemory",
@@ -9235,22 +10384,26 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Volatile",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "version" : "1.0"
         },
         {
           "enumerant" : "Aligned",
           "value" : "0x0002",
           "parameters" : [
             { "kind" : "LiteralInteger" }
-          ]
+          ],
+          "version" : "1.0"
         },
         {
           "enumerant" : "Nontemporal",
-          "value" : "0x0004"
+          "value" : "0x0004",
+          "version" : "1.0"
         },
         {
           "enumerant" : "MakePointerAvailable",
@@ -9331,12 +10484,14 @@
       "enumerants" : [
         {
           "enumerant" : "None",
-          "value" : "0x0000"
+          "value" : "0x0000",
+          "version" : "1.0"
         },
         {
           "enumerant" : "CmdExecTime",
           "value" : "0x0001",
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         }
       ]
     },
@@ -9409,6 +10564,12 @@
           "value" : "0x0200",
           "capabilities" : [ "RayTraversalPrimitiveCullingKHR" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "ForceOpacityMicromap2StateEXT",
+          "value" : "0x0400",
+          "capabilities" : [ "RayTracingOpacityMicromapEXT" ],
+          "version" : "None"
         }
       ]
     },
@@ -9448,35 +10609,68 @@
       "enumerants" : [
         {
           "enumerant" : "Unknown",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "ESSL",
-          "value" : 1
+          "value" : 1,
+          "version" : "1.0"
         },
         {
           "enumerant" : "GLSL",
-          "value" : 2
+          "value" : 2,
+          "version" : "1.0"
         },
         {
           "enumerant" : "OpenCL_C",
-          "value" : 3
+          "value" : 3,
+          "version" : "1.0"
         },
         {
           "enumerant" : "OpenCL_CPP",
-          "value" : 4
+          "value" : 4,
+          "version" : "1.0"
         },
         {
           "enumerant" : "HLSL",
-          "value" : 5
+          "value" : 5,
+          "version" : "1.0"
         },
         {
           "enumerant" : "CPP_for_OpenCL",
-          "value" : 6
+          "value" : 6,
+          "version" : "1.0"
         },
         {
           "enumerant" : "SYCL",
-          "value" : 7
+          "value" : 7,
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "HERO_C",
+          "value" : 8,
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "NZSL",
+          "value" : 9,
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "WGSL",
+          "value" : 10,
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "Slang",
+          "value" : 11,
+          "version" : "1.0"
+        },
+        {
+          "enumerant" : "Zig",
+          "value" : 12,
+          "version" : "1.0"
         }
       ]
     },
@@ -9487,37 +10681,44 @@
         {
           "enumerant" : "Vertex",
           "value" : 0,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TessellationControl",
           "value" : 1,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TessellationEvaluation",
           "value" : 2,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Geometry",
           "value" : 3,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Fragment",
           "value" : 4,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GLCompute",
           "value" : 5,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Kernel",
           "value" : 6,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TaskNV",
@@ -9623,17 +10824,20 @@
       "enumerants" : [
         {
           "enumerant" : "Logical",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Physical32",
           "value" : 1,
-          "capabilities" : [ "Addresses" ]
+          "capabilities" : [ "Addresses" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Physical64",
           "value" : 2,
-          "capabilities" : [ "Addresses" ]
+          "capabilities" : [ "Addresses" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PhysicalStorageBuffer64",
@@ -9658,17 +10862,20 @@
         {
           "enumerant" : "Simple",
           "value" : 0,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GLSL450",
           "value" : 1,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OpenCL",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Vulkan",
@@ -9695,82 +10902,98 @@
           "capabilities" : [ "Geometry" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SpacingEqual",
           "value" : 1,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SpacingFractionalEven",
           "value" : 2,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SpacingFractionalOdd",
           "value" : 3,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "VertexOrderCw",
           "value" : 4,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "VertexOrderCcw",
           "value" : 5,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PixelCenterInteger",
           "value" : 6,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OriginUpperLeft",
           "value" : 7,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OriginLowerLeft",
           "value" : 8,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "EarlyFragmentTests",
           "value" : 9,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PointMode",
           "value" : 10,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Xfb",
           "value" : 11,
-          "capabilities" : [ "TransformFeedback" ]
+          "capabilities" : [ "TransformFeedback" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DepthReplacing",
           "value" : 12,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DepthGreater",
           "value" : 14,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DepthLess",
           "value" : 15,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DepthUnchanged",
           "value" : 16,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "LocalSize",
@@ -9779,7 +11002,8 @@
             { "kind" : "LiteralInteger", "name" : "'x size'" },
             { "kind" : "LiteralInteger", "name" : "'y size'" },
             { "kind" : "LiteralInteger", "name" : "'z size'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "LocalSizeHint",
@@ -9789,42 +11013,50 @@
             { "kind" : "LiteralInteger", "name" : "'x size'" },
             { "kind" : "LiteralInteger", "name" : "'y size'" },
             { "kind" : "LiteralInteger", "name" : "'z size'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InputPoints",
           "value" : 19,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InputLines",
           "value" : 20,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InputLinesAdjacency",
           "value" : 21,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Triangles",
           "value" : 22,
-          "capabilities" : [ "Geometry", "Tessellation" ]
+          "capabilities" : [ "Geometry", "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InputTrianglesAdjacency",
           "value" : 23,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Quads",
           "value" : 24,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Isolines",
           "value" : 25,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OutputVertices",
@@ -9832,22 +11064,26 @@
           "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV", "MeshShadingEXT" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OutputPoints",
           "value" : 27,
-          "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ]
+          "capabilities" : [ "Geometry", "MeshShadingNV", "MeshShadingEXT" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OutputLineStrip",
           "value" : 28,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "OutputTriangleStrip",
           "value" : 29,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "VecTypeHint",
@@ -9855,12 +11091,14 @@
           "capabilities" : [ "Kernel" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Vector type'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ContractionOff",
           "value" : 31,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Initializer",
@@ -9923,6 +11161,24 @@
           "version" : "1.2"
         },
         {
+          "enumerant" : "NonCoherentColorAttachmentReadEXT",
+          "value" : 4169,
+          "capabilities" : [ "TileImageColorReadAccessEXT" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NonCoherentDepthAttachmentReadEXT",
+          "value" : 4170,
+          "capabilities" : [ "TileImageDepthReadAccessEXT" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NonCoherentStencilAttachmentReadEXT",
+          "value" : 4171,
+          "capabilities" : [ "TileImageStencilReadAccessEXT" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "SubgroupUniformControlFlowKHR",
           "value" : 4421,
           "capabilities" : [ "Shader" ],
@@ -10001,6 +11257,52 @@
           "version" : "None"
         },
         {
+          "enumerant" : "CoalescingAMDX",
+          "value" : 5069,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MaxNodeRecursionAMDX",
+          "value" : 5071,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'Number of recursions'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StaticNumWorkgroupsAMDX",
+          "value" : 5072,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'x size'" },
+            { "kind" : "IdRef", "name" : "'y size'" },
+            { "kind" : "IdRef", "name" : "'z size'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ShaderIndexAMDX",
+          "value" : 5073,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'Shader Index'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MaxNumWorkgroupsAMDX",
+          "value" : 5077,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'x size'" },
+            { "kind" : "IdRef", "name" : "'y size'" },
+            { "kind" : "IdRef", "name" : "'z size'" }
+          ],
+          "version" : "None"
+        },
+        {
           "enumerant": "StencilRefUnchangedFrontAMD",
           "value": 5079,
           "capabilities": [ "StencilExportEXT" ],
@@ -10043,6 +11345,18 @@
           "version": "None"
         },
         {
+          "enumerant": "QuadDerivativesKHR",
+          "value": 5088,
+          "capabilities": [ "QuadControlKHR" ],
+          "version": "None"
+        },
+        {
+          "enumerant" : "RequireFullQuadsKHR",
+          "value" : 5089,
+          "capabilities" : [ "QuadControlKHR" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "OutputLinesNV",
           "value" : 5269,
           "capabilities" : [ "MeshShadingNV", "MeshShadingEXT" ],
@@ -10240,6 +11554,41 @@
           "version" : "None"
         },
         {
+          "enumerant" : "MaximallyReconvergesKHR",
+          "value" : 6023,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_maximal_reconvergence" ],
+          "version" : "None"
+	},
+	{
+          "enumerant" : "FPFastMathDefault",
+          "value" : 6028,
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'Target Type'" },
+            { "kind" : "IdRef", "name" : "'Fast-Math Mode'" }
+	        ],
+          "capabilities" : [ "FloatControls2" ],
+          "version" : "None"
+	},
+	{
+          "enumerant" : "StreamingInterfaceINTEL",
+          "value" : 6154,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'StallFreeReturn'" }
+          ],
+          "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "RegisterMapInterfaceINTEL",
+          "value" : 6160,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'WaitForDoneWrite'" }
+          ],
+          "capabilities" : [ "FPGAKernelAttributesv2INTEL" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "NamedBarrierCountINTEL",
           "value" : 6417,
           "parameters" : [
@@ -10256,57 +11605,69 @@
       "enumerants" : [
         {
           "enumerant" : "UniformConstant",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Input",
-          "value" : 1
+          "value" : 1,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Uniform",
           "value" : 2,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Output",
           "value" : 3,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Workgroup",
-          "value" : 4
+          "value" : 4,
+          "version" : "1.0"
         },
         {
           "enumerant" : "CrossWorkgroup",
-          "value" : 5
+          "value" : 5,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Private",
           "value" : 6,
-          "capabilities" : [ "Shader", "VectorComputeINTEL" ]
+          "capabilities" : [ "Shader", "VectorComputeINTEL" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Function",
-          "value" : 7
+          "value" : 7,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Generic",
           "value" : 8,
-          "capabilities" : [ "GenericPointer" ]
+          "capabilities" : [ "GenericPointer" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PushConstant",
           "value" : 9,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "AtomicCounter",
           "value" : 10,
-          "capabilities" : [ "AtomicStorage" ]
+          "capabilities" : [ "AtomicStorage" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Image",
-          "value" : 11
+          "value" : 11,
+          "version" : "1.0"
         },
         {
           "enumerant" : "StorageBuffer",
@@ -10319,6 +11680,24 @@
           "version" : "1.3"
         },
         {
+          "enumerant" : "TileImageEXT",
+          "value" : 4172,
+          "capabilities" : [ "TileImageColorReadAccessEXT" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NodePayloadAMDX",
+          "value" : 5068,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NodeOutputPayloadAMDX",
+          "value" : 5076,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "CallableDataNV",
           "value" : 5328,
           "extensions" : [ "SPV_NV_ray_tracing" , "SPV_KHR_ray_tracing" ],
@@ -10417,6 +11796,12 @@
           "version" : "1.5"
         },
         {
+          "enumerant" : "HitObjectAttributeNV",
+          "value" : 5385,
+          "capabilities" : [ "ShaderInvocationReorderNV" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "TaskPayloadWorkgroupEXT",
           "value" : 5402,
           "extensions" : [ "SPV_EXT_mesh_shader" ],
@@ -10457,36 +11842,48 @@
         {
           "enumerant" : "1D",
           "value" : 0,
-          "capabilities" : [ "Sampled1D", "Image1D" ]
+          "capabilities" : [ "Sampled1D" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "2D",
           "value" : 1,
-          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
+          "version" : "1.0"
         },
         {
           "enumerant" : "3D",
-          "value" : 2
+          "value" : 2,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Cube",
           "value" : 3,
-          "capabilities" : [ "Shader", "ImageCubeArray" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rect",
           "value" : 4,
-          "capabilities" : [ "SampledRect", "ImageRect" ]
+          "capabilities" : [ "SampledRect" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Buffer",
           "value" : 5,
-          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
+          "capabilities" : [ "SampledBuffer" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubpassData",
           "value" : 6,
-          "capabilities" : [ "InputAttachment" ]
+          "capabilities" : [ "InputAttachment" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "TileImageDataEXT",
+          "value" : 4173,
+          "capabilities" : [ "TileImageColorReadAccessEXT" ],
+          "version" : "None"
         }
       ]
     },
@@ -10497,27 +11894,27 @@
         {
           "enumerant" : "None",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         },
         {
           "enumerant" : "ClampToEdge",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         },
         {
           "enumerant" : "Clamp",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         },
         {
           "enumerant" : "Repeat",
           "value" : 3,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         },
         {
           "enumerant" : "RepeatMirrored",
           "value" : 4,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         }
       ]
     },
@@ -10528,12 +11925,12 @@
         {
           "enumerant" : "Nearest",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         },
         {
           "enumerant" : "Linear",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "version": "1.0"
         }
       ]
     },
@@ -10543,212 +11940,254 @@
       "enumerants" : [
         {
           "enumerant" : "Unknown",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Rgba32f",
           "value" : 1,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba16f",
           "value" : 2,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R32f",
           "value" : 3,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba8",
           "value" : 4,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba8Snorm",
           "value" : 5,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg32f",
           "value" : 6,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg16f",
           "value" : 7,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R11fG11fB10f",
           "value" : 8,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R16f",
           "value" : 9,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba16",
           "value" : 10,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgb10A2",
           "value" : 11,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg16",
           "value" : 12,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg8",
           "value" : 13,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R16",
           "value" : 14,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R8",
           "value" : 15,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba16Snorm",
           "value" : 16,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg16Snorm",
           "value" : 17,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg8Snorm",
           "value" : 18,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R16Snorm",
           "value" : 19,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R8Snorm",
           "value" : 20,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba32i",
           "value" : 21,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba16i",
           "value" : 22,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba8i",
           "value" : 23,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R32i",
           "value" : 24,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg32i",
           "value" : 25,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg16i",
           "value" : 26,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg8i",
           "value" : 27,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R16i",
           "value" : 28,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R8i",
           "value" : 29,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba32ui",
           "value" : 30,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba16ui",
           "value" : 31,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgba8ui",
           "value" : 32,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R32ui",
           "value" : 33,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rgb10a2ui",
           "value" : 34,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg32ui",
           "value" : 35,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg16ui",
           "value" : 36,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rg8ui",
           "value" : 37,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R16ui",
           "value" : 38,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R8ui",
           "value" : 39,
-          "capabilities" : [ "StorageImageExtendedFormats" ]
+          "capabilities" : [ "StorageImageExtendedFormats" ],
+          "version": "1.0"
         },
-	{
+        {
           "enumerant" : "R64ui",
           "value" : 40,
-          "capabilities" : [ "Int64ImageEXT" ]
+          "capabilities" : [ "Int64ImageEXT" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "R64i",
           "value" : 41,
-          "capabilities" : [ "Int64ImageEXT" ]
+          "capabilities" : [ "Int64ImageEXT" ],
+          "version": "1.0"
         }
       ]
     },
@@ -10759,102 +12198,122 @@
         {
           "enumerant" : "R",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "A",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RG",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RA",
           "value" : 3,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RGB",
           "value" : 4,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RGBA",
           "value" : 5,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "BGRA",
           "value" : 6,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ARGB",
           "value" : 7,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Intensity",
           "value" : 8,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Luminance",
           "value" : 9,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Rx",
           "value" : 10,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RGx",
           "value" : 11,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "RGBx",
           "value" : 12,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Depth",
           "value" : 13,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DepthStencil",
           "value" : 14,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "sRGB",
           "value" : 15,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "sRGBx",
           "value" : 16,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "sRGBA",
           "value" : 17,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "sBGRA",
           "value" : 18,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ABGR",
           "value" : 19,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         }
       ]
     },
@@ -10865,87 +12324,116 @@
         {
           "enumerant" : "SnormInt8",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SnormInt16",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormInt8",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormInt16",
           "value" : 3,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormShort565",
           "value" : 4,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormShort555",
           "value" : 5,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormInt101010",
           "value" : 6,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SignedInt8",
           "value" : 7,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SignedInt16",
           "value" : 8,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SignedInt32",
           "value" : 9,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnsignedInt8",
           "value" : 10,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnsignedInt16",
           "value" : 11,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnsignedInt32",
           "value" : 12,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "HalfFloat",
           "value" : 13,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Float",
           "value" : 14,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormInt24",
           "value" : 15,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UnormInt101010_2",
           "value" : 16,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "UnsignedIntRaw10EXT",
+          "value" : 19,
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "UnsignedIntRaw12EXT",
+          "value" : 20,
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         }
       ]
     },
@@ -10955,19 +12443,23 @@
       "enumerants" : [
         {
           "enumerant" : "RTE",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "RTZ",
-          "value" : 1
+          "value" : 1,
+          "version" : "1.0"
         },
         {
           "enumerant" : "RTP",
-          "value" : 2
+          "value" : 2,
+          "version" : "1.0"
         },
         {
           "enumerant" : "RTN",
-          "value" : 3
+          "value" : 3,
+          "version" : "1.0"
         }
       ]
     },
@@ -10986,7 +12478,7 @@
           "value" : 1,
           "capabilities" : [ "FunctionFloatControlINTEL" ],
           "version" : "None"
-	}
+        }
       ]
     },
     {
@@ -11098,12 +12590,14 @@
         {
           "enumerant" : "Export",
           "value" : 0,
-          "capabilities" : [ "Linkage" ]
+          "capabilities" : [ "Linkage" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Import",
           "value" : 1,
-          "capabilities" : [ "Linkage" ]
+          "capabilities" : [ "Linkage" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "LinkOnceODR",
@@ -11121,17 +12615,50 @@
         {
           "enumerant" : "ReadOnly",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "WriteOnly",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ReadWrite",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "HostAccessQualifier",
+      "enumerants" : [
+        {
+          "enumerant" : "NoneINTEL",
+          "value" : 0,
+          "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ReadINTEL",
+          "value" : 1,
+          "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "WriteINTEL",
+          "value" : 2,
+          "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ReadWriteINTEL",
+          "value" : 3,
+          "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+          "version" : "None"
         }
       ]
     },
@@ -11142,42 +12669,56 @@
         {
           "enumerant" : "Zext",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Sext",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ByVal",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Sret",
           "value" : 3,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoAlias",
           "value" : 4,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoCapture",
           "value" : 5,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoWrite",
           "value" : 6,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoReadWrite",
           "value" : 7,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "RuntimeAlignedINTEL",
+          "value" : 5940,
+          "capabilities" : [ "RuntimeAlignedAttributeINTEL" ],
+          "version": "1.0"
         }
       ]
     },
@@ -11188,7 +12729,8 @@
         {
           "enumerant" : "RelaxedPrecision",
           "value" : 0,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SpecId",
@@ -11196,28 +12738,33 @@
           "capabilities" : [ "Shader", "Kernel" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Block",
           "value" : 2,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "BufferBlock",
           "value" : 3,
           "capabilities" : [ "Shader" ],
+          "version": "1.0",
           "lastVersion" : "1.3"
         },
         {
           "enumerant" : "RowMajor",
           "value" : 4,
-          "capabilities" : [ "Matrix" ]
+          "capabilities" : [ "Matrix" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ColMajor",
           "value" : 5,
-          "capabilities" : [ "Matrix" ]
+          "capabilities" : [ "Matrix" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ArrayStride",
@@ -11225,7 +12772,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MatrixStride",
@@ -11233,93 +12781,112 @@
           "capabilities" : [ "Matrix" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GLSLShared",
           "value" : 8,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GLSLPacked",
           "value" : 9,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "CPacked",
           "value" : 10,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "BuiltIn",
           "value" : 11,
           "parameters" : [
             { "kind" : "BuiltIn" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoPerspective",
           "value" : 13,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Flat",
           "value" : 14,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Patch",
           "value" : 15,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Centroid",
           "value" : 16,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Sample",
           "value" : 17,
-          "capabilities" : [ "SampleRateShading" ]
+          "capabilities" : [ "SampleRateShading" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Invariant",
           "value" : 18,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Restrict",
-          "value" : 19
+          "value" : 19,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Aliased",
-          "value" : 20
+          "value" : 20,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Volatile",
-          "value" : 21
+          "value" : 21,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Constant",
           "value" : 22,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Coherent",
-          "value" : 23
+          "value" : 23,
+          "version": "1.0"
         },
         {
           "enumerant" : "NonWritable",
-          "value" : 24
+          "value" : 24,
+          "version": "1.0"
         },
         {
           "enumerant" : "NonReadable",
-          "value" : 25
+          "value" : 25,
+          "version": "1.0"
         },
         {
           "enumerant" : "Uniform",
           "value" : 26,
-          "capabilities" : [ "Shader", "UniformDecoration" ]
+          "capabilities" : [ "Shader", "UniformDecoration" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UniformId",
@@ -11333,7 +12900,8 @@
         {
           "enumerant" : "SaturatedConversion",
           "value" : 28,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Stream",
@@ -11341,7 +12909,8 @@
           "capabilities" : [ "GeometryStreams" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Location",
@@ -11349,7 +12918,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Location'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Component",
@@ -11357,7 +12927,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Component'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Index",
@@ -11365,7 +12936,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Index'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Binding",
@@ -11373,7 +12945,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DescriptorSet",
@@ -11381,7 +12954,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Offset",
@@ -11389,7 +12963,8 @@
           "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "XfbBuffer",
@@ -11397,7 +12972,8 @@
           "capabilities" : [ "TransformFeedback" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "XfbStride",
@@ -11405,7 +12981,8 @@
           "capabilities" : [ "TransformFeedback" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FuncParamAttr",
@@ -11413,22 +12990,25 @@
           "capabilities" : [ "Kernel" ],
           "parameters" : [
             { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FPRoundingMode",
           "value" : 39,
           "parameters" : [
             { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FPFastMathMode",
           "value" : 40,
-          "capabilities" : [ "Kernel" ],
+          "capabilities" : [ "Kernel", "FloatControls2" ],
           "parameters" : [
             { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "LinkageAttributes",
@@ -11437,12 +13017,14 @@
           "parameters" : [
             { "kind" : "LiteralString", "name" : "'Name'" },
             { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NoContraction",
           "value" : 42,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InputAttachmentIndex",
@@ -11450,7 +13032,8 @@
           "capabilities" : [ "InputAttachment" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Alignment",
@@ -11458,7 +13041,8 @@
           "capabilities" : [ "Kernel" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Alignment'" }
-          ]
+          ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MaxByteOffset",
@@ -11500,12 +13084,57 @@
           "version" : "1.4"
         },
         {
+          "enumerant" : "WeightTextureQCOM",
+          "value" : 4487,
+          "extensions" : [ "SPV_QCOM_image_processing" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "BlockMatchTextureQCOM",
+          "value" : 4488,
+          "extensions" : [ "SPV_QCOM_image_processing" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "ExplicitInterpAMD",
           "value" : 4999,
           "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
           "version" : "None"
         },
         {
+          "enumerant" : "NodeSharesPayloadLimitsWithAMDX",
+          "value" : 5019,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'Payload Array'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "NodeMaxPayloadsAMDX",
+          "value" : 5020,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "IdRef", "name" : "'Max number of payloads'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TrackFinishWritingAMDX",
+          "value" : 5078,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PayloadNodeNameAMDX",
+          "value" : 5091,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "parameters" : [
+            { "kind" : "LiteralString", "name" : "'Node Name'" }
+          ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "OverrideCoverageNV",
           "value" : 5248,
           "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
@@ -11619,6 +13248,12 @@
           "version" : "1.5"
         },
         {
+          "enumerant" : "HitObjectShaderRecordBufferNV",
+          "value" : 5386,
+          "capabilities" : [ "ShaderInvocationReorderNV" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BindlessSamplerNV",
           "value" : 5398,
           "capabilities" : [ "BindlessTextureNV" ],
@@ -11882,6 +13517,30 @@
           "version" : "None"
         },
         {
+          "enumerant" : "StridesizeINTEL",
+          "value" : 5883,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Stride Size'" }
+          ],
+          "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "WordsizeINTEL",
+          "value" : 5884,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Word Size'" }
+          ],
+          "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TrueDualPortINTEL",
+          "value" : 5885,
+          "capabilities" : [ "FPGAMemoryAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BurstCoalesceINTEL",
           "value" : 5899,
           "capabilities" : [ "FPGAMemoryAccessesINTEL" ],
@@ -11924,6 +13583,16 @@
           "version" : "None"
         },
         {
+          "enumerant" : "MathOpDSPModeINTEL",
+          "value" : 5909,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Mode'" },
+            { "kind" : "LiteralInteger", "name" : "'Propagate'" }
+          ],
+          "capabilities" : [ "FPGADSPControlINTEL" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "AliasScopeINTEL",
           "value" : 5914,
           "parameters" : [
@@ -11942,6 +13611,33 @@
           "version" : "None"
         },
         {
+          "enumerant" : "InitiationIntervalINTEL",
+          "value" : 5917,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Cycles'" }
+          ],
+          "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MaxConcurrencyINTEL",
+          "value" : 5918,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Invocations'" }
+          ],
+          "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PipelineEnableINTEL",
+          "value" : 5919,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Enable'" }
+          ],
+          "capabilities" : [ "FPGAInvocationPipeliningAttributesINTEL" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BufferLocationINTEL",
           "value" : 5921,
           "parameters" : [
@@ -11986,6 +13682,161 @@
           "value" : 6140,
           "capabilities" : [ "VectorComputeINTEL" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "StallFreeINTEL",
+          "value" : 6151,
+          "capabilities" : [ "FPGAClusterAttributesV2INTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPMaxErrorDecorationINTEL",
+          "value" : 6170,
+          "parameters" : [
+            { "kind" : "LiteralFloat", "name" : "'Max Error'" }
+          ],
+          "capabilities" : [ "FPMaxErrorINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "LatencyControlLabelINTEL",
+          "value" : 6172,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Latency Label'" }
+          ],
+          "capabilities" : [ "FPGALatencyControlINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "LatencyControlConstraintINTEL",
+          "value" : 6173,
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Relative To'" },
+            { "kind" : "LiteralInteger", "name" : "'Control Type'" },
+            { "kind" : "LiteralInteger", "name" : "'Relative Cycle'" }
+          ],
+          "capabilities" : [ "FPGALatencyControlINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ConduitKernelArgumentINTEL",
+          "value" : 6175,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "RegisterMapKernelArgumentINTEL",
+          "value" : 6176,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceAddressWidthINTEL",
+          "value" : 6177,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'AddressWidth'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceDataWidthINTEL",
+          "value" : 6178,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'DataWidth'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceLatencyINTEL",
+          "value" : 6179,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Latency'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceReadWriteModeINTEL",
+          "value" : 6180,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "AccessQualifier", "name" : "'ReadWriteMode'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceMaxBurstINTEL",
+          "value" : 6181,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'MaxBurstCount'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MMHostInterfaceWaitRequestINTEL",
+          "value" : 6182,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Waitrequest'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StableKernelArgumentINTEL",
+          "value" : 6183,
+          "capabilities" : [ "FPGAArgumentInterfacesINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "HostAccessINTEL",
+          "value" : 6188,
+          "parameters": [
+            { "kind" : "HostAccessQualifier", "name" : "'Access'" },
+            { "kind" : "LiteralString", "name" : "'Name'" }
+          ],
+          "capabilities" : [ "GlobalVariableHostAccessINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "InitModeINTEL",
+          "value" : 6190,
+          "parameters": [
+            { "kind" : "InitializationModeQualifier", "name" : "'Trigger'" }
+          ],
+          "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ImplementInRegisterMapINTEL",
+          "value" : 6191,
+          "parameters": [
+            { "kind" : "LiteralInteger", "name" : "Value" }
+          ],
+          "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "CacheControlLoadINTEL",
+          "value" : 6442,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Cache Level'" },
+            { "kind" : "LoadCacheControl", "name" : "'Cache Control'" }
+          ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "CacheControlStoreINTEL",
+          "value" : 6443,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Cache Level'" },
+            { "kind" : "StoreCacheControl", "name" : "'Cache Control'" }
+          ],
+          "version" : "None"
         }
       ]
     },
@@ -11996,201 +13847,272 @@
         {
           "enumerant" : "Position",
           "value" : 0,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PointSize",
           "value" : 1,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ClipDistance",
           "value" : 3,
-          "capabilities" : [ "ClipDistance" ]
+          "capabilities" : [ "ClipDistance" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "CullDistance",
           "value" : 4,
-          "capabilities" : [ "CullDistance" ]
+          "capabilities" : [ "CullDistance" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "VertexId",
           "value" : 5,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InstanceId",
           "value" : 6,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PrimitiveId",
           "value" : 7,
-          "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ]
+          "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV", "RayTracingKHR", "MeshShadingNV", "MeshShadingEXT" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InvocationId",
           "value" : 8,
-          "capabilities" : [ "Geometry", "Tessellation" ]
+          "capabilities" : [ "Geometry", "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Layer",
           "value" : 9,
-          "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+          "capabilities" : [ "Geometry", "ShaderLayer", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ViewportIndex",
           "value" : 10,
-          "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ]
+          "capabilities" : [ "MultiViewport", "ShaderViewportIndex", "ShaderViewportIndexLayerEXT", "MeshShadingNV", "MeshShadingEXT" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TessLevelOuter",
           "value" : 11,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TessLevelInner",
           "value" : 12,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TessCoord",
           "value" : 13,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PatchVertices",
           "value" : 14,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FragCoord",
           "value" : 15,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "PointCoord",
           "value" : 16,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FrontFacing",
           "value" : 17,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampleId",
           "value" : 18,
-          "capabilities" : [ "SampleRateShading" ]
+          "capabilities" : [ "SampleRateShading" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SamplePosition",
           "value" : 19,
-          "capabilities" : [ "SampleRateShading" ]
+          "capabilities" : [ "SampleRateShading" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampleMask",
           "value" : 20,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "FragDepth",
           "value" : 22,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "HelperInvocation",
           "value" : 23,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NumWorkgroups",
-          "value" : 24
+          "value" : 24,
+          "version" : "1.0"
         },
         {
           "enumerant" : "WorkgroupSize",
-          "value" : 25
+          "value" : 25,
+          "version" : "1.0"
         },
         {
           "enumerant" : "WorkgroupId",
-          "value" : 26
+          "value" : 26,
+          "version" : "1.0"
         },
         {
           "enumerant" : "LocalInvocationId",
-          "value" : 27
+          "value" : 27,
+          "version" : "1.0"
         },
         {
           "enumerant" : "GlobalInvocationId",
-          "value" : 28
+          "value" : 28,
+          "version" : "1.0"
         },
         {
           "enumerant" : "LocalInvocationIndex",
-          "value" : 29
+          "value" : 29,
+          "version" : "1.0"
         },
         {
           "enumerant" : "WorkDim",
           "value" : 30,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GlobalSize",
           "value" : 31,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "EnqueuedWorkgroupSize",
           "value" : 32,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GlobalOffset",
           "value" : 33,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GlobalLinearId",
           "value" : 34,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupSize",
           "value" : 36,
-          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupMaxSize",
           "value" : 37,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NumSubgroups",
           "value" : 38,
-          "capabilities" : [ "Kernel", "GroupNonUniform" ]
+          "capabilities" : [ "Kernel", "GroupNonUniform" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "NumEnqueuedSubgroups",
           "value" : 39,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupId",
           "value" : 40,
-          "capabilities" : [ "Kernel", "GroupNonUniform" ]
+          "capabilities" : [ "Kernel", "GroupNonUniform" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupLocalInvocationId",
           "value" : 41,
-          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
+          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "VertexIndex",
           "value" : 42,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InstanceIndex",
           "value" : 43,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "CoreIDARM",
+          "value" : 4160,
+          "capabilities" : [ "CoreBuiltinsARM" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "CoreCountARM",
+          "value" : 4161,
+          "capabilities" : [ "CoreBuiltinsARM" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "CoreMaxIDARM",
+          "value" : 4162,
+          "capabilities" : [ "CoreBuiltinsARM" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "WarpIDARM",
+          "value" : 4163,
+          "capabilities" : [ "CoreBuiltinsARM" ],
+          "version": "1.0"
+        },
+        {
+          "enumerant" : "WarpMaxIDARM",
+          "value" : 4164,
+          "capabilities" : [ "CoreBuiltinsARM" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupEqMask",
@@ -12356,6 +14278,18 @@
           "version" : "None"
         },
         {
+          "enumerant" : "CoalescedInputCountAMDX",
+          "value" : 5021,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ShaderIndexAMDX",
+          "value" : 5073,
+          "capabilities" : [ "ShaderEnqueueAMDX" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "ViewportMaskNV",
           "value" : 5253,
           "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
@@ -12720,6 +14654,24 @@
           "version" : "None"
         },
         {
+          "enumerant" : "HitTriangleVertexPositionsKHR",
+          "value" : 5335,
+          "capabilities" : [ "RayTracingPositionFetchKHR" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "HitMicroTriangleVertexPositionsNV",
+          "value" : 5337,
+          "capabilities" : [ "RayTracingDisplacementMicromapNV" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "HitMicroTriangleVertexBarycentricsNV",
+          "value" : 5344,
+          "capabilities" : [ "RayTracingDisplacementMicromapNV" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "IncomingRayFlagsNV",
           "value" : 5351,
           "capabilities" : [ "RayTracingNV" , "RayTracingKHR" ],
@@ -12769,6 +14721,18 @@
           "version" : "None"
         },
         {
+          "enumerant" : "HitKindFrontFacingMicroTriangleNV",
+          "value" : 5405,
+          "capabilities" : [ "RayTracingDisplacementMicromapNV" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "HitKindBackFacingMicroTriangleNV",
+          "value" : 5406,
+          "capabilities" : [ "RayTracingDisplacementMicromapNV" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "CullMaskKHR",
           "value"  : 6021,
           "capabilities" : [ "RayCullMaskKHR" ],
@@ -12783,23 +14747,28 @@
       "enumerants" : [
         {
           "enumerant" : "CrossDevice",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Device",
-          "value" : 1
+          "value" : 1,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Workgroup",
-          "value" : 2
+          "value" : 2,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Subgroup",
-          "value" : 3
+          "value" : 3,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Invocation",
-          "value" : 4
+          "value" : 4,
+          "version" : "1.0"
         },
         {
           "enumerant" : "QueueFamily",
@@ -12828,17 +14797,20 @@
         {
           "enumerant" : "Reduce",
           "value" : 0,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InclusiveScan",
           "value" : 1,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ExclusiveScan",
           "value" : 2,
-          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
+          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ClusteredReduce",
@@ -12876,17 +14848,20 @@
         {
           "enumerant" : "NoWait",
           "value" : 0,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "WaitKernel",
           "value" : 1,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "WaitWorkGroup",
           "value" : 2,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         }
       ]
     },
@@ -12896,272 +14871,328 @@
       "enumerants" : [
         {
           "enumerant" : "Matrix",
-          "value" : 0
+          "value" : 0,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Shader",
           "value" : 1,
-          "capabilities" : [ "Matrix" ]
+          "capabilities" : [ "Matrix" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Geometry",
           "value" : 2,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Tessellation",
           "value" : 3,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Addresses",
-          "value" : 4
+          "value" : 4,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Linkage",
-          "value" : 5
+          "value" : 5,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Kernel",
-          "value" : 6
+          "value" : 6,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Vector16",
           "value" : 7,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Float16Buffer",
           "value" : 8,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Float16",
-          "value" : 9
+          "value" : 9,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Float64",
-          "value" : 10
+          "value" : 10,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Int64",
-          "value" : 11
+          "value" : 11,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Int64Atomics",
           "value" : 12,
-          "capabilities" : [ "Int64" ]
+          "capabilities" : [ "Int64" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageBasic",
           "value" : 13,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageReadWrite",
           "value" : 14,
-          "capabilities" : [ "ImageBasic" ]
+          "capabilities" : [ "ImageBasic" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageMipmap",
           "value" : 15,
-          "capabilities" : [ "ImageBasic" ]
+          "capabilities" : [ "ImageBasic" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Pipes",
           "value" : 17,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Groups",
           "value" : 18,
-          "extensions" : [ "SPV_AMD_shader_ballot" ]
+          "extensions" : [ "SPV_AMD_shader_ballot" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DeviceEnqueue",
           "value" : 19,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "LiteralSampler",
           "value" : 20,
-          "capabilities" : [ "Kernel" ]
+          "capabilities" : [ "Kernel" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "AtomicStorage",
           "value" : 21,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Int16",
-          "value" : 22
+          "value" : 22,
+          "version" : "1.0"
         },
         {
           "enumerant" : "TessellationPointSize",
           "value" : 23,
-          "capabilities" : [ "Tessellation" ]
+          "capabilities" : [ "Tessellation" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GeometryPointSize",
           "value" : 24,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageGatherExtended",
           "value" : 25,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageImageMultisample",
           "value" : 27,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "UniformBufferArrayDynamicIndexing",
           "value" : 28,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampledImageArrayDynamicIndexing",
           "value" : 29,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageBufferArrayDynamicIndexing",
           "value" : 30,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageImageArrayDynamicIndexing",
           "value" : 31,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ClipDistance",
           "value" : 32,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "CullDistance",
           "value" : 33,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageCubeArray",
           "value" : 34,
-          "capabilities" : [ "SampledCubeArray" ]
+          "capabilities" : [ "SampledCubeArray" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampleRateShading",
           "value" : 35,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageRect",
           "value" : 36,
-          "capabilities" : [ "SampledRect" ]
+          "capabilities" : [ "SampledRect" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampledRect",
           "value" : 37,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GenericPointer",
           "value" : 38,
-          "capabilities" : [ "Addresses" ]
+          "capabilities" : [ "Addresses" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Int8",
-          "value" : 39
+          "value" : 39,
+          "version" : "1.0"
         },
         {
           "enumerant" : "InputAttachment",
           "value" : 40,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SparseResidency",
           "value" : 41,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MinLod",
           "value" : 42,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "Sampled1D",
-          "value" : 43
+          "value" : 43,
+          "version" : "1.0"
         },
         {
           "enumerant" : "Image1D",
           "value" : 44,
-          "capabilities" : [ "Sampled1D" ]
+          "capabilities" : [ "Sampled1D" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampledCubeArray",
           "value" : 45,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SampledBuffer",
-          "value" : 46
+          "value" : 46,
+          "version" : "1.0"
         },
         {
           "enumerant" : "ImageBuffer",
           "value" : 47,
-          "capabilities" : [ "SampledBuffer" ]
+          "capabilities" : [ "SampledBuffer" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageMSArray",
           "value" : 48,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageImageExtendedFormats",
           "value" : 49,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "ImageQuery",
           "value" : 50,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "DerivativeControl",
           "value" : 51,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "InterpolationFunction",
           "value" : 52,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "TransformFeedback",
           "value" : 53,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "GeometryStreams",
           "value" : 54,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageImageReadWithoutFormat",
           "value" : 55,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "StorageImageWriteWithoutFormat",
           "value" : 56,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "MultiViewport",
           "value" : 57,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry" ],
+          "version": "1.0"
         },
         {
           "enumerant" : "SubgroupDispatch",
@@ -13244,6 +15275,30 @@
           "version" : "1.6"
         },
         {
+          "enumerant" : "CoreBuiltinsARM",
+          "value" : 4165,
+          "extensions" : [ "SPV_ARM_core_builtins" ],
+          "version": "None"
+        },
+        {
+          "enumerant" : "TileImageColorReadAccessEXT",
+          "value" : 4166,
+          "extensions" : [ "SPV_EXT_shader_tile_image" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TileImageDepthReadAccessEXT",
+          "value" : 4167,
+          "extensions" : [ "SPV_EXT_shader_tile_image" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TileImageStencilReadAccessEXT",
+          "value" : 4168,
+          "extensions" : [ "SPV_EXT_shader_tile_image" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "FragmentShadingRateKHR",
           "value" : 4422,
           "capabilities" : [ "Shader" ],
@@ -13280,7 +15335,7 @@
         {
           "enumerant" : "WorkgroupMemoryExplicitLayout16BitAccessKHR",
           "value" : 4430,
-          "capabilities" : [ "Shader" ],
+          "capabilities" : [ "WorkgroupMemoryExplicitLayoutKHR" ],
           "extensions" : [ "SPV_KHR_workgroup_memory_explicit_layout" ],
           "version" : "None"
         },
@@ -13451,6 +15506,24 @@
           "version" : "None"
         },
         {
+          "enumerant" : "TextureSampleWeightedQCOM",
+          "value" : 4484,
+          "extensions" : [ "SPV_QCOM_image_processing" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TextureBoxFilterQCOM",
+          "value" : 4485,
+          "extensions" : [ "SPV_QCOM_image_processing" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "TextureBlockMatchQCOM",
+          "value" : 4486,
+          "extensions" : [ "SPV_QCOM_image_processing" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "Float16ImageAMD",
           "value" : 5008,
           "capabilities" : [ "Shader" ],
@@ -13495,11 +15568,23 @@
         {
           "enumerant" : "ShaderClockKHR",
           "value" : 5055,
-          "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_KHR_shader_clock" ],
           "version" : "None"
         },
         {
+          "enumerant" : "ShaderEnqueueAMDX",
+          "value" : 5067,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_AMDX_shader_enqueue" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "QuadControlKHR",
+          "value" : 5087,
+          "extensions" : [ "SPV_KHR_quad_control" ],
+          "version" : "None"
+        },		
+        {
           "enumerant" : "SampleMaskOverrideCoverageNV",
           "value" : 5249,
           "capabilities" : [ "SampleRateShading" ],
@@ -13770,6 +15855,13 @@
           "version" : "1.5"
         },
         {
+          "enumerant" : "RayTracingPositionFetchKHR",
+          "value" : 5336,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "RayTracingNV",
           "value" : 5340,
           "capabilities" : [ "Shader" ],
@@ -13881,12 +15973,47 @@
           "version" : "1.6"
         },
         {
+          "enumerant" : "DisplacementMicromapNV",
+          "value" : 5380,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_NV_displacement_micromap" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "RayTracingOpacityMicromapEXT",
+          "value" : 5381,
+          "capabilities" : [ "RayQueryKHR","RayTracingKHR" ],
+          "extensions" : [ "SPV_EXT_opacity_micromap" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ShaderInvocationReorderNV",
+          "value" : 5383,
+          "capabilities" : [ "RayTracingKHR" ],
+          "extensions" : [ "SPV_NV_shader_invocation_reorder" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BindlessTextureNV",
           "value" : 5390,
           "extensions" : [ "SPV_NV_bindless_texture" ],
           "version" : "None"
         },
         {
+          "enumerant" : "RayQueryPositionFetchKHR",
+          "value" : 5391,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_KHR_ray_tracing_position_fetch" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "RayTracingDisplacementMicromapNV",
+          "value" : 5409,
+          "capabilities" : [ "RayTracingKHR" ],
+          "extensions" : [ "SPV_NV_displacement_micromap" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "SubgroupShuffleINTEL",
           "value" : 5568,
           "extensions" : [ "SPV_INTEL_subgroups" ],
@@ -14082,12 +16209,24 @@
           "version" : "None"
         },
         {
+          "enumerant" : "FPGADSPControlINTEL",
+          "value" : 5908,
+          "extensions" : [ "SPV_INTEL_fpga_dsp_control" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "MemoryAccessAliasingINTEL",
           "value" : 5910,
           "extensions" : [ "SPV_INTEL_memory_access_aliasing" ],
           "version" : "None"
         },
         {
+          "enumerant" : "FPGAInvocationPipeliningAttributesINTEL",
+          "value" : 5916,
+          "extensions" : [ "SPV_INTEL_fpga_invocation_pipelining_attributes" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "FPGABufferLocationINTEL",
           "value" : 5920,
           "extensions" : [ "SPV_INTEL_fpga_buffer_location" ],
@@ -14106,6 +16245,12 @@
           "version" : "None"
         },
         {
+          "enumerant" : "RuntimeAlignedAttributeINTEL",
+          "value" : 5939,
+          "extensions" : [ "SPV_INTEL_runtime_aligned" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "IOPipesINTEL",
           "value" : 5943,
           "extensions" : [ "SPV_INTEL_io_pipes" ],
@@ -14176,6 +16321,12 @@
           "version" : "None"
         },
         {
+          "enumerant" : "CooperativeMatrixKHR",
+          "value" : 6022,
+          "extensions" : [ "SPV_KHR_cooperative_matrix" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "BitInstructions",
           "value" : 6025,
           "extensions" : [ "SPV_KHR_bit_instructions" ],
@@ -14189,6 +16340,12 @@
           "version" : "None"
         },
         {
+          "enumerant" : "FloatControls2",
+          "value" : 6029,
+          "extensions" : [ "SPV_KHR_float_controls2" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "AtomicFloat32AddEXT",
           "value" : 6033,
           "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
@@ -14201,9 +16358,9 @@
           "version" : "None"
         },
         {
-          "enumerant" : "LongConstantCompositeINTEL",
+          "enumerant" : "LongCompositesINTEL",
           "value" : 6089,
-          "extensions" : [ "SPV_INTEL_long_constant_composite" ],
+          "extensions" : [ "SPV_INTEL_long_composites" ],
           "version" : "None"
         },
         {
@@ -14225,16 +16382,78 @@
           "version" : "None"
         },
         {
+          "enumerant" : "BFloat16ConversionINTEL",
+          "value" : 6115,
+          "extensions" : [ "SPV_INTEL_bfloat16_conversion" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "SplitBarrierINTEL",
           "value" : 6141,
           "extensions" : [ "SPV_INTEL_split_barrier" ],
           "version" : "None"
         },
         {
+          "enumerant" : "FPGAClusterAttributesV2INTEL",
+          "value" : 6150,
+          "capabilities" : [ "FPGAClusterAttributesINTEL" ],
+          "extensions" : [ "SPV_INTEL_fpga_cluster_attributes" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPGAKernelAttributesv2INTEL",
+          "value" : 6161,
+          "capabilities" : [ "FPGAKernelAttributesINTEL" ],
+          "extensions" : [ "SPV_INTEL_kernel_attributes" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPMaxErrorINTEL",
+          "value" : 6169,
+          "extensions" : [ "SPV_INTEL_fp_max_error" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPGALatencyControlINTEL",
+          "value" : 6171,
+          "extensions" : [ "SPV_INTEL_fpga_latency_control" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FPGAArgumentInterfacesINTEL",
+          "value" : 6174,
+          "extensions" : [ "SPV_INTEL_fpga_argument_interfaces" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "GlobalVariableHostAccessINTEL",
+          "value" : 6187,
+          "extensions": [ "SPV_INTEL_global_variable_host_access" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "GlobalVariableFPGADecorationsINTEL",
+          "value" : 6189,
+          "extensions": [ "SPV_INTEL_global_variable_fpga_decorations" ],
+          "version" : "None"
+        },
+        {
           "enumerant" : "GroupUniformArithmeticKHR",
           "value" : 6400,
           "extensions" : [ "SPV_KHR_uniform_group_instructions"],
           "version" : "None"
+        },
+        {
+          "enumerant" : "MaskedGatherScatterINTEL",
+	  "value" : 6427,
+	  "extensions" : [ "SPV_INTEL_masked_gather_scatter"],
+	  "version" : "None"
+        },
+        {
+          "enumerant" : "CacheControlsINTEL",
+          "value" : 6441,
+          "extensions" : [ "SPV_INTEL_cache_controls" ],
+          "version" : "None"
         }
       ]
     },
@@ -14316,6 +16535,163 @@
       ]
     },
     {
+      "category" : "BitEnum",
+      "kind" : "CooperativeMatrixOperands",
+      "enumerants" : [
+        {
+          "enumerant" : "NoneKHR",
+          "value" : "0x0000",
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixASignedComponentsKHR",
+          "value" : "0x0001",
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixBSignedComponentsKHR",
+          "value" : "0x0002",
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixCSignedComponentsKHR",
+          "value" : "0x0004",
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixResultSignedComponentsKHR",
+          "value" : "0x0008",
+          "version" : "None"
+        },
+        {
+          "enumerant" : "SaturatingAccumulationKHR",
+          "value" : "0x0010",
+          "version" : "None"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "CooperativeMatrixLayout",
+      "enumerants" : [
+        {
+          "enumerant" : "RowMajorKHR",
+          "value" : 0,
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ColumnMajorKHR",
+          "value" : 1,
+          "version" : "None"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "CooperativeMatrixUse",
+      "enumerants" : [
+        {
+          "enumerant" : "MatrixAKHR",
+          "value" : 0,
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixBKHR",
+          "value" : 1,
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MatrixAccumulatorKHR",
+          "value" : 2,
+          "version" : "None"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "InitializationModeQualifier",
+      "enumerants" : [
+        {
+          "enumerant" : "InitOnDeviceReprogramINTEL",
+          "value" : 0,
+          "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "InitOnDeviceResetINTEL",
+          "value" : 1,
+          "capabilities" : [ "GlobalVariableFPGADecorationsINTEL" ],
+          "version" : "None"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "LoadCacheControl",
+      "enumerants" : [
+        {
+          "enumerant" : "UncachedINTEL",
+          "value" : 0,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "CachedINTEL",
+          "value" : 1,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StreamingINTEL",
+          "value" : 2,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "InvalidateAfterReadINTEL",
+          "value" : 3,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ConstCachedINTEL",
+          "value" : 4,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        }
+      ]
+    },
+    {
+      "category" : "ValueEnum",
+      "kind" : "StoreCacheControl",
+      "enumerants" : [
+        {
+          "enumerant" : "UncachedINTEL",
+          "value" : 0,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "WriteThroughINTEL",
+          "value" : 1,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "WriteBackINTEL",
+          "value" : 2,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "StreamingINTEL",
+          "value" : 3,
+          "capabilities" : [ "CacheControlsINTEL" ],
+          "version" : "None"
+        }
+      ]
+    },
+    {
       "category" : "Id",
       "kind" : "IdResultType",
       "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
@@ -14352,6 +16728,11 @@
     },
     {
       "category" : "Literal",
+      "kind" : "LiteralFloat",
+      "doc" : "A float consuming one word"
+    },
+    {
+      "category" : "Literal",
       "kind" : "LiteralContextDependentNumber",
       "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 14d36ae..41bbbf1 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -65,6 +65,11 @@
             HLSL = 5,
             CPP_for_OpenCL = 6,
             SYCL = 7,
+            HERO_C = 8,
+            NZSL = 9,
+            WGSL = 10,
+            Slang = 11,
+            Zig = 12,
         }
 
         public enum ExecutionModel
@@ -152,6 +157,9 @@
             SubgroupsPerWorkgroupId = 37,
             LocalSizeId = 38,
             LocalSizeHintId = 39,
+            NonCoherentColorAttachmentReadEXT = 4169,
+            NonCoherentDepthAttachmentReadEXT = 4170,
+            NonCoherentStencilAttachmentReadEXT = 4171,
             SubgroupUniformControlFlowKHR = 4421,
             PostDepthCoverage = 4446,
             DenormPreserve = 4459,
@@ -161,12 +169,19 @@
             RoundingModeRTZ = 4463,
             EarlyAndLateFragmentTestsAMD = 5017,
             StencilRefReplacingEXT = 5027,
+            CoalescingAMDX = 5069,
+            MaxNodeRecursionAMDX = 5071,
+            StaticNumWorkgroupsAMDX = 5072,
+            ShaderIndexAMDX = 5073,
+            MaxNumWorkgroupsAMDX = 5077,
             StencilRefUnchangedFrontAMD = 5079,
             StencilRefGreaterFrontAMD = 5080,
             StencilRefLessFrontAMD = 5081,
             StencilRefUnchangedBackAMD = 5082,
             StencilRefGreaterBackAMD = 5083,
             StencilRefLessBackAMD = 5084,
+            QuadDerivativesKHR = 5088,
+            RequireFullQuadsKHR = 5089,
             OutputLinesEXT = 5269,
             OutputLinesNV = 5269,
             OutputPrimitivesEXT = 5270,
@@ -191,6 +206,10 @@
             NoGlobalOffsetINTEL = 5895,
             NumSIMDWorkitemsINTEL = 5896,
             SchedulerTargetFmaxMhzINTEL = 5903,
+            MaximallyReconvergesKHR = 6023,
+            FPFastMathDefault = 6028,
+            StreamingInterfaceINTEL = 6154,
+            RegisterMapInterfaceINTEL = 6160,
             NamedBarrierCountINTEL = 6417,
         }
 
@@ -209,6 +228,9 @@
             AtomicCounter = 10,
             Image = 11,
             StorageBuffer = 12,
+            TileImageEXT = 4172,
+            NodePayloadAMDX = 5068,
+            NodeOutputPayloadAMDX = 5076,
             CallableDataKHR = 5328,
             CallableDataNV = 5328,
             IncomingCallableDataKHR = 5329,
@@ -223,6 +245,7 @@
             ShaderRecordBufferNV = 5343,
             PhysicalStorageBuffer = 5349,
             PhysicalStorageBufferEXT = 5349,
+            HitObjectAttributeNV = 5385,
             TaskPayloadWorkgroupEXT = 5402,
             CodeSectionINTEL = 5605,
             DeviceOnlyINTEL = 5936,
@@ -238,6 +261,7 @@
             Rect = 4,
             Buffer = 5,
             SubpassData = 6,
+            TileImageDataEXT = 4173,
         }
 
         public enum SamplerAddressingMode
@@ -344,6 +368,8 @@
             Float = 14,
             UnormInt24 = 15,
             UnormInt101010_2 = 16,
+            UnsignedIntRaw10EXT = 19,
+            UnsignedIntRaw12EXT = 20,
         }
 
         public enum ImageOperandsShift
@@ -402,8 +428,11 @@
             NSZ = 2,
             AllowRecip = 3,
             Fast = 4,
+            AllowContract = 16,
             AllowContractFastINTEL = 16,
+            AllowReassoc = 17,
             AllowReassocINTEL = 17,
+            AllowTransform = 18,
         }
 
         public enum FPFastMathModeMask
@@ -414,8 +443,11 @@
             NSZ = 0x00000004,
             AllowRecip = 0x00000008,
             Fast = 0x00000010,
+            AllowContract = 0x00010000,
             AllowContractFastINTEL = 0x00010000,
+            AllowReassoc = 0x00020000,
             AllowReassocINTEL = 0x00020000,
+            AllowTransform = 0x00040000,
         }
 
         public enum FPRoundingMode
@@ -450,6 +482,7 @@
             NoCapture = 5,
             NoWrite = 6,
             NoReadWrite = 7,
+            RuntimeAlignedINTEL = 5940,
         }
 
         public enum Decoration
@@ -503,7 +536,13 @@
             MaxByteOffsetId = 47,
             NoSignedWrap = 4469,
             NoUnsignedWrap = 4470,
+            WeightTextureQCOM = 4487,
+            BlockMatchTextureQCOM = 4488,
             ExplicitInterpAMD = 4999,
+            NodeSharesPayloadLimitsWithAMDX = 5019,
+            NodeMaxPayloadsAMDX = 5020,
+            TrackFinishWritingAMDX = 5078,
+            PayloadNodeNameAMDX = 5091,
             OverrideCoverageNV = 5248,
             PassthroughNV = 5250,
             ViewportRelativeNV = 5252,
@@ -520,6 +559,7 @@
             RestrictPointerEXT = 5355,
             AliasedPointer = 5356,
             AliasedPointerEXT = 5356,
+            HitObjectShaderRecordBufferNV = 5386,
             BindlessSamplerNV = 5398,
             BindlessImageNV = 5399,
             BoundSamplerNV = 5400,
@@ -552,20 +592,45 @@
             MergeINTEL = 5834,
             BankBitsINTEL = 5835,
             ForcePow2DepthINTEL = 5836,
+            StridesizeINTEL = 5883,
+            WordsizeINTEL = 5884,
+            TrueDualPortINTEL = 5885,
             BurstCoalesceINTEL = 5899,
             CacheSizeINTEL = 5900,
             DontStaticallyCoalesceINTEL = 5901,
             PrefetchINTEL = 5902,
             StallEnableINTEL = 5905,
             FuseLoopsInFunctionINTEL = 5907,
+            MathOpDSPModeINTEL = 5909,
             AliasScopeINTEL = 5914,
             NoAliasINTEL = 5915,
+            InitiationIntervalINTEL = 5917,
+            MaxConcurrencyINTEL = 5918,
+            PipelineEnableINTEL = 5919,
             BufferLocationINTEL = 5921,
             IOPipeStorageINTEL = 5944,
             FunctionFloatingPointModeINTEL = 6080,
             SingleElementVectorINTEL = 6085,
             VectorComputeCallableFunctionINTEL = 6087,
             MediaBlockIOINTEL = 6140,
+            StallFreeINTEL = 6151,
+            FPMaxErrorDecorationINTEL = 6170,
+            LatencyControlLabelINTEL = 6172,
+            LatencyControlConstraintINTEL = 6173,
+            ConduitKernelArgumentINTEL = 6175,
+            RegisterMapKernelArgumentINTEL = 6176,
+            MMHostInterfaceAddressWidthINTEL = 6177,
+            MMHostInterfaceDataWidthINTEL = 6178,
+            MMHostInterfaceLatencyINTEL = 6179,
+            MMHostInterfaceReadWriteModeINTEL = 6180,
+            MMHostInterfaceMaxBurstINTEL = 6181,
+            MMHostInterfaceWaitRequestINTEL = 6182,
+            StableKernelArgumentINTEL = 6183,
+            HostAccessINTEL = 6188,
+            InitModeINTEL = 6190,
+            ImplementInRegisterMapINTEL = 6191,
+            CacheControlLoadINTEL = 6442,
+            CacheControlStoreINTEL = 6443,
         }
 
         public enum BuiltIn
@@ -611,6 +676,11 @@
             SubgroupLocalInvocationId = 41,
             VertexIndex = 42,
             InstanceIndex = 43,
+            CoreIDARM = 4160,
+            CoreCountARM = 4161,
+            CoreMaxIDARM = 4162,
+            WarpIDARM = 4163,
+            WarpMaxIDARM = 4164,
             SubgroupEqMask = 4416,
             SubgroupEqMaskKHR = 4416,
             SubgroupGeMask = 4417,
@@ -636,6 +706,8 @@
             BaryCoordSmoothSampleAMD = 4997,
             BaryCoordPullModelAMD = 4998,
             FragStencilRefEXT = 5014,
+            CoalescedInputCountAMDX = 5021,
+            ShaderIndexAMDX = 5073,
             ViewportMaskNV = 5253,
             SecondaryPositionNV = 5257,
             SecondaryViewportMaskNV = 5258,
@@ -688,6 +760,9 @@
             HitKindKHR = 5333,
             HitKindNV = 5333,
             CurrentRayTimeNV = 5334,
+            HitTriangleVertexPositionsKHR = 5335,
+            HitMicroTriangleVertexPositionsNV = 5337,
+            HitMicroTriangleVertexBarycentricsNV = 5344,
             IncomingRayFlagsKHR = 5351,
             IncomingRayFlagsNV = 5351,
             RayGeometryIndexKHR = 5352,
@@ -695,6 +770,8 @@
             SMCountNV = 5375,
             WarpIDNV = 5376,
             SMIDNV = 5377,
+            HitKindFrontFacingMicroTriangleNV = 5405,
+            HitKindBackFacingMicroTriangleNV = 5406,
             CullMaskKHR = 6021,
         }
 
@@ -730,6 +807,8 @@
             MaxInterleavingINTEL = 21,
             SpeculatedIterationsINTEL = 22,
             NoFusionINTEL = 23,
+            LoopCountINTEL = 24,
+            MaxReinvocationDelayINTEL = 25,
         }
 
         public enum LoopControlMask
@@ -752,6 +831,8 @@
             MaxInterleavingINTEL = 0x00200000,
             SpeculatedIterationsINTEL = 0x00400000,
             NoFusionINTEL = 0x00800000,
+            LoopCountINTEL = 0x01000000,
+            MaxReinvocationDelayINTEL = 0x02000000,
         }
 
         public enum FunctionControlShift
@@ -960,6 +1041,10 @@
             ShaderLayer = 69,
             ShaderViewportIndex = 70,
             UniformDecoration = 71,
+            CoreBuiltinsARM = 4165,
+            TileImageColorReadAccessEXT = 4166,
+            TileImageDepthReadAccessEXT = 4167,
+            TileImageStencilReadAccessEXT = 4168,
             FragmentShadingRateKHR = 4422,
             SubgroupBallotKHR = 4423,
             DrawParameters = 4427,
@@ -991,6 +1076,9 @@
             RayQueryKHR = 4472,
             RayTraversalPrimitiveCullingKHR = 4478,
             RayTracingKHR = 4479,
+            TextureSampleWeightedQCOM = 4484,
+            TextureBoxFilterQCOM = 4485,
+            TextureBlockMatchQCOM = 4486,
             Float16ImageAMD = 5008,
             ImageGatherBiasLodAMD = 5009,
             FragmentMaskAMD = 5010,
@@ -998,6 +1086,8 @@
             ImageReadWriteLodAMD = 5015,
             Int64ImageEXT = 5016,
             ShaderClockKHR = 5055,
+            ShaderEnqueueAMDX = 5067,
+            QuadControlKHR = 5087,
             SampleMaskOverrideCoverageNV = 5249,
             GeometryShaderPassthroughNV = 5251,
             ShaderViewportIndexLayerEXT = 5254,
@@ -1039,6 +1129,7 @@
             UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
             StorageTexelBufferArrayNonUniformIndexing = 5312,
             StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+            RayTracingPositionFetchKHR = 5336,
             RayTracingNV = 5340,
             RayTracingMotionBlurNV = 5341,
             VulkanMemoryModel = 5345,
@@ -1056,7 +1147,12 @@
             FragmentShaderPixelInterlockEXT = 5378,
             DemoteToHelperInvocation = 5379,
             DemoteToHelperInvocationEXT = 5379,
+            DisplacementMicromapNV = 5380,
+            RayTracingOpacityMicromapEXT = 5381,
+            ShaderInvocationReorderNV = 5383,
             BindlessTextureNV = 5390,
+            RayQueryPositionFetchKHR = 5391,
+            RayTracingDisplacementMicromapNV = 5409,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
             SubgroupImageBlockIOINTEL = 5570,
@@ -1089,10 +1185,13 @@
             FPGAMemoryAccessesINTEL = 5898,
             FPGAClusterAttributesINTEL = 5904,
             LoopFuseINTEL = 5906,
+            FPGADSPControlINTEL = 5908,
             MemoryAccessAliasingINTEL = 5910,
+            FPGAInvocationPipeliningAttributesINTEL = 5916,
             FPGABufferLocationINTEL = 5920,
             ArbitraryPrecisionFixedPointINTEL = 5922,
             USMStorageClassesINTEL = 5935,
+            RuntimeAlignedAttributeINTEL = 5939,
             IOPipesINTEL = 5943,
             BlockingPipesINTEL = 5945,
             FPGARegINTEL = 5948,
@@ -1105,16 +1204,28 @@
             DotProduct = 6019,
             DotProductKHR = 6019,
             RayCullMaskKHR = 6020,
+            CooperativeMatrixKHR = 6022,
             BitInstructions = 6025,
             GroupNonUniformRotateKHR = 6026,
+            FloatControls2 = 6029,
             AtomicFloat32AddEXT = 6033,
             AtomicFloat64AddEXT = 6034,
-            LongConstantCompositeINTEL = 6089,
+            LongCompositesINTEL = 6089,
             OptNoneINTEL = 6094,
             AtomicFloat16AddEXT = 6095,
             DebugInfoModuleINTEL = 6114,
+            BFloat16ConversionINTEL = 6115,
             SplitBarrierINTEL = 6141,
+            FPGAClusterAttributesV2INTEL = 6150,
+            FPGAKernelAttributesv2INTEL = 6161,
+            FPMaxErrorINTEL = 6169,
+            FPGALatencyControlINTEL = 6171,
+            FPGAArgumentInterfacesINTEL = 6174,
+            GlobalVariableHostAccessINTEL = 6187,
+            GlobalVariableFPGADecorationsINTEL = 6189,
             GroupUniformArithmeticKHR = 6400,
+            MaskedGatherScatterINTEL = 6427,
+            CacheControlsINTEL = 6441,
         }
 
         public enum RayFlagsShift
@@ -1129,6 +1240,7 @@
             CullNoOpaqueKHR = 7,
             SkipTrianglesKHR = 8,
             SkipAABBsKHR = 9,
+            ForceOpacityMicromap2StateEXT = 10,
         }
 
         public enum RayFlagsMask
@@ -1144,6 +1256,7 @@
             CullNoOpaqueKHR = 0x00000080,
             SkipTrianglesKHR = 0x00000100,
             SkipAABBsKHR = 0x00000200,
+            ForceOpacityMicromap2StateEXT = 0x00000400,
         }
 
         public enum RayQueryIntersection
@@ -1220,6 +1333,69 @@
             PackedVectorFormat4x8BitKHR = 0,
         }
 
+        public enum CooperativeMatrixOperandsShift
+        {
+            MatrixASignedComponentsKHR = 0,
+            MatrixBSignedComponentsKHR = 1,
+            MatrixCSignedComponentsKHR = 2,
+            MatrixResultSignedComponentsKHR = 3,
+            SaturatingAccumulationKHR = 4,
+        }
+
+        public enum CooperativeMatrixOperandsMask
+        {
+            MaskNone = 0,
+            MatrixASignedComponentsKHR = 0x00000001,
+            MatrixBSignedComponentsKHR = 0x00000002,
+            MatrixCSignedComponentsKHR = 0x00000004,
+            MatrixResultSignedComponentsKHR = 0x00000008,
+            SaturatingAccumulationKHR = 0x00000010,
+        }
+
+        public enum CooperativeMatrixLayout
+        {
+            RowMajorKHR = 0,
+            ColumnMajorKHR = 1,
+        }
+
+        public enum CooperativeMatrixUse
+        {
+            MatrixAKHR = 0,
+            MatrixBKHR = 1,
+            MatrixAccumulatorKHR = 2,
+        }
+
+        public enum InitializationModeQualifier
+        {
+            InitOnDeviceReprogramINTEL = 0,
+            InitOnDeviceResetINTEL = 1,
+        }
+
+        public enum HostAccessQualifier
+        {
+            NoneINTEL = 0,
+            ReadINTEL = 1,
+            WriteINTEL = 2,
+            ReadWriteINTEL = 3,
+        }
+
+        public enum LoadCacheControl
+        {
+            UncachedINTEL = 0,
+            CachedINTEL = 1,
+            StreamingINTEL = 2,
+            InvalidateAfterReadINTEL = 3,
+            ConstCachedINTEL = 4,
+        }
+
+        public enum StoreCacheControl
+        {
+            UncachedINTEL = 0,
+            WriteThroughINTEL = 1,
+            WriteBackINTEL = 2,
+            StreamingINTEL = 3,
+        }
+
         public enum Op
         {
             OpNop = 0,
@@ -1566,6 +1742,9 @@
             OpPtrEqual = 401,
             OpPtrNotEqual = 402,
             OpPtrDiff = 403,
+            OpColorAttachmentReadEXT = 4160,
+            OpDepthAttachmentReadEXT = 4161,
+            OpStencilAttachmentReadEXT = 4162,
             OpTerminateInvocation = 4416,
             OpSubgroupBallotKHR = 4421,
             OpSubgroupFirstInvocationKHR = 4422,
@@ -1591,6 +1770,11 @@
             OpUDotAccSatKHR = 4454,
             OpSUDotAccSat = 4455,
             OpSUDotAccSatKHR = 4455,
+            OpTypeCooperativeMatrixKHR = 4456,
+            OpCooperativeMatrixLoadKHR = 4457,
+            OpCooperativeMatrixStoreKHR = 4458,
+            OpCooperativeMatrixMulAddKHR = 4459,
+            OpCooperativeMatrixLengthKHR = 4460,
             OpTypeRayQueryKHR = 4472,
             OpRayQueryInitializeKHR = 4473,
             OpRayQueryTerminateKHR = 4474,
@@ -1598,6 +1782,10 @@
             OpRayQueryConfirmIntersectionKHR = 4476,
             OpRayQueryProceedKHR = 4477,
             OpRayQueryGetIntersectionTypeKHR = 4479,
+            OpImageSampleWeightedQCOM = 4480,
+            OpImageBoxFilterQCOM = 4481,
+            OpImageBlockMatchSSDQCOM = 4482,
+            OpImageBlockMatchSADQCOM = 4483,
             OpGroupIAddNonUniformAMD = 5000,
             OpGroupFAddNonUniformAMD = 5001,
             OpGroupFMinNonUniformAMD = 5002,
@@ -1609,11 +1797,51 @@
             OpFragmentMaskFetchAMD = 5011,
             OpFragmentFetchAMD = 5012,
             OpReadClockKHR = 5056,
+            OpFinalizeNodePayloadsAMDX = 5075,
+            OpFinishWritingNodePayloadAMDX = 5078,
+            OpInitializeNodePayloadsAMDX = 5090,
+            OpGroupNonUniformQuadAllKHR = 5110,
+            OpGroupNonUniformQuadAnyKHR = 5111,
+            OpHitObjectRecordHitMotionNV = 5249,
+            OpHitObjectRecordHitWithIndexMotionNV = 5250,
+            OpHitObjectRecordMissMotionNV = 5251,
+            OpHitObjectGetWorldToObjectNV = 5252,
+            OpHitObjectGetObjectToWorldNV = 5253,
+            OpHitObjectGetObjectRayDirectionNV = 5254,
+            OpHitObjectGetObjectRayOriginNV = 5255,
+            OpHitObjectTraceRayMotionNV = 5256,
+            OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+            OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+            OpHitObjectRecordEmptyNV = 5259,
+            OpHitObjectTraceRayNV = 5260,
+            OpHitObjectRecordHitNV = 5261,
+            OpHitObjectRecordHitWithIndexNV = 5262,
+            OpHitObjectRecordMissNV = 5263,
+            OpHitObjectExecuteShaderNV = 5264,
+            OpHitObjectGetCurrentTimeNV = 5265,
+            OpHitObjectGetAttributesNV = 5266,
+            OpHitObjectGetHitKindNV = 5267,
+            OpHitObjectGetPrimitiveIndexNV = 5268,
+            OpHitObjectGetGeometryIndexNV = 5269,
+            OpHitObjectGetInstanceIdNV = 5270,
+            OpHitObjectGetInstanceCustomIndexNV = 5271,
+            OpHitObjectGetWorldRayDirectionNV = 5272,
+            OpHitObjectGetWorldRayOriginNV = 5273,
+            OpHitObjectGetRayTMaxNV = 5274,
+            OpHitObjectGetRayTMinNV = 5275,
+            OpHitObjectIsEmptyNV = 5276,
+            OpHitObjectIsHitNV = 5277,
+            OpHitObjectIsMissNV = 5278,
+            OpReorderThreadWithHitObjectNV = 5279,
+            OpReorderThreadWithHintNV = 5280,
+            OpTypeHitObjectNV = 5281,
             OpImageSampleFootprintNV = 5283,
             OpEmitMeshTasksEXT = 5294,
             OpSetMeshOutputsEXT = 5295,
             OpGroupNonUniformPartitionNV = 5296,
             OpWritePackedPrimitiveIndices4x8NV = 5299,
+            OpFetchMicroTriangleVertexPositionNV = 5300,
+            OpFetchMicroTriangleVertexBarycentricNV = 5301,
             OpReportIntersectionKHR = 5334,
             OpReportIntersectionNV = 5334,
             OpIgnoreIntersectionNV = 5335,
@@ -1621,6 +1849,7 @@
             OpTraceNV = 5337,
             OpTraceMotionNV = 5338,
             OpTraceRayMotionNV = 5339,
+            OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
             OpTypeAccelerationStructureKHR = 5341,
             OpTypeAccelerationStructureNV = 5341,
             OpExecuteCallableNV = 5344,
@@ -1882,6 +2111,9 @@
             OpTypeStructContinuedINTEL = 6090,
             OpConstantCompositeContinuedINTEL = 6091,
             OpSpecConstantCompositeContinuedINTEL = 6092,
+            OpCompositeConstructContinuedINTEL = 6096,
+            OpConvertFToBF16INTEL = 6116,
+            OpConvertBF16ToFINTEL = 6117,
             OpControlBarrierArriveINTEL = 6142,
             OpControlBarrierWaitINTEL = 6143,
             OpGroupIMulKHR = 6401,
@@ -1892,6 +2124,8 @@
             OpGroupLogicalAndKHR = 6406,
             OpGroupLogicalOrKHR = 6407,
             OpGroupLogicalXorKHR = 6408,
+            OpMaskedGatherINTEL = 6428,
+            OpMaskedScatterINTEL = 6429,
         }
     }
 }
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 5b6e8aa..a68b7a1 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -1,5 +1,5 @@
 /*
-** Copyright (c) 2014-2020 The Khronos Group Inc.
+** Copyright (c) 2014-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"),
@@ -73,6 +73,11 @@
     SpvSourceLanguageHLSL = 5,
     SpvSourceLanguageCPP_for_OpenCL = 6,
     SpvSourceLanguageSYCL = 7,
+    SpvSourceLanguageHERO_C = 8,
+    SpvSourceLanguageNZSL = 9,
+    SpvSourceLanguageWGSL = 10,
+    SpvSourceLanguageSlang = 11,
+    SpvSourceLanguageZig = 12,
     SpvSourceLanguageMax = 0x7fffffff,
 } SpvSourceLanguage;
 
@@ -160,6 +165,9 @@
     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
     SpvExecutionModeLocalSizeId = 38,
     SpvExecutionModeLocalSizeHintId = 39,
+    SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
+    SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
+    SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
     SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
     SpvExecutionModePostDepthCoverage = 4446,
     SpvExecutionModeDenormPreserve = 4459,
@@ -169,12 +177,19 @@
     SpvExecutionModeRoundingModeRTZ = 4463,
     SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
     SpvExecutionModeStencilRefReplacingEXT = 5027,
+    SpvExecutionModeCoalescingAMDX = 5069,
+    SpvExecutionModeMaxNodeRecursionAMDX = 5071,
+    SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
+    SpvExecutionModeShaderIndexAMDX = 5073,
+    SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
     SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
     SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
     SpvExecutionModeStencilRefLessFrontAMD = 5081,
     SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
     SpvExecutionModeStencilRefGreaterBackAMD = 5083,
     SpvExecutionModeStencilRefLessBackAMD = 5084,
+    SpvExecutionModeQuadDerivativesKHR = 5088,
+    SpvExecutionModeRequireFullQuadsKHR = 5089,
     SpvExecutionModeOutputLinesEXT = 5269,
     SpvExecutionModeOutputLinesNV = 5269,
     SpvExecutionModeOutputPrimitivesEXT = 5270,
@@ -199,6 +214,10 @@
     SpvExecutionModeNoGlobalOffsetINTEL = 5895,
     SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
     SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+    SpvExecutionModeMaximallyReconvergesKHR = 6023,
+    SpvExecutionModeFPFastMathDefault = 6028,
+    SpvExecutionModeStreamingInterfaceINTEL = 6154,
+    SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
     SpvExecutionModeNamedBarrierCountINTEL = 6417,
     SpvExecutionModeMax = 0x7fffffff,
 } SpvExecutionMode;
@@ -217,6 +236,9 @@
     SpvStorageClassAtomicCounter = 10,
     SpvStorageClassImage = 11,
     SpvStorageClassStorageBuffer = 12,
+    SpvStorageClassTileImageEXT = 4172,
+    SpvStorageClassNodePayloadAMDX = 5068,
+    SpvStorageClassNodeOutputPayloadAMDX = 5076,
     SpvStorageClassCallableDataKHR = 5328,
     SpvStorageClassCallableDataNV = 5328,
     SpvStorageClassIncomingCallableDataKHR = 5329,
@@ -231,6 +253,7 @@
     SpvStorageClassShaderRecordBufferNV = 5343,
     SpvStorageClassPhysicalStorageBuffer = 5349,
     SpvStorageClassPhysicalStorageBufferEXT = 5349,
+    SpvStorageClassHitObjectAttributeNV = 5385,
     SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
     SpvStorageClassCodeSectionINTEL = 5605,
     SpvStorageClassDeviceOnlyINTEL = 5936,
@@ -246,6 +269,7 @@
     SpvDimRect = 4,
     SpvDimBuffer = 5,
     SpvDimSubpassData = 6,
+    SpvDimTileImageDataEXT = 4173,
     SpvDimMax = 0x7fffffff,
 } SpvDim;
 
@@ -352,6 +376,8 @@
     SpvImageChannelDataTypeFloat = 14,
     SpvImageChannelDataTypeUnormInt24 = 15,
     SpvImageChannelDataTypeUnormInt101010_2 = 16,
+    SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
+    SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
     SpvImageChannelDataTypeMax = 0x7fffffff,
 } SpvImageChannelDataType;
 
@@ -409,8 +435,11 @@
     SpvFPFastMathModeNSZShift = 2,
     SpvFPFastMathModeAllowRecipShift = 3,
     SpvFPFastMathModeFastShift = 4,
+    SpvFPFastMathModeAllowContractShift = 16,
     SpvFPFastMathModeAllowContractFastINTELShift = 16,
+    SpvFPFastMathModeAllowReassocShift = 17,
     SpvFPFastMathModeAllowReassocINTELShift = 17,
+    SpvFPFastMathModeAllowTransformShift = 18,
     SpvFPFastMathModeMax = 0x7fffffff,
 } SpvFPFastMathModeShift;
 
@@ -421,8 +450,11 @@
     SpvFPFastMathModeNSZMask = 0x00000004,
     SpvFPFastMathModeAllowRecipMask = 0x00000008,
     SpvFPFastMathModeFastMask = 0x00000010,
+    SpvFPFastMathModeAllowContractMask = 0x00010000,
     SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
+    SpvFPFastMathModeAllowReassocMask = 0x00020000,
     SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
+    SpvFPFastMathModeAllowTransformMask = 0x00040000,
 } SpvFPFastMathModeMask;
 
 typedef enum SpvFPRoundingMode_ {
@@ -456,6 +488,7 @@
     SpvFunctionParameterAttributeNoCapture = 5,
     SpvFunctionParameterAttributeNoWrite = 6,
     SpvFunctionParameterAttributeNoReadWrite = 7,
+    SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
     SpvFunctionParameterAttributeMax = 0x7fffffff,
 } SpvFunctionParameterAttribute;
 
@@ -509,7 +542,13 @@
     SpvDecorationMaxByteOffsetId = 47,
     SpvDecorationNoSignedWrap = 4469,
     SpvDecorationNoUnsignedWrap = 4470,
+    SpvDecorationWeightTextureQCOM = 4487,
+    SpvDecorationBlockMatchTextureQCOM = 4488,
     SpvDecorationExplicitInterpAMD = 4999,
+    SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
+    SpvDecorationNodeMaxPayloadsAMDX = 5020,
+    SpvDecorationTrackFinishWritingAMDX = 5078,
+    SpvDecorationPayloadNodeNameAMDX = 5091,
     SpvDecorationOverrideCoverageNV = 5248,
     SpvDecorationPassthroughNV = 5250,
     SpvDecorationViewportRelativeNV = 5252,
@@ -526,6 +565,7 @@
     SpvDecorationRestrictPointerEXT = 5355,
     SpvDecorationAliasedPointer = 5356,
     SpvDecorationAliasedPointerEXT = 5356,
+    SpvDecorationHitObjectShaderRecordBufferNV = 5386,
     SpvDecorationBindlessSamplerNV = 5398,
     SpvDecorationBindlessImageNV = 5399,
     SpvDecorationBoundSamplerNV = 5400,
@@ -558,20 +598,45 @@
     SpvDecorationMergeINTEL = 5834,
     SpvDecorationBankBitsINTEL = 5835,
     SpvDecorationForcePow2DepthINTEL = 5836,
+    SpvDecorationStridesizeINTEL = 5883,
+    SpvDecorationWordsizeINTEL = 5884,
+    SpvDecorationTrueDualPortINTEL = 5885,
     SpvDecorationBurstCoalesceINTEL = 5899,
     SpvDecorationCacheSizeINTEL = 5900,
     SpvDecorationDontStaticallyCoalesceINTEL = 5901,
     SpvDecorationPrefetchINTEL = 5902,
     SpvDecorationStallEnableINTEL = 5905,
     SpvDecorationFuseLoopsInFunctionINTEL = 5907,
+    SpvDecorationMathOpDSPModeINTEL = 5909,
     SpvDecorationAliasScopeINTEL = 5914,
     SpvDecorationNoAliasINTEL = 5915,
+    SpvDecorationInitiationIntervalINTEL = 5917,
+    SpvDecorationMaxConcurrencyINTEL = 5918,
+    SpvDecorationPipelineEnableINTEL = 5919,
     SpvDecorationBufferLocationINTEL = 5921,
     SpvDecorationIOPipeStorageINTEL = 5944,
     SpvDecorationFunctionFloatingPointModeINTEL = 6080,
     SpvDecorationSingleElementVectorINTEL = 6085,
     SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
     SpvDecorationMediaBlockIOINTEL = 6140,
+    SpvDecorationStallFreeINTEL = 6151,
+    SpvDecorationFPMaxErrorDecorationINTEL = 6170,
+    SpvDecorationLatencyControlLabelINTEL = 6172,
+    SpvDecorationLatencyControlConstraintINTEL = 6173,
+    SpvDecorationConduitKernelArgumentINTEL = 6175,
+    SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
+    SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
+    SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
+    SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
+    SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
+    SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
+    SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
+    SpvDecorationStableKernelArgumentINTEL = 6183,
+    SpvDecorationHostAccessINTEL = 6188,
+    SpvDecorationInitModeINTEL = 6190,
+    SpvDecorationImplementInRegisterMapINTEL = 6191,
+    SpvDecorationCacheControlLoadINTEL = 6442,
+    SpvDecorationCacheControlStoreINTEL = 6443,
     SpvDecorationMax = 0x7fffffff,
 } SpvDecoration;
 
@@ -617,6 +682,11 @@
     SpvBuiltInSubgroupLocalInvocationId = 41,
     SpvBuiltInVertexIndex = 42,
     SpvBuiltInInstanceIndex = 43,
+    SpvBuiltInCoreIDARM = 4160,
+    SpvBuiltInCoreCountARM = 4161,
+    SpvBuiltInCoreMaxIDARM = 4162,
+    SpvBuiltInWarpIDARM = 4163,
+    SpvBuiltInWarpMaxIDARM = 4164,
     SpvBuiltInSubgroupEqMask = 4416,
     SpvBuiltInSubgroupEqMaskKHR = 4416,
     SpvBuiltInSubgroupGeMask = 4417,
@@ -642,6 +712,8 @@
     SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
     SpvBuiltInBaryCoordPullModelAMD = 4998,
     SpvBuiltInFragStencilRefEXT = 5014,
+    SpvBuiltInCoalescedInputCountAMDX = 5021,
+    SpvBuiltInShaderIndexAMDX = 5073,
     SpvBuiltInViewportMaskNV = 5253,
     SpvBuiltInSecondaryPositionNV = 5257,
     SpvBuiltInSecondaryViewportMaskNV = 5258,
@@ -694,6 +766,9 @@
     SpvBuiltInHitKindKHR = 5333,
     SpvBuiltInHitKindNV = 5333,
     SpvBuiltInCurrentRayTimeNV = 5334,
+    SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
+    SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
+    SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
     SpvBuiltInIncomingRayFlagsKHR = 5351,
     SpvBuiltInIncomingRayFlagsNV = 5351,
     SpvBuiltInRayGeometryIndexKHR = 5352,
@@ -701,6 +776,8 @@
     SpvBuiltInSMCountNV = 5375,
     SpvBuiltInWarpIDNV = 5376,
     SpvBuiltInSMIDNV = 5377,
+    SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
+    SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
     SpvBuiltInCullMaskKHR = 6021,
     SpvBuiltInMax = 0x7fffffff,
 } SpvBuiltIn;
@@ -735,6 +812,8 @@
     SpvLoopControlMaxInterleavingINTELShift = 21,
     SpvLoopControlSpeculatedIterationsINTELShift = 22,
     SpvLoopControlNoFusionINTELShift = 23,
+    SpvLoopControlLoopCountINTELShift = 24,
+    SpvLoopControlMaxReinvocationDelayINTELShift = 25,
     SpvLoopControlMax = 0x7fffffff,
 } SpvLoopControlShift;
 
@@ -757,6 +836,8 @@
     SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
     SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
     SpvLoopControlNoFusionINTELMask = 0x00800000,
+    SpvLoopControlLoopCountINTELMask = 0x01000000,
+    SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
 } SpvLoopControlMask;
 
 typedef enum SpvFunctionControlShift_ {
@@ -960,6 +1041,10 @@
     SpvCapabilityShaderLayer = 69,
     SpvCapabilityShaderViewportIndex = 70,
     SpvCapabilityUniformDecoration = 71,
+    SpvCapabilityCoreBuiltinsARM = 4165,
+    SpvCapabilityTileImageColorReadAccessEXT = 4166,
+    SpvCapabilityTileImageDepthReadAccessEXT = 4167,
+    SpvCapabilityTileImageStencilReadAccessEXT = 4168,
     SpvCapabilityFragmentShadingRateKHR = 4422,
     SpvCapabilitySubgroupBallotKHR = 4423,
     SpvCapabilityDrawParameters = 4427,
@@ -991,6 +1076,9 @@
     SpvCapabilityRayQueryKHR = 4472,
     SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
     SpvCapabilityRayTracingKHR = 4479,
+    SpvCapabilityTextureSampleWeightedQCOM = 4484,
+    SpvCapabilityTextureBoxFilterQCOM = 4485,
+    SpvCapabilityTextureBlockMatchQCOM = 4486,
     SpvCapabilityFloat16ImageAMD = 5008,
     SpvCapabilityImageGatherBiasLodAMD = 5009,
     SpvCapabilityFragmentMaskAMD = 5010,
@@ -998,6 +1086,8 @@
     SpvCapabilityImageReadWriteLodAMD = 5015,
     SpvCapabilityInt64ImageEXT = 5016,
     SpvCapabilityShaderClockKHR = 5055,
+    SpvCapabilityShaderEnqueueAMDX = 5067,
+    SpvCapabilityQuadControlKHR = 5087,
     SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
     SpvCapabilityGeometryShaderPassthroughNV = 5251,
     SpvCapabilityShaderViewportIndexLayerEXT = 5254,
@@ -1039,6 +1129,7 @@
     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    SpvCapabilityRayTracingPositionFetchKHR = 5336,
     SpvCapabilityRayTracingNV = 5340,
     SpvCapabilityRayTracingMotionBlurNV = 5341,
     SpvCapabilityVulkanMemoryModel = 5345,
@@ -1056,7 +1147,12 @@
     SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
     SpvCapabilityDemoteToHelperInvocation = 5379,
     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
+    SpvCapabilityDisplacementMicromapNV = 5380,
+    SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
+    SpvCapabilityShaderInvocationReorderNV = 5383,
     SpvCapabilityBindlessTextureNV = 5390,
+    SpvCapabilityRayQueryPositionFetchKHR = 5391,
+    SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
     SpvCapabilitySubgroupShuffleINTEL = 5568,
     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1089,10 +1185,13 @@
     SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
     SpvCapabilityLoopFuseINTEL = 5906,
+    SpvCapabilityFPGADSPControlINTEL = 5908,
     SpvCapabilityMemoryAccessAliasingINTEL = 5910,
+    SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
     SpvCapabilityFPGABufferLocationINTEL = 5920,
     SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     SpvCapabilityUSMStorageClassesINTEL = 5935,
+    SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
     SpvCapabilityIOPipesINTEL = 5943,
     SpvCapabilityBlockingPipesINTEL = 5945,
     SpvCapabilityFPGARegINTEL = 5948,
@@ -1105,16 +1204,28 @@
     SpvCapabilityDotProduct = 6019,
     SpvCapabilityDotProductKHR = 6019,
     SpvCapabilityRayCullMaskKHR = 6020,
+    SpvCapabilityCooperativeMatrixKHR = 6022,
     SpvCapabilityBitInstructions = 6025,
     SpvCapabilityGroupNonUniformRotateKHR = 6026,
+    SpvCapabilityFloatControls2 = 6029,
     SpvCapabilityAtomicFloat32AddEXT = 6033,
     SpvCapabilityAtomicFloat64AddEXT = 6034,
-    SpvCapabilityLongConstantCompositeINTEL = 6089,
+    SpvCapabilityLongCompositesINTEL = 6089,
     SpvCapabilityOptNoneINTEL = 6094,
     SpvCapabilityAtomicFloat16AddEXT = 6095,
     SpvCapabilityDebugInfoModuleINTEL = 6114,
+    SpvCapabilityBFloat16ConversionINTEL = 6115,
     SpvCapabilitySplitBarrierINTEL = 6141,
+    SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
+    SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
+    SpvCapabilityFPMaxErrorINTEL = 6169,
+    SpvCapabilityFPGALatencyControlINTEL = 6171,
+    SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
+    SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
+    SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
     SpvCapabilityGroupUniformArithmeticKHR = 6400,
+    SpvCapabilityMaskedGatherScatterINTEL = 6427,
+    SpvCapabilityCacheControlsINTEL = 6441,
     SpvCapabilityMax = 0x7fffffff,
 } SpvCapability;
 
@@ -1129,6 +1240,7 @@
     SpvRayFlagsCullNoOpaqueKHRShift = 7,
     SpvRayFlagsSkipTrianglesKHRShift = 8,
     SpvRayFlagsSkipAABBsKHRShift = 9,
+    SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
     SpvRayFlagsMax = 0x7fffffff,
 } SpvRayFlagsShift;
 
@@ -1144,6 +1256,7 @@
     SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
     SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
     SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
+    SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
 } SpvRayFlagsMask;
 
 typedef enum SpvRayQueryIntersection_ {
@@ -1219,6 +1332,68 @@
     SpvPackedVectorFormatMax = 0x7fffffff,
 } SpvPackedVectorFormat;
 
+typedef enum SpvCooperativeMatrixOperandsShift_ {
+    SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
+    SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
+    SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
+    SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
+    SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
+    SpvCooperativeMatrixOperandsMax = 0x7fffffff,
+} SpvCooperativeMatrixOperandsShift;
+
+typedef enum SpvCooperativeMatrixOperandsMask_ {
+    SpvCooperativeMatrixOperandsMaskNone = 0,
+    SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
+    SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
+    SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
+    SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
+    SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
+} SpvCooperativeMatrixOperandsMask;
+
+typedef enum SpvCooperativeMatrixLayout_ {
+    SpvCooperativeMatrixLayoutRowMajorKHR = 0,
+    SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
+    SpvCooperativeMatrixLayoutMax = 0x7fffffff,
+} SpvCooperativeMatrixLayout;
+
+typedef enum SpvCooperativeMatrixUse_ {
+    SpvCooperativeMatrixUseMatrixAKHR = 0,
+    SpvCooperativeMatrixUseMatrixBKHR = 1,
+    SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
+    SpvCooperativeMatrixUseMax = 0x7fffffff,
+} SpvCooperativeMatrixUse;
+
+typedef enum SpvInitializationModeQualifier_ {
+    SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
+    SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
+    SpvInitializationModeQualifierMax = 0x7fffffff,
+} SpvInitializationModeQualifier;
+
+typedef enum SpvHostAccessQualifier_ {
+    SpvHostAccessQualifierNoneINTEL = 0,
+    SpvHostAccessQualifierReadINTEL = 1,
+    SpvHostAccessQualifierWriteINTEL = 2,
+    SpvHostAccessQualifierReadWriteINTEL = 3,
+    SpvHostAccessQualifierMax = 0x7fffffff,
+} SpvHostAccessQualifier;
+
+typedef enum SpvLoadCacheControl_ {
+    SpvLoadCacheControlUncachedINTEL = 0,
+    SpvLoadCacheControlCachedINTEL = 1,
+    SpvLoadCacheControlStreamingINTEL = 2,
+    SpvLoadCacheControlInvalidateAfterReadINTEL = 3,
+    SpvLoadCacheControlConstCachedINTEL = 4,
+    SpvLoadCacheControlMax = 0x7fffffff,
+} SpvLoadCacheControl;
+
+typedef enum SpvStoreCacheControl_ {
+    SpvStoreCacheControlUncachedINTEL = 0,
+    SpvStoreCacheControlWriteThroughINTEL = 1,
+    SpvStoreCacheControlWriteBackINTEL = 2,
+    SpvStoreCacheControlStreamingINTEL = 3,
+    SpvStoreCacheControlMax = 0x7fffffff,
+} SpvStoreCacheControl;
+
 typedef enum SpvOp_ {
     SpvOpNop = 0,
     SpvOpUndef = 1,
@@ -1564,6 +1739,9 @@
     SpvOpPtrEqual = 401,
     SpvOpPtrNotEqual = 402,
     SpvOpPtrDiff = 403,
+    SpvOpColorAttachmentReadEXT = 4160,
+    SpvOpDepthAttachmentReadEXT = 4161,
+    SpvOpStencilAttachmentReadEXT = 4162,
     SpvOpTerminateInvocation = 4416,
     SpvOpSubgroupBallotKHR = 4421,
     SpvOpSubgroupFirstInvocationKHR = 4422,
@@ -1589,6 +1767,11 @@
     SpvOpUDotAccSatKHR = 4454,
     SpvOpSUDotAccSat = 4455,
     SpvOpSUDotAccSatKHR = 4455,
+    SpvOpTypeCooperativeMatrixKHR = 4456,
+    SpvOpCooperativeMatrixLoadKHR = 4457,
+    SpvOpCooperativeMatrixStoreKHR = 4458,
+    SpvOpCooperativeMatrixMulAddKHR = 4459,
+    SpvOpCooperativeMatrixLengthKHR = 4460,
     SpvOpTypeRayQueryKHR = 4472,
     SpvOpRayQueryInitializeKHR = 4473,
     SpvOpRayQueryTerminateKHR = 4474,
@@ -1596,6 +1779,10 @@
     SpvOpRayQueryConfirmIntersectionKHR = 4476,
     SpvOpRayQueryProceedKHR = 4477,
     SpvOpRayQueryGetIntersectionTypeKHR = 4479,
+    SpvOpImageSampleWeightedQCOM = 4480,
+    SpvOpImageBoxFilterQCOM = 4481,
+    SpvOpImageBlockMatchSSDQCOM = 4482,
+    SpvOpImageBlockMatchSADQCOM = 4483,
     SpvOpGroupIAddNonUniformAMD = 5000,
     SpvOpGroupFAddNonUniformAMD = 5001,
     SpvOpGroupFMinNonUniformAMD = 5002,
@@ -1607,11 +1794,51 @@
     SpvOpFragmentMaskFetchAMD = 5011,
     SpvOpFragmentFetchAMD = 5012,
     SpvOpReadClockKHR = 5056,
+    SpvOpFinalizeNodePayloadsAMDX = 5075,
+    SpvOpFinishWritingNodePayloadAMDX = 5078,
+    SpvOpInitializeNodePayloadsAMDX = 5090,
+    SpvOpGroupNonUniformQuadAllKHR = 5110,
+    SpvOpGroupNonUniformQuadAnyKHR = 5111,
+    SpvOpHitObjectRecordHitMotionNV = 5249,
+    SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
+    SpvOpHitObjectRecordMissMotionNV = 5251,
+    SpvOpHitObjectGetWorldToObjectNV = 5252,
+    SpvOpHitObjectGetObjectToWorldNV = 5253,
+    SpvOpHitObjectGetObjectRayDirectionNV = 5254,
+    SpvOpHitObjectGetObjectRayOriginNV = 5255,
+    SpvOpHitObjectTraceRayMotionNV = 5256,
+    SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
+    SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+    SpvOpHitObjectRecordEmptyNV = 5259,
+    SpvOpHitObjectTraceRayNV = 5260,
+    SpvOpHitObjectRecordHitNV = 5261,
+    SpvOpHitObjectRecordHitWithIndexNV = 5262,
+    SpvOpHitObjectRecordMissNV = 5263,
+    SpvOpHitObjectExecuteShaderNV = 5264,
+    SpvOpHitObjectGetCurrentTimeNV = 5265,
+    SpvOpHitObjectGetAttributesNV = 5266,
+    SpvOpHitObjectGetHitKindNV = 5267,
+    SpvOpHitObjectGetPrimitiveIndexNV = 5268,
+    SpvOpHitObjectGetGeometryIndexNV = 5269,
+    SpvOpHitObjectGetInstanceIdNV = 5270,
+    SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
+    SpvOpHitObjectGetWorldRayDirectionNV = 5272,
+    SpvOpHitObjectGetWorldRayOriginNV = 5273,
+    SpvOpHitObjectGetRayTMaxNV = 5274,
+    SpvOpHitObjectGetRayTMinNV = 5275,
+    SpvOpHitObjectIsEmptyNV = 5276,
+    SpvOpHitObjectIsHitNV = 5277,
+    SpvOpHitObjectIsMissNV = 5278,
+    SpvOpReorderThreadWithHitObjectNV = 5279,
+    SpvOpReorderThreadWithHintNV = 5280,
+    SpvOpTypeHitObjectNV = 5281,
     SpvOpImageSampleFootprintNV = 5283,
     SpvOpEmitMeshTasksEXT = 5294,
     SpvOpSetMeshOutputsEXT = 5295,
     SpvOpGroupNonUniformPartitionNV = 5296,
     SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
+    SpvOpFetchMicroTriangleVertexPositionNV = 5300,
+    SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
     SpvOpReportIntersectionKHR = 5334,
     SpvOpReportIntersectionNV = 5334,
     SpvOpIgnoreIntersectionNV = 5335,
@@ -1619,6 +1846,7 @@
     SpvOpTraceNV = 5337,
     SpvOpTraceMotionNV = 5338,
     SpvOpTraceRayMotionNV = 5339,
+    SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     SpvOpTypeAccelerationStructureKHR = 5341,
     SpvOpTypeAccelerationStructureNV = 5341,
     SpvOpExecuteCallableNV = 5344,
@@ -1880,6 +2108,9 @@
     SpvOpTypeStructContinuedINTEL = 6090,
     SpvOpConstantCompositeContinuedINTEL = 6091,
     SpvOpSpecConstantCompositeContinuedINTEL = 6092,
+    SpvOpCompositeConstructContinuedINTEL = 6096,
+    SpvOpConvertFToBF16INTEL = 6116,
+    SpvOpConvertBF16ToFINTEL = 6117,
     SpvOpControlBarrierArriveINTEL = 6142,
     SpvOpControlBarrierWaitINTEL = 6143,
     SpvOpGroupIMulKHR = 6401,
@@ -1890,6 +2121,8 @@
     SpvOpGroupLogicalAndKHR = 6406,
     SpvOpGroupLogicalOrKHR = 6407,
     SpvOpGroupLogicalXorKHR = 6408,
+    SpvOpMaskedGatherINTEL = 6428,
+    SpvOpMaskedScatterINTEL = 6429,
     SpvOpMax = 0x7fffffff,
 } SpvOp;
 
@@ -2245,6 +2478,9 @@
     case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
     case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
     case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
+    case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
     case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@@ -2264,6 +2500,11 @@
     case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
     case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
     case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
+    case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
+    case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2271,6 +2512,10 @@
     case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
+    case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
+    case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
+    case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
     case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -2282,17 +2527,58 @@
     case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
     case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
     case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
+    case SpvOpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
     case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
     case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
     case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
     case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
     case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
+    case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
     case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
     case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
     case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2550,6 +2836,9 @@
     case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+    case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
     case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
@@ -2560,6 +2849,8 @@
     case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index e25264a..b9c8743 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -69,6 +69,11 @@
     SourceLanguageHLSL = 5,
     SourceLanguageCPP_for_OpenCL = 6,
     SourceLanguageSYCL = 7,
+    SourceLanguageHERO_C = 8,
+    SourceLanguageNZSL = 9,
+    SourceLanguageWGSL = 10,
+    SourceLanguageSlang = 11,
+    SourceLanguageZig = 12,
     SourceLanguageMax = 0x7fffffff,
 };
 
@@ -156,6 +161,9 @@
     ExecutionModeSubgroupsPerWorkgroupId = 37,
     ExecutionModeLocalSizeId = 38,
     ExecutionModeLocalSizeHintId = 39,
+    ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
+    ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
+    ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
     ExecutionModeSubgroupUniformControlFlowKHR = 4421,
     ExecutionModePostDepthCoverage = 4446,
     ExecutionModeDenormPreserve = 4459,
@@ -165,12 +173,19 @@
     ExecutionModeRoundingModeRTZ = 4463,
     ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
     ExecutionModeStencilRefReplacingEXT = 5027,
+    ExecutionModeCoalescingAMDX = 5069,
+    ExecutionModeMaxNodeRecursionAMDX = 5071,
+    ExecutionModeStaticNumWorkgroupsAMDX = 5072,
+    ExecutionModeShaderIndexAMDX = 5073,
+    ExecutionModeMaxNumWorkgroupsAMDX = 5077,
     ExecutionModeStencilRefUnchangedFrontAMD = 5079,
     ExecutionModeStencilRefGreaterFrontAMD = 5080,
     ExecutionModeStencilRefLessFrontAMD = 5081,
     ExecutionModeStencilRefUnchangedBackAMD = 5082,
     ExecutionModeStencilRefGreaterBackAMD = 5083,
     ExecutionModeStencilRefLessBackAMD = 5084,
+    ExecutionModeQuadDerivativesKHR = 5088,
+    ExecutionModeRequireFullQuadsKHR = 5089,
     ExecutionModeOutputLinesEXT = 5269,
     ExecutionModeOutputLinesNV = 5269,
     ExecutionModeOutputPrimitivesEXT = 5270,
@@ -195,6 +210,10 @@
     ExecutionModeNoGlobalOffsetINTEL = 5895,
     ExecutionModeNumSIMDWorkitemsINTEL = 5896,
     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
+    ExecutionModeMaximallyReconvergesKHR = 6023,
+    ExecutionModeFPFastMathDefault = 6028,
+    ExecutionModeStreamingInterfaceINTEL = 6154,
+    ExecutionModeRegisterMapInterfaceINTEL = 6160,
     ExecutionModeNamedBarrierCountINTEL = 6417,
     ExecutionModeMax = 0x7fffffff,
 };
@@ -213,6 +232,9 @@
     StorageClassAtomicCounter = 10,
     StorageClassImage = 11,
     StorageClassStorageBuffer = 12,
+    StorageClassTileImageEXT = 4172,
+    StorageClassNodePayloadAMDX = 5068,
+    StorageClassNodeOutputPayloadAMDX = 5076,
     StorageClassCallableDataKHR = 5328,
     StorageClassCallableDataNV = 5328,
     StorageClassIncomingCallableDataKHR = 5329,
@@ -227,6 +249,7 @@
     StorageClassShaderRecordBufferNV = 5343,
     StorageClassPhysicalStorageBuffer = 5349,
     StorageClassPhysicalStorageBufferEXT = 5349,
+    StorageClassHitObjectAttributeNV = 5385,
     StorageClassTaskPayloadWorkgroupEXT = 5402,
     StorageClassCodeSectionINTEL = 5605,
     StorageClassDeviceOnlyINTEL = 5936,
@@ -242,6 +265,7 @@
     DimRect = 4,
     DimBuffer = 5,
     DimSubpassData = 6,
+    DimTileImageDataEXT = 4173,
     DimMax = 0x7fffffff,
 };
 
@@ -348,6 +372,8 @@
     ImageChannelDataTypeFloat = 14,
     ImageChannelDataTypeUnormInt24 = 15,
     ImageChannelDataTypeUnormInt101010_2 = 16,
+    ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
+    ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
     ImageChannelDataTypeMax = 0x7fffffff,
 };
 
@@ -405,8 +431,11 @@
     FPFastMathModeNSZShift = 2,
     FPFastMathModeAllowRecipShift = 3,
     FPFastMathModeFastShift = 4,
+    FPFastMathModeAllowContractShift = 16,
     FPFastMathModeAllowContractFastINTELShift = 16,
+    FPFastMathModeAllowReassocShift = 17,
     FPFastMathModeAllowReassocINTELShift = 17,
+    FPFastMathModeAllowTransformShift = 18,
     FPFastMathModeMax = 0x7fffffff,
 };
 
@@ -417,8 +446,11 @@
     FPFastMathModeNSZMask = 0x00000004,
     FPFastMathModeAllowRecipMask = 0x00000008,
     FPFastMathModeFastMask = 0x00000010,
+    FPFastMathModeAllowContractMask = 0x00010000,
     FPFastMathModeAllowContractFastINTELMask = 0x00010000,
+    FPFastMathModeAllowReassocMask = 0x00020000,
     FPFastMathModeAllowReassocINTELMask = 0x00020000,
+    FPFastMathModeAllowTransformMask = 0x00040000,
 };
 
 enum FPRoundingMode {
@@ -452,6 +484,7 @@
     FunctionParameterAttributeNoCapture = 5,
     FunctionParameterAttributeNoWrite = 6,
     FunctionParameterAttributeNoReadWrite = 7,
+    FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
     FunctionParameterAttributeMax = 0x7fffffff,
 };
 
@@ -505,7 +538,13 @@
     DecorationMaxByteOffsetId = 47,
     DecorationNoSignedWrap = 4469,
     DecorationNoUnsignedWrap = 4470,
+    DecorationWeightTextureQCOM = 4487,
+    DecorationBlockMatchTextureQCOM = 4488,
     DecorationExplicitInterpAMD = 4999,
+    DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
+    DecorationNodeMaxPayloadsAMDX = 5020,
+    DecorationTrackFinishWritingAMDX = 5078,
+    DecorationPayloadNodeNameAMDX = 5091,
     DecorationOverrideCoverageNV = 5248,
     DecorationPassthroughNV = 5250,
     DecorationViewportRelativeNV = 5252,
@@ -522,6 +561,7 @@
     DecorationRestrictPointerEXT = 5355,
     DecorationAliasedPointer = 5356,
     DecorationAliasedPointerEXT = 5356,
+    DecorationHitObjectShaderRecordBufferNV = 5386,
     DecorationBindlessSamplerNV = 5398,
     DecorationBindlessImageNV = 5399,
     DecorationBoundSamplerNV = 5400,
@@ -554,20 +594,45 @@
     DecorationMergeINTEL = 5834,
     DecorationBankBitsINTEL = 5835,
     DecorationForcePow2DepthINTEL = 5836,
+    DecorationStridesizeINTEL = 5883,
+    DecorationWordsizeINTEL = 5884,
+    DecorationTrueDualPortINTEL = 5885,
     DecorationBurstCoalesceINTEL = 5899,
     DecorationCacheSizeINTEL = 5900,
     DecorationDontStaticallyCoalesceINTEL = 5901,
     DecorationPrefetchINTEL = 5902,
     DecorationStallEnableINTEL = 5905,
     DecorationFuseLoopsInFunctionINTEL = 5907,
+    DecorationMathOpDSPModeINTEL = 5909,
     DecorationAliasScopeINTEL = 5914,
     DecorationNoAliasINTEL = 5915,
+    DecorationInitiationIntervalINTEL = 5917,
+    DecorationMaxConcurrencyINTEL = 5918,
+    DecorationPipelineEnableINTEL = 5919,
     DecorationBufferLocationINTEL = 5921,
     DecorationIOPipeStorageINTEL = 5944,
     DecorationFunctionFloatingPointModeINTEL = 6080,
     DecorationSingleElementVectorINTEL = 6085,
     DecorationVectorComputeCallableFunctionINTEL = 6087,
     DecorationMediaBlockIOINTEL = 6140,
+    DecorationStallFreeINTEL = 6151,
+    DecorationFPMaxErrorDecorationINTEL = 6170,
+    DecorationLatencyControlLabelINTEL = 6172,
+    DecorationLatencyControlConstraintINTEL = 6173,
+    DecorationConduitKernelArgumentINTEL = 6175,
+    DecorationRegisterMapKernelArgumentINTEL = 6176,
+    DecorationMMHostInterfaceAddressWidthINTEL = 6177,
+    DecorationMMHostInterfaceDataWidthINTEL = 6178,
+    DecorationMMHostInterfaceLatencyINTEL = 6179,
+    DecorationMMHostInterfaceReadWriteModeINTEL = 6180,
+    DecorationMMHostInterfaceMaxBurstINTEL = 6181,
+    DecorationMMHostInterfaceWaitRequestINTEL = 6182,
+    DecorationStableKernelArgumentINTEL = 6183,
+    DecorationHostAccessINTEL = 6188,
+    DecorationInitModeINTEL = 6190,
+    DecorationImplementInRegisterMapINTEL = 6191,
+    DecorationCacheControlLoadINTEL = 6442,
+    DecorationCacheControlStoreINTEL = 6443,
     DecorationMax = 0x7fffffff,
 };
 
@@ -613,6 +678,11 @@
     BuiltInSubgroupLocalInvocationId = 41,
     BuiltInVertexIndex = 42,
     BuiltInInstanceIndex = 43,
+    BuiltInCoreIDARM = 4160,
+    BuiltInCoreCountARM = 4161,
+    BuiltInCoreMaxIDARM = 4162,
+    BuiltInWarpIDARM = 4163,
+    BuiltInWarpMaxIDARM = 4164,
     BuiltInSubgroupEqMask = 4416,
     BuiltInSubgroupEqMaskKHR = 4416,
     BuiltInSubgroupGeMask = 4417,
@@ -638,6 +708,8 @@
     BuiltInBaryCoordSmoothSampleAMD = 4997,
     BuiltInBaryCoordPullModelAMD = 4998,
     BuiltInFragStencilRefEXT = 5014,
+    BuiltInCoalescedInputCountAMDX = 5021,
+    BuiltInShaderIndexAMDX = 5073,
     BuiltInViewportMaskNV = 5253,
     BuiltInSecondaryPositionNV = 5257,
     BuiltInSecondaryViewportMaskNV = 5258,
@@ -690,6 +762,9 @@
     BuiltInHitKindKHR = 5333,
     BuiltInHitKindNV = 5333,
     BuiltInCurrentRayTimeNV = 5334,
+    BuiltInHitTriangleVertexPositionsKHR = 5335,
+    BuiltInHitMicroTriangleVertexPositionsNV = 5337,
+    BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
     BuiltInIncomingRayFlagsKHR = 5351,
     BuiltInIncomingRayFlagsNV = 5351,
     BuiltInRayGeometryIndexKHR = 5352,
@@ -697,6 +772,8 @@
     BuiltInSMCountNV = 5375,
     BuiltInWarpIDNV = 5376,
     BuiltInSMIDNV = 5377,
+    BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
+    BuiltInHitKindBackFacingMicroTriangleNV = 5406,
     BuiltInCullMaskKHR = 6021,
     BuiltInMax = 0x7fffffff,
 };
@@ -731,6 +808,8 @@
     LoopControlMaxInterleavingINTELShift = 21,
     LoopControlSpeculatedIterationsINTELShift = 22,
     LoopControlNoFusionINTELShift = 23,
+    LoopControlLoopCountINTELShift = 24,
+    LoopControlMaxReinvocationDelayINTELShift = 25,
     LoopControlMax = 0x7fffffff,
 };
 
@@ -753,6 +832,8 @@
     LoopControlMaxInterleavingINTELMask = 0x00200000,
     LoopControlSpeculatedIterationsINTELMask = 0x00400000,
     LoopControlNoFusionINTELMask = 0x00800000,
+    LoopControlLoopCountINTELMask = 0x01000000,
+    LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
 };
 
 enum FunctionControlShift {
@@ -956,6 +1037,10 @@
     CapabilityShaderLayer = 69,
     CapabilityShaderViewportIndex = 70,
     CapabilityUniformDecoration = 71,
+    CapabilityCoreBuiltinsARM = 4165,
+    CapabilityTileImageColorReadAccessEXT = 4166,
+    CapabilityTileImageDepthReadAccessEXT = 4167,
+    CapabilityTileImageStencilReadAccessEXT = 4168,
     CapabilityFragmentShadingRateKHR = 4422,
     CapabilitySubgroupBallotKHR = 4423,
     CapabilityDrawParameters = 4427,
@@ -987,6 +1072,9 @@
     CapabilityRayQueryKHR = 4472,
     CapabilityRayTraversalPrimitiveCullingKHR = 4478,
     CapabilityRayTracingKHR = 4479,
+    CapabilityTextureSampleWeightedQCOM = 4484,
+    CapabilityTextureBoxFilterQCOM = 4485,
+    CapabilityTextureBlockMatchQCOM = 4486,
     CapabilityFloat16ImageAMD = 5008,
     CapabilityImageGatherBiasLodAMD = 5009,
     CapabilityFragmentMaskAMD = 5010,
@@ -994,6 +1082,8 @@
     CapabilityImageReadWriteLodAMD = 5015,
     CapabilityInt64ImageEXT = 5016,
     CapabilityShaderClockKHR = 5055,
+    CapabilityShaderEnqueueAMDX = 5067,
+    CapabilityQuadControlKHR = 5087,
     CapabilitySampleMaskOverrideCoverageNV = 5249,
     CapabilityGeometryShaderPassthroughNV = 5251,
     CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -1035,6 +1125,7 @@
     CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    CapabilityRayTracingPositionFetchKHR = 5336,
     CapabilityRayTracingNV = 5340,
     CapabilityRayTracingMotionBlurNV = 5341,
     CapabilityVulkanMemoryModel = 5345,
@@ -1052,7 +1143,12 @@
     CapabilityFragmentShaderPixelInterlockEXT = 5378,
     CapabilityDemoteToHelperInvocation = 5379,
     CapabilityDemoteToHelperInvocationEXT = 5379,
+    CapabilityDisplacementMicromapNV = 5380,
+    CapabilityRayTracingOpacityMicromapEXT = 5381,
+    CapabilityShaderInvocationReorderNV = 5383,
     CapabilityBindlessTextureNV = 5390,
+    CapabilityRayQueryPositionFetchKHR = 5391,
+    CapabilityRayTracingDisplacementMicromapNV = 5409,
     CapabilitySubgroupShuffleINTEL = 5568,
     CapabilitySubgroupBufferBlockIOINTEL = 5569,
     CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1085,10 +1181,13 @@
     CapabilityFPGAMemoryAccessesINTEL = 5898,
     CapabilityFPGAClusterAttributesINTEL = 5904,
     CapabilityLoopFuseINTEL = 5906,
+    CapabilityFPGADSPControlINTEL = 5908,
     CapabilityMemoryAccessAliasingINTEL = 5910,
+    CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
     CapabilityFPGABufferLocationINTEL = 5920,
     CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
     CapabilityUSMStorageClassesINTEL = 5935,
+    CapabilityRuntimeAlignedAttributeINTEL = 5939,
     CapabilityIOPipesINTEL = 5943,
     CapabilityBlockingPipesINTEL = 5945,
     CapabilityFPGARegINTEL = 5948,
@@ -1101,16 +1200,28 @@
     CapabilityDotProduct = 6019,
     CapabilityDotProductKHR = 6019,
     CapabilityRayCullMaskKHR = 6020,
+    CapabilityCooperativeMatrixKHR = 6022,
     CapabilityBitInstructions = 6025,
     CapabilityGroupNonUniformRotateKHR = 6026,
+    CapabilityFloatControls2 = 6029,
     CapabilityAtomicFloat32AddEXT = 6033,
     CapabilityAtomicFloat64AddEXT = 6034,
-    CapabilityLongConstantCompositeINTEL = 6089,
+    CapabilityLongCompositesINTEL = 6089,
     CapabilityOptNoneINTEL = 6094,
     CapabilityAtomicFloat16AddEXT = 6095,
     CapabilityDebugInfoModuleINTEL = 6114,
+    CapabilityBFloat16ConversionINTEL = 6115,
     CapabilitySplitBarrierINTEL = 6141,
+    CapabilityFPGAClusterAttributesV2INTEL = 6150,
+    CapabilityFPGAKernelAttributesv2INTEL = 6161,
+    CapabilityFPMaxErrorINTEL = 6169,
+    CapabilityFPGALatencyControlINTEL = 6171,
+    CapabilityFPGAArgumentInterfacesINTEL = 6174,
+    CapabilityGlobalVariableHostAccessINTEL = 6187,
+    CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
     CapabilityGroupUniformArithmeticKHR = 6400,
+    CapabilityMaskedGatherScatterINTEL = 6427,
+    CapabilityCacheControlsINTEL = 6441,
     CapabilityMax = 0x7fffffff,
 };
 
@@ -1125,6 +1236,7 @@
     RayFlagsCullNoOpaqueKHRShift = 7,
     RayFlagsSkipTrianglesKHRShift = 8,
     RayFlagsSkipAABBsKHRShift = 9,
+    RayFlagsForceOpacityMicromap2StateEXTShift = 10,
     RayFlagsMax = 0x7fffffff,
 };
 
@@ -1140,6 +1252,7 @@
     RayFlagsCullNoOpaqueKHRMask = 0x00000080,
     RayFlagsSkipTrianglesKHRMask = 0x00000100,
     RayFlagsSkipAABBsKHRMask = 0x00000200,
+    RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
 };
 
 enum RayQueryIntersection {
@@ -1215,6 +1328,68 @@
     PackedVectorFormatMax = 0x7fffffff,
 };
 
+enum CooperativeMatrixOperandsShift {
+    CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
+    CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
+    CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
+    CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
+    CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
+    CooperativeMatrixOperandsMax = 0x7fffffff,
+};
+
+enum CooperativeMatrixOperandsMask {
+    CooperativeMatrixOperandsMaskNone = 0,
+    CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
+    CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
+    CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
+    CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
+    CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
+};
+
+enum CooperativeMatrixLayout {
+    CooperativeMatrixLayoutRowMajorKHR = 0,
+    CooperativeMatrixLayoutColumnMajorKHR = 1,
+    CooperativeMatrixLayoutMax = 0x7fffffff,
+};
+
+enum CooperativeMatrixUse {
+    CooperativeMatrixUseMatrixAKHR = 0,
+    CooperativeMatrixUseMatrixBKHR = 1,
+    CooperativeMatrixUseMatrixAccumulatorKHR = 2,
+    CooperativeMatrixUseMax = 0x7fffffff,
+};
+
+enum InitializationModeQualifier {
+    InitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
+    InitializationModeQualifierInitOnDeviceResetINTEL = 1,
+    InitializationModeQualifierMax = 0x7fffffff,
+};
+
+enum HostAccessQualifier {
+    HostAccessQualifierNoneINTEL = 0,
+    HostAccessQualifierReadINTEL = 1,
+    HostAccessQualifierWriteINTEL = 2,
+    HostAccessQualifierReadWriteINTEL = 3,
+    HostAccessQualifierMax = 0x7fffffff,
+};
+
+enum LoadCacheControl {
+    LoadCacheControlUncachedINTEL = 0,
+    LoadCacheControlCachedINTEL = 1,
+    LoadCacheControlStreamingINTEL = 2,
+    LoadCacheControlInvalidateAfterReadINTEL = 3,
+    LoadCacheControlConstCachedINTEL = 4,
+    LoadCacheControlMax = 0x7fffffff,
+};
+
+enum StoreCacheControl {
+    StoreCacheControlUncachedINTEL = 0,
+    StoreCacheControlWriteThroughINTEL = 1,
+    StoreCacheControlWriteBackINTEL = 2,
+    StoreCacheControlStreamingINTEL = 3,
+    StoreCacheControlMax = 0x7fffffff,
+};
+
 enum Op {
     OpNop = 0,
     OpUndef = 1,
@@ -1560,6 +1735,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1585,6 +1763,11 @@
     OpUDotAccSatKHR = 4454,
     OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
+    OpTypeCooperativeMatrixKHR = 4456,
+    OpCooperativeMatrixLoadKHR = 4457,
+    OpCooperativeMatrixStoreKHR = 4458,
+    OpCooperativeMatrixMulAddKHR = 4459,
+    OpCooperativeMatrixLengthKHR = 4460,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
@@ -1592,6 +1775,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1603,11 +1790,51 @@
     OpFragmentMaskFetchAMD = 5011,
     OpFragmentFetchAMD = 5012,
     OpReadClockKHR = 5056,
+    OpFinalizeNodePayloadsAMDX = 5075,
+    OpFinishWritingNodePayloadAMDX = 5078,
+    OpInitializeNodePayloadsAMDX = 5090,
+    OpGroupNonUniformQuadAllKHR = 5110,
+    OpGroupNonUniformQuadAnyKHR = 5111,
+    OpHitObjectRecordHitMotionNV = 5249,
+    OpHitObjectRecordHitWithIndexMotionNV = 5250,
+    OpHitObjectRecordMissMotionNV = 5251,
+    OpHitObjectGetWorldToObjectNV = 5252,
+    OpHitObjectGetObjectToWorldNV = 5253,
+    OpHitObjectGetObjectRayDirectionNV = 5254,
+    OpHitObjectGetObjectRayOriginNV = 5255,
+    OpHitObjectTraceRayMotionNV = 5256,
+    OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+    OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+    OpHitObjectRecordEmptyNV = 5259,
+    OpHitObjectTraceRayNV = 5260,
+    OpHitObjectRecordHitNV = 5261,
+    OpHitObjectRecordHitWithIndexNV = 5262,
+    OpHitObjectRecordMissNV = 5263,
+    OpHitObjectExecuteShaderNV = 5264,
+    OpHitObjectGetCurrentTimeNV = 5265,
+    OpHitObjectGetAttributesNV = 5266,
+    OpHitObjectGetHitKindNV = 5267,
+    OpHitObjectGetPrimitiveIndexNV = 5268,
+    OpHitObjectGetGeometryIndexNV = 5269,
+    OpHitObjectGetInstanceIdNV = 5270,
+    OpHitObjectGetInstanceCustomIndexNV = 5271,
+    OpHitObjectGetWorldRayDirectionNV = 5272,
+    OpHitObjectGetWorldRayOriginNV = 5273,
+    OpHitObjectGetRayTMaxNV = 5274,
+    OpHitObjectGetRayTMinNV = 5275,
+    OpHitObjectIsEmptyNV = 5276,
+    OpHitObjectIsHitNV = 5277,
+    OpHitObjectIsMissNV = 5278,
+    OpReorderThreadWithHitObjectNV = 5279,
+    OpReorderThreadWithHintNV = 5280,
+    OpTypeHitObjectNV = 5281,
     OpImageSampleFootprintNV = 5283,
     OpEmitMeshTasksEXT = 5294,
     OpSetMeshOutputsEXT = 5295,
     OpGroupNonUniformPartitionNV = 5296,
     OpWritePackedPrimitiveIndices4x8NV = 5299,
+    OpFetchMicroTriangleVertexPositionNV = 5300,
+    OpFetchMicroTriangleVertexBarycentricNV = 5301,
     OpReportIntersectionKHR = 5334,
     OpReportIntersectionNV = 5334,
     OpIgnoreIntersectionNV = 5335,
@@ -1615,6 +1842,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1876,6 +2104,9 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpCompositeConstructContinuedINTEL = 6096,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
@@ -1886,6 +2117,8 @@
     OpGroupLogicalAndKHR = 6406,
     OpGroupLogicalOrKHR = 6407,
     OpGroupLogicalXorKHR = 6408,
+    OpMaskedGatherINTEL = 6428,
+    OpMaskedScatterINTEL = 6429,
     OpMax = 0x7fffffff,
 };
 
@@ -2241,6 +2474,9 @@
     case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
     case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
     case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+    case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
     case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
     case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@@ -2260,6 +2496,11 @@
     case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
     case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
     case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
+    case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
+    case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
+    case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
+    case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2267,6 +2508,10 @@
     case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
     case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+    case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
+    case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
     case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -2278,17 +2523,58 @@
     case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
     case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
     case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+    case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
+    case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
+    case OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+    case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+    case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+    case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+    case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+    case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
     case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
     case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
     case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
     case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
     case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
+    case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
+    case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
     case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
     case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
     case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
     case OpTraceNV: *hasResult = false; *hasResultType = false; break;
     case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
     case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
     case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
     case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
     case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2546,6 +2832,9 @@
     case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+    case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
+    case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
     case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
     case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
     case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
@@ -2556,22 +2845,58 @@
     case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
     case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
     case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
+    case OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
 
-// Overload operator| for mask bit combining
+// Overload bitwise operators for mask bit combining
 
 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
+inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
+inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
+inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
+inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
+inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
+inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
+inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
+inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
+inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
+inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
+inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
+inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
+inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
+inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
+inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
+inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
+inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
+inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
+inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
+inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
+inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
+inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
+inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
 
 }  // end namespace spv
 
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 555f57b..e32ff7a 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -69,6 +69,11 @@
     HLSL = 5,
     CPP_for_OpenCL = 6,
     SYCL = 7,
+    HERO_C = 8,
+    NZSL = 9,
+    WGSL = 10,
+    Slang = 11,
+    Zig = 12,
     Max = 0x7fffffff,
 };
 
@@ -156,6 +161,9 @@
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
+    NonCoherentColorAttachmentReadEXT = 4169,
+    NonCoherentDepthAttachmentReadEXT = 4170,
+    NonCoherentStencilAttachmentReadEXT = 4171,
     SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
@@ -165,12 +173,19 @@
     RoundingModeRTZ = 4463,
     EarlyAndLateFragmentTestsAMD = 5017,
     StencilRefReplacingEXT = 5027,
+    CoalescingAMDX = 5069,
+    MaxNodeRecursionAMDX = 5071,
+    StaticNumWorkgroupsAMDX = 5072,
+    ShaderIndexAMDX = 5073,
+    MaxNumWorkgroupsAMDX = 5077,
     StencilRefUnchangedFrontAMD = 5079,
     StencilRefGreaterFrontAMD = 5080,
     StencilRefLessFrontAMD = 5081,
     StencilRefUnchangedBackAMD = 5082,
     StencilRefGreaterBackAMD = 5083,
     StencilRefLessBackAMD = 5084,
+    QuadDerivativesKHR = 5088,
+    RequireFullQuadsKHR = 5089,
     OutputLinesEXT = 5269,
     OutputLinesNV = 5269,
     OutputPrimitivesEXT = 5270,
@@ -195,6 +210,10 @@
     NoGlobalOffsetINTEL = 5895,
     NumSIMDWorkitemsINTEL = 5896,
     SchedulerTargetFmaxMhzINTEL = 5903,
+    MaximallyReconvergesKHR = 6023,
+    FPFastMathDefault = 6028,
+    StreamingInterfaceINTEL = 6154,
+    RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
     Max = 0x7fffffff,
 };
@@ -213,6 +232,9 @@
     AtomicCounter = 10,
     Image = 11,
     StorageBuffer = 12,
+    TileImageEXT = 4172,
+    NodePayloadAMDX = 5068,
+    NodeOutputPayloadAMDX = 5076,
     CallableDataKHR = 5328,
     CallableDataNV = 5328,
     IncomingCallableDataKHR = 5329,
@@ -227,6 +249,7 @@
     ShaderRecordBufferNV = 5343,
     PhysicalStorageBuffer = 5349,
     PhysicalStorageBufferEXT = 5349,
+    HitObjectAttributeNV = 5385,
     TaskPayloadWorkgroupEXT = 5402,
     CodeSectionINTEL = 5605,
     DeviceOnlyINTEL = 5936,
@@ -242,6 +265,7 @@
     Rect = 4,
     Buffer = 5,
     SubpassData = 6,
+    TileImageDataEXT = 4173,
     Max = 0x7fffffff,
 };
 
@@ -348,6 +372,8 @@
     Float = 14,
     UnormInt24 = 15,
     UnormInt101010_2 = 16,
+    UnsignedIntRaw10EXT = 19,
+    UnsignedIntRaw12EXT = 20,
     Max = 0x7fffffff,
 };
 
@@ -405,8 +431,11 @@
     NSZ = 2,
     AllowRecip = 3,
     Fast = 4,
+    AllowContract = 16,
     AllowContractFastINTEL = 16,
+    AllowReassoc = 17,
     AllowReassocINTEL = 17,
+    AllowTransform = 18,
     Max = 0x7fffffff,
 };
 
@@ -417,8 +446,11 @@
     NSZ = 0x00000004,
     AllowRecip = 0x00000008,
     Fast = 0x00000010,
+    AllowContract = 0x00010000,
     AllowContractFastINTEL = 0x00010000,
+    AllowReassoc = 0x00020000,
     AllowReassocINTEL = 0x00020000,
+    AllowTransform = 0x00040000,
 };
 
 enum class FPRoundingMode : unsigned {
@@ -452,6 +484,7 @@
     NoCapture = 5,
     NoWrite = 6,
     NoReadWrite = 7,
+    RuntimeAlignedINTEL = 5940,
     Max = 0x7fffffff,
 };
 
@@ -505,7 +538,13 @@
     MaxByteOffsetId = 47,
     NoSignedWrap = 4469,
     NoUnsignedWrap = 4470,
+    WeightTextureQCOM = 4487,
+    BlockMatchTextureQCOM = 4488,
     ExplicitInterpAMD = 4999,
+    NodeSharesPayloadLimitsWithAMDX = 5019,
+    NodeMaxPayloadsAMDX = 5020,
+    TrackFinishWritingAMDX = 5078,
+    PayloadNodeNameAMDX = 5091,
     OverrideCoverageNV = 5248,
     PassthroughNV = 5250,
     ViewportRelativeNV = 5252,
@@ -522,6 +561,7 @@
     RestrictPointerEXT = 5355,
     AliasedPointer = 5356,
     AliasedPointerEXT = 5356,
+    HitObjectShaderRecordBufferNV = 5386,
     BindlessSamplerNV = 5398,
     BindlessImageNV = 5399,
     BoundSamplerNV = 5400,
@@ -554,20 +594,45 @@
     MergeINTEL = 5834,
     BankBitsINTEL = 5835,
     ForcePow2DepthINTEL = 5836,
+    StridesizeINTEL = 5883,
+    WordsizeINTEL = 5884,
+    TrueDualPortINTEL = 5885,
     BurstCoalesceINTEL = 5899,
     CacheSizeINTEL = 5900,
     DontStaticallyCoalesceINTEL = 5901,
     PrefetchINTEL = 5902,
     StallEnableINTEL = 5905,
     FuseLoopsInFunctionINTEL = 5907,
+    MathOpDSPModeINTEL = 5909,
     AliasScopeINTEL = 5914,
     NoAliasINTEL = 5915,
+    InitiationIntervalINTEL = 5917,
+    MaxConcurrencyINTEL = 5918,
+    PipelineEnableINTEL = 5919,
     BufferLocationINTEL = 5921,
     IOPipeStorageINTEL = 5944,
     FunctionFloatingPointModeINTEL = 6080,
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
     MediaBlockIOINTEL = 6140,
+    StallFreeINTEL = 6151,
+    FPMaxErrorDecorationINTEL = 6170,
+    LatencyControlLabelINTEL = 6172,
+    LatencyControlConstraintINTEL = 6173,
+    ConduitKernelArgumentINTEL = 6175,
+    RegisterMapKernelArgumentINTEL = 6176,
+    MMHostInterfaceAddressWidthINTEL = 6177,
+    MMHostInterfaceDataWidthINTEL = 6178,
+    MMHostInterfaceLatencyINTEL = 6179,
+    MMHostInterfaceReadWriteModeINTEL = 6180,
+    MMHostInterfaceMaxBurstINTEL = 6181,
+    MMHostInterfaceWaitRequestINTEL = 6182,
+    StableKernelArgumentINTEL = 6183,
+    HostAccessINTEL = 6188,
+    InitModeINTEL = 6190,
+    ImplementInRegisterMapINTEL = 6191,
+    CacheControlLoadINTEL = 6442,
+    CacheControlStoreINTEL = 6443,
     Max = 0x7fffffff,
 };
 
@@ -613,6 +678,11 @@
     SubgroupLocalInvocationId = 41,
     VertexIndex = 42,
     InstanceIndex = 43,
+    CoreIDARM = 4160,
+    CoreCountARM = 4161,
+    CoreMaxIDARM = 4162,
+    WarpIDARM = 4163,
+    WarpMaxIDARM = 4164,
     SubgroupEqMask = 4416,
     SubgroupEqMaskKHR = 4416,
     SubgroupGeMask = 4417,
@@ -638,6 +708,8 @@
     BaryCoordSmoothSampleAMD = 4997,
     BaryCoordPullModelAMD = 4998,
     FragStencilRefEXT = 5014,
+    CoalescedInputCountAMDX = 5021,
+    ShaderIndexAMDX = 5073,
     ViewportMaskNV = 5253,
     SecondaryPositionNV = 5257,
     SecondaryViewportMaskNV = 5258,
@@ -690,6 +762,9 @@
     HitKindKHR = 5333,
     HitKindNV = 5333,
     CurrentRayTimeNV = 5334,
+    HitTriangleVertexPositionsKHR = 5335,
+    HitMicroTriangleVertexPositionsNV = 5337,
+    HitMicroTriangleVertexBarycentricsNV = 5344,
     IncomingRayFlagsKHR = 5351,
     IncomingRayFlagsNV = 5351,
     RayGeometryIndexKHR = 5352,
@@ -697,6 +772,8 @@
     SMCountNV = 5375,
     WarpIDNV = 5376,
     SMIDNV = 5377,
+    HitKindFrontFacingMicroTriangleNV = 5405,
+    HitKindBackFacingMicroTriangleNV = 5406,
     CullMaskKHR = 6021,
     Max = 0x7fffffff,
 };
@@ -731,6 +808,8 @@
     MaxInterleavingINTEL = 21,
     SpeculatedIterationsINTEL = 22,
     NoFusionINTEL = 23,
+    LoopCountINTEL = 24,
+    MaxReinvocationDelayINTEL = 25,
     Max = 0x7fffffff,
 };
 
@@ -753,6 +832,8 @@
     MaxInterleavingINTEL = 0x00200000,
     SpeculatedIterationsINTEL = 0x00400000,
     NoFusionINTEL = 0x00800000,
+    LoopCountINTEL = 0x01000000,
+    MaxReinvocationDelayINTEL = 0x02000000,
 };
 
 enum class FunctionControlShift : unsigned {
@@ -956,6 +1037,10 @@
     ShaderLayer = 69,
     ShaderViewportIndex = 70,
     UniformDecoration = 71,
+    CoreBuiltinsARM = 4165,
+    TileImageColorReadAccessEXT = 4166,
+    TileImageDepthReadAccessEXT = 4167,
+    TileImageStencilReadAccessEXT = 4168,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -987,6 +1072,9 @@
     RayQueryKHR = 4472,
     RayTraversalPrimitiveCullingKHR = 4478,
     RayTracingKHR = 4479,
+    TextureSampleWeightedQCOM = 4484,
+    TextureBoxFilterQCOM = 4485,
+    TextureBlockMatchQCOM = 4486,
     Float16ImageAMD = 5008,
     ImageGatherBiasLodAMD = 5009,
     FragmentMaskAMD = 5010,
@@ -994,6 +1082,8 @@
     ImageReadWriteLodAMD = 5015,
     Int64ImageEXT = 5016,
     ShaderClockKHR = 5055,
+    ShaderEnqueueAMDX = 5067,
+    QuadControlKHR = 5087,
     SampleMaskOverrideCoverageNV = 5249,
     GeometryShaderPassthroughNV = 5251,
     ShaderViewportIndexLayerEXT = 5254,
@@ -1035,6 +1125,7 @@
     UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     StorageTexelBufferArrayNonUniformIndexing = 5312,
     StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    RayTracingPositionFetchKHR = 5336,
     RayTracingNV = 5340,
     RayTracingMotionBlurNV = 5341,
     VulkanMemoryModel = 5345,
@@ -1052,7 +1143,12 @@
     FragmentShaderPixelInterlockEXT = 5378,
     DemoteToHelperInvocation = 5379,
     DemoteToHelperInvocationEXT = 5379,
+    DisplacementMicromapNV = 5380,
+    RayTracingOpacityMicromapEXT = 5381,
+    ShaderInvocationReorderNV = 5383,
     BindlessTextureNV = 5390,
+    RayQueryPositionFetchKHR = 5391,
+    RayTracingDisplacementMicromapNV = 5409,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1085,10 +1181,13 @@
     FPGAMemoryAccessesINTEL = 5898,
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
+    FPGADSPControlINTEL = 5908,
     MemoryAccessAliasingINTEL = 5910,
+    FPGAInvocationPipeliningAttributesINTEL = 5916,
     FPGABufferLocationINTEL = 5920,
     ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
+    RuntimeAlignedAttributeINTEL = 5939,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
@@ -1101,16 +1200,28 @@
     DotProduct = 6019,
     DotProductKHR = 6019,
     RayCullMaskKHR = 6020,
+    CooperativeMatrixKHR = 6022,
     BitInstructions = 6025,
     GroupNonUniformRotateKHR = 6026,
+    FloatControls2 = 6029,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
-    LongConstantCompositeINTEL = 6089,
+    LongCompositesINTEL = 6089,
     OptNoneINTEL = 6094,
     AtomicFloat16AddEXT = 6095,
     DebugInfoModuleINTEL = 6114,
+    BFloat16ConversionINTEL = 6115,
     SplitBarrierINTEL = 6141,
+    FPGAClusterAttributesV2INTEL = 6150,
+    FPGAKernelAttributesv2INTEL = 6161,
+    FPMaxErrorINTEL = 6169,
+    FPGALatencyControlINTEL = 6171,
+    FPGAArgumentInterfacesINTEL = 6174,
+    GlobalVariableHostAccessINTEL = 6187,
+    GlobalVariableFPGADecorationsINTEL = 6189,
     GroupUniformArithmeticKHR = 6400,
+    MaskedGatherScatterINTEL = 6427,
+    CacheControlsINTEL = 6441,
     Max = 0x7fffffff,
 };
 
@@ -1125,6 +1236,7 @@
     CullNoOpaqueKHR = 7,
     SkipTrianglesKHR = 8,
     SkipAABBsKHR = 9,
+    ForceOpacityMicromap2StateEXT = 10,
     Max = 0x7fffffff,
 };
 
@@ -1140,6 +1252,7 @@
     CullNoOpaqueKHR = 0x00000080,
     SkipTrianglesKHR = 0x00000100,
     SkipAABBsKHR = 0x00000200,
+    ForceOpacityMicromap2StateEXT = 0x00000400,
 };
 
 enum class RayQueryIntersection : unsigned {
@@ -1215,6 +1328,68 @@
     Max = 0x7fffffff,
 };
 
+enum class CooperativeMatrixOperandsShift : unsigned {
+    MatrixASignedComponentsKHR = 0,
+    MatrixBSignedComponentsKHR = 1,
+    MatrixCSignedComponentsKHR = 2,
+    MatrixResultSignedComponentsKHR = 3,
+    SaturatingAccumulationKHR = 4,
+    Max = 0x7fffffff,
+};
+
+enum class CooperativeMatrixOperandsMask : unsigned {
+    MaskNone = 0,
+    MatrixASignedComponentsKHR = 0x00000001,
+    MatrixBSignedComponentsKHR = 0x00000002,
+    MatrixCSignedComponentsKHR = 0x00000004,
+    MatrixResultSignedComponentsKHR = 0x00000008,
+    SaturatingAccumulationKHR = 0x00000010,
+};
+
+enum class CooperativeMatrixLayout : unsigned {
+    RowMajorKHR = 0,
+    ColumnMajorKHR = 1,
+    Max = 0x7fffffff,
+};
+
+enum class CooperativeMatrixUse : unsigned {
+    MatrixAKHR = 0,
+    MatrixBKHR = 1,
+    MatrixAccumulatorKHR = 2,
+    Max = 0x7fffffff,
+};
+
+enum class InitializationModeQualifier : unsigned {
+    InitOnDeviceReprogramINTEL = 0,
+    InitOnDeviceResetINTEL = 1,
+    Max = 0x7fffffff,
+};
+
+enum class HostAccessQualifier : unsigned {
+    NoneINTEL = 0,
+    ReadINTEL = 1,
+    WriteINTEL = 2,
+    ReadWriteINTEL = 3,
+    Max = 0x7fffffff,
+};
+
+enum class LoadCacheControl : unsigned {
+    UncachedINTEL = 0,
+    CachedINTEL = 1,
+    StreamingINTEL = 2,
+    InvalidateAfterReadINTEL = 3,
+    ConstCachedINTEL = 4,
+    Max = 0x7fffffff,
+};
+
+enum class StoreCacheControl : unsigned {
+    UncachedINTEL = 0,
+    WriteThroughINTEL = 1,
+    WriteBackINTEL = 2,
+    StreamingINTEL = 3,
+    Max = 0x7fffffff,
+};
+
 enum class Op : unsigned {
     OpNop = 0,
     OpUndef = 1,
@@ -1560,6 +1735,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1585,6 +1763,11 @@
     OpUDotAccSatKHR = 4454,
     OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
+    OpTypeCooperativeMatrixKHR = 4456,
+    OpCooperativeMatrixLoadKHR = 4457,
+    OpCooperativeMatrixStoreKHR = 4458,
+    OpCooperativeMatrixMulAddKHR = 4459,
+    OpCooperativeMatrixLengthKHR = 4460,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
@@ -1592,6 +1775,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1603,11 +1790,51 @@
     OpFragmentMaskFetchAMD = 5011,
     OpFragmentFetchAMD = 5012,
     OpReadClockKHR = 5056,
+    OpFinalizeNodePayloadsAMDX = 5075,
+    OpFinishWritingNodePayloadAMDX = 5078,
+    OpInitializeNodePayloadsAMDX = 5090,
+    OpGroupNonUniformQuadAllKHR = 5110,
+    OpGroupNonUniformQuadAnyKHR = 5111,
+    OpHitObjectRecordHitMotionNV = 5249,
+    OpHitObjectRecordHitWithIndexMotionNV = 5250,
+    OpHitObjectRecordMissMotionNV = 5251,
+    OpHitObjectGetWorldToObjectNV = 5252,
+    OpHitObjectGetObjectToWorldNV = 5253,
+    OpHitObjectGetObjectRayDirectionNV = 5254,
+    OpHitObjectGetObjectRayOriginNV = 5255,
+    OpHitObjectTraceRayMotionNV = 5256,
+    OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+    OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+    OpHitObjectRecordEmptyNV = 5259,
+    OpHitObjectTraceRayNV = 5260,
+    OpHitObjectRecordHitNV = 5261,
+    OpHitObjectRecordHitWithIndexNV = 5262,
+    OpHitObjectRecordMissNV = 5263,
+    OpHitObjectExecuteShaderNV = 5264,
+    OpHitObjectGetCurrentTimeNV = 5265,
+    OpHitObjectGetAttributesNV = 5266,
+    OpHitObjectGetHitKindNV = 5267,
+    OpHitObjectGetPrimitiveIndexNV = 5268,
+    OpHitObjectGetGeometryIndexNV = 5269,
+    OpHitObjectGetInstanceIdNV = 5270,
+    OpHitObjectGetInstanceCustomIndexNV = 5271,
+    OpHitObjectGetWorldRayDirectionNV = 5272,
+    OpHitObjectGetWorldRayOriginNV = 5273,
+    OpHitObjectGetRayTMaxNV = 5274,
+    OpHitObjectGetRayTMinNV = 5275,
+    OpHitObjectIsEmptyNV = 5276,
+    OpHitObjectIsHitNV = 5277,
+    OpHitObjectIsMissNV = 5278,
+    OpReorderThreadWithHitObjectNV = 5279,
+    OpReorderThreadWithHintNV = 5280,
+    OpTypeHitObjectNV = 5281,
     OpImageSampleFootprintNV = 5283,
     OpEmitMeshTasksEXT = 5294,
     OpSetMeshOutputsEXT = 5295,
     OpGroupNonUniformPartitionNV = 5296,
     OpWritePackedPrimitiveIndices4x8NV = 5299,
+    OpFetchMicroTriangleVertexPositionNV = 5300,
+    OpFetchMicroTriangleVertexBarycentricNV = 5301,
     OpReportIntersectionKHR = 5334,
     OpReportIntersectionNV = 5334,
     OpIgnoreIntersectionNV = 5335,
@@ -1615,6 +1842,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1876,6 +2104,9 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpCompositeConstructContinuedINTEL = 6096,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
@@ -1886,6 +2117,8 @@
     OpGroupLogicalAndKHR = 6406,
     OpGroupLogicalOrKHR = 6407,
     OpGroupLogicalXorKHR = 6408,
+    OpMaskedGatherINTEL = 6428,
+    OpMaskedScatterINTEL = 6429,
     Max = 0x7fffffff,
 };
 
@@ -2241,6 +2474,9 @@
     case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
     case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
     case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
+    case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
+    case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
     case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
     case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
@@ -2260,6 +2496,11 @@
     case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
     case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
     case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
+    case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
+    case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
     case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
@@ -2267,6 +2508,10 @@
     case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
+    case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
+    case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
+    case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
     case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
     case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
@@ -2278,17 +2523,58 @@
     case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
     case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
     case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
+    case Op::OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
+    case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
     case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
     case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
     case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
     case Op::OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
     case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
+    case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
     case Op::OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
     case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
+    case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
     case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
@@ -2546,6 +2832,9 @@
     case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
+    case Op::OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
     case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
@@ -2556,22 +2845,58 @@
     case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
     }
 }
 #endif /* SPV_ENABLE_UTILITY_CODE */
 
-// Overload operator| for mask bit combining
+// Overload bitwise operators for mask bit combining
 
-inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
-inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
-inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
-inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
-inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
-inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
-inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
-inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
-inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
-inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
+constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
+constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
+constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
+constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
+constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
+constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
+constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
+constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
+constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
+constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
+constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
+constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
+constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
+constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
+constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
+constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
+constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
+constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
+constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
+constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
+constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
+constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
+constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
+constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
+constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
+constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
+constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
+constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
+constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
+constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
+constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
+constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
+constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
+constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
+constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
+constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
+constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
+constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
+constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
+constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
+constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
+constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
+constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
+constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
 
 }  // end namespace spv
 
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 4ad3bcb..ee03b6c 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -6,7 +6,7 @@
             "Comment":
             [
                 [
-                    "Copyright (c) 2014-2020 The Khronos Group Inc.",
+                    "Copyright (c) 2014-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\"),",
@@ -75,7 +75,12 @@
                     "OpenCL_CPP": 4,
                     "HLSL": 5,
                     "CPP_for_OpenCL": 6,
-                    "SYCL": 7
+                    "SYCL": 7,
+                    "HERO_C": 8,
+                    "NZSL": 9,
+                    "WGSL": 10,
+                    "Slang": 11,
+                    "Zig": 12
                 }
             },
             {
@@ -175,6 +180,9 @@
                     "SubgroupsPerWorkgroupId": 37,
                     "LocalSizeId": 38,
                     "LocalSizeHintId": 39,
+                    "NonCoherentColorAttachmentReadEXT": 4169,
+                    "NonCoherentDepthAttachmentReadEXT": 4170,
+                    "NonCoherentStencilAttachmentReadEXT": 4171,
                     "SubgroupUniformControlFlowKHR": 4421,
                     "PostDepthCoverage": 4446,
                     "DenormPreserve": 4459,
@@ -184,12 +192,19 @@
                     "RoundingModeRTZ": 4463,
                     "EarlyAndLateFragmentTestsAMD": 5017,
                     "StencilRefReplacingEXT": 5027,
+                    "CoalescingAMDX": 5069,
+                    "MaxNodeRecursionAMDX": 5071,
+                    "StaticNumWorkgroupsAMDX": 5072,
+                    "ShaderIndexAMDX": 5073,
+                    "MaxNumWorkgroupsAMDX": 5077,
                     "StencilRefUnchangedFrontAMD": 5079,
                     "StencilRefGreaterFrontAMD": 5080,
                     "StencilRefLessFrontAMD": 5081,
                     "StencilRefUnchangedBackAMD": 5082,
                     "StencilRefGreaterBackAMD": 5083,
                     "StencilRefLessBackAMD": 5084,
+                    "QuadDerivativesKHR": 5088,
+                    "RequireFullQuadsKHR": 5089,
                     "OutputLinesEXT": 5269,
                     "OutputLinesNV": 5269,
                     "OutputPrimitivesEXT": 5270,
@@ -214,6 +229,10 @@
                     "NoGlobalOffsetINTEL": 5895,
                     "NumSIMDWorkitemsINTEL": 5896,
                     "SchedulerTargetFmaxMhzINTEL": 5903,
+                    "MaximallyReconvergesKHR": 6023,
+                    "FPFastMathDefault": 6028,
+                    "StreamingInterfaceINTEL": 6154,
+                    "RegisterMapInterfaceINTEL": 6160,
                     "NamedBarrierCountINTEL": 6417
                 }
             },
@@ -235,6 +254,9 @@
                     "AtomicCounter": 10,
                     "Image": 11,
                     "StorageBuffer": 12,
+                    "TileImageEXT": 4172,
+                    "NodePayloadAMDX": 5068,
+                    "NodeOutputPayloadAMDX": 5076,
                     "CallableDataKHR": 5328,
                     "CallableDataNV": 5328,
                     "IncomingCallableDataKHR": 5329,
@@ -249,6 +271,7 @@
                     "ShaderRecordBufferNV": 5343,
                     "PhysicalStorageBuffer": 5349,
                     "PhysicalStorageBufferEXT": 5349,
+                    "HitObjectAttributeNV": 5385,
                     "TaskPayloadWorkgroupEXT": 5402,
                     "CodeSectionINTEL": 5605,
                     "DeviceOnlyINTEL": 5936,
@@ -266,7 +289,8 @@
                     "Cube": 3,
                     "Rect": 4,
                     "Buffer": 5,
-                    "SubpassData": 6
+                    "SubpassData": 6,
+                    "TileImageDataEXT": 4173
                 }
             },
             {
@@ -387,7 +411,9 @@
                     "HalfFloat": 13,
                     "Float": 14,
                     "UnormInt24": 15,
-                    "UnormInt101010_2": 16
+                    "UnormInt101010_2": 16,
+                    "UnsignedIntRaw10EXT": 19,
+                    "UnsignedIntRaw12EXT": 20
                 }
             },
             {
@@ -427,8 +453,11 @@
                     "NSZ": 2,
                     "AllowRecip": 3,
                     "Fast": 4,
+                    "AllowContract": 16,
                     "AllowContractFastINTEL": 16,
-                    "AllowReassocINTEL": 17
+                    "AllowReassoc": 17,
+                    "AllowReassocINTEL": 17,
+                    "AllowTransform": 18
                 }
             },
             {
@@ -474,7 +503,8 @@
                     "NoAlias": 4,
                     "NoCapture": 5,
                     "NoWrite": 6,
-                    "NoReadWrite": 7
+                    "NoReadWrite": 7,
+                    "RuntimeAlignedINTEL": 5940
                 }
             },
             {
@@ -531,7 +561,13 @@
                     "MaxByteOffsetId": 47,
                     "NoSignedWrap": 4469,
                     "NoUnsignedWrap": 4470,
+                    "WeightTextureQCOM": 4487,
+                    "BlockMatchTextureQCOM": 4488,
                     "ExplicitInterpAMD": 4999,
+                    "NodeSharesPayloadLimitsWithAMDX": 5019,
+                    "NodeMaxPayloadsAMDX": 5020,
+                    "TrackFinishWritingAMDX": 5078,
+                    "PayloadNodeNameAMDX": 5091,
                     "OverrideCoverageNV": 5248,
                     "PassthroughNV": 5250,
                     "ViewportRelativeNV": 5252,
@@ -548,6 +584,7 @@
                     "RestrictPointerEXT": 5355,
                     "AliasedPointer": 5356,
                     "AliasedPointerEXT": 5356,
+                    "HitObjectShaderRecordBufferNV": 5386,
                     "BindlessSamplerNV": 5398,
                     "BindlessImageNV": 5399,
                     "BoundSamplerNV": 5400,
@@ -580,20 +617,45 @@
                     "MergeINTEL": 5834,
                     "BankBitsINTEL": 5835,
                     "ForcePow2DepthINTEL": 5836,
+                    "StridesizeINTEL": 5883,
+                    "WordsizeINTEL": 5884,
+                    "TrueDualPortINTEL": 5885,
                     "BurstCoalesceINTEL": 5899,
                     "CacheSizeINTEL": 5900,
                     "DontStaticallyCoalesceINTEL": 5901,
                     "PrefetchINTEL": 5902,
                     "StallEnableINTEL": 5905,
                     "FuseLoopsInFunctionINTEL": 5907,
+                    "MathOpDSPModeINTEL": 5909,
                     "AliasScopeINTEL": 5914,
                     "NoAliasINTEL": 5915,
+                    "InitiationIntervalINTEL": 5917,
+                    "MaxConcurrencyINTEL": 5918,
+                    "PipelineEnableINTEL": 5919,
                     "BufferLocationINTEL": 5921,
                     "IOPipeStorageINTEL": 5944,
                     "FunctionFloatingPointModeINTEL": 6080,
                     "SingleElementVectorINTEL": 6085,
                     "VectorComputeCallableFunctionINTEL": 6087,
-                    "MediaBlockIOINTEL": 6140
+                    "MediaBlockIOINTEL": 6140,
+                    "StallFreeINTEL": 6151,
+                    "FPMaxErrorDecorationINTEL": 6170,
+                    "LatencyControlLabelINTEL": 6172,
+                    "LatencyControlConstraintINTEL": 6173,
+                    "ConduitKernelArgumentINTEL": 6175,
+                    "RegisterMapKernelArgumentINTEL": 6176,
+                    "MMHostInterfaceAddressWidthINTEL": 6177,
+                    "MMHostInterfaceDataWidthINTEL": 6178,
+                    "MMHostInterfaceLatencyINTEL": 6179,
+                    "MMHostInterfaceReadWriteModeINTEL": 6180,
+                    "MMHostInterfaceMaxBurstINTEL": 6181,
+                    "MMHostInterfaceWaitRequestINTEL": 6182,
+                    "StableKernelArgumentINTEL": 6183,
+                    "HostAccessINTEL": 6188,
+                    "InitModeINTEL": 6190,
+                    "ImplementInRegisterMapINTEL": 6191,
+                    "CacheControlLoadINTEL": 6442,
+                    "CacheControlStoreINTEL": 6443
                 }
             },
             {
@@ -642,6 +704,11 @@
                     "SubgroupLocalInvocationId": 41,
                     "VertexIndex": 42,
                     "InstanceIndex": 43,
+                    "CoreIDARM": 4160,
+                    "CoreCountARM": 4161,
+                    "CoreMaxIDARM": 4162,
+                    "WarpIDARM": 4163,
+                    "WarpMaxIDARM": 4164,
                     "SubgroupEqMask": 4416,
                     "SubgroupEqMaskKHR": 4416,
                     "SubgroupGeMask": 4417,
@@ -667,6 +734,8 @@
                     "BaryCoordSmoothSampleAMD": 4997,
                     "BaryCoordPullModelAMD": 4998,
                     "FragStencilRefEXT": 5014,
+                    "CoalescedInputCountAMDX": 5021,
+                    "ShaderIndexAMDX": 5073,
                     "ViewportMaskNV": 5253,
                     "SecondaryPositionNV": 5257,
                     "SecondaryViewportMaskNV": 5258,
@@ -719,6 +788,9 @@
                     "HitKindKHR": 5333,
                     "HitKindNV": 5333,
                     "CurrentRayTimeNV": 5334,
+                    "HitTriangleVertexPositionsKHR": 5335,
+                    "HitMicroTriangleVertexPositionsNV": 5337,
+                    "HitMicroTriangleVertexBarycentricsNV": 5344,
                     "IncomingRayFlagsKHR": 5351,
                     "IncomingRayFlagsNV": 5351,
                     "RayGeometryIndexKHR": 5352,
@@ -726,6 +798,8 @@
                     "SMCountNV": 5375,
                     "WarpIDNV": 5376,
                     "SMIDNV": 5377,
+                    "HitKindFrontFacingMicroTriangleNV": 5405,
+                    "HitKindBackFacingMicroTriangleNV": 5406,
                     "CullMaskKHR": 6021
                 }
             },
@@ -759,7 +833,9 @@
                     "LoopCoalesceINTEL": 20,
                     "MaxInterleavingINTEL": 21,
                     "SpeculatedIterationsINTEL": 22,
-                    "NoFusionINTEL": 23
+                    "NoFusionINTEL": 23,
+                    "LoopCountINTEL": 24,
+                    "MaxReinvocationDelayINTEL": 25
                 }
             },
             {
@@ -938,6 +1014,10 @@
                     "ShaderLayer": 69,
                     "ShaderViewportIndex": 70,
                     "UniformDecoration": 71,
+                    "CoreBuiltinsARM": 4165,
+                    "TileImageColorReadAccessEXT": 4166,
+                    "TileImageDepthReadAccessEXT": 4167,
+                    "TileImageStencilReadAccessEXT": 4168,
                     "FragmentShadingRateKHR": 4422,
                     "SubgroupBallotKHR": 4423,
                     "DrawParameters": 4427,
@@ -969,6 +1049,9 @@
                     "RayQueryKHR": 4472,
                     "RayTraversalPrimitiveCullingKHR": 4478,
                     "RayTracingKHR": 4479,
+                    "TextureSampleWeightedQCOM": 4484,
+                    "TextureBoxFilterQCOM": 4485,
+                    "TextureBlockMatchQCOM": 4486,
                     "Float16ImageAMD": 5008,
                     "ImageGatherBiasLodAMD": 5009,
                     "FragmentMaskAMD": 5010,
@@ -976,6 +1059,8 @@
                     "ImageReadWriteLodAMD": 5015,
                     "Int64ImageEXT": 5016,
                     "ShaderClockKHR": 5055,
+                    "ShaderEnqueueAMDX": 5067,
+                    "QuadControlKHR": 5087,
                     "SampleMaskOverrideCoverageNV": 5249,
                     "GeometryShaderPassthroughNV": 5251,
                     "ShaderViewportIndexLayerEXT": 5254,
@@ -1017,6 +1102,7 @@
                     "UniformTexelBufferArrayNonUniformIndexingEXT": 5311,
                     "StorageTexelBufferArrayNonUniformIndexing": 5312,
                     "StorageTexelBufferArrayNonUniformIndexingEXT": 5312,
+                    "RayTracingPositionFetchKHR": 5336,
                     "RayTracingNV": 5340,
                     "RayTracingMotionBlurNV": 5341,
                     "VulkanMemoryModel": 5345,
@@ -1034,7 +1120,12 @@
                     "FragmentShaderPixelInterlockEXT": 5378,
                     "DemoteToHelperInvocation": 5379,
                     "DemoteToHelperInvocationEXT": 5379,
+                    "DisplacementMicromapNV": 5380,
+                    "RayTracingOpacityMicromapEXT": 5381,
+                    "ShaderInvocationReorderNV": 5383,
                     "BindlessTextureNV": 5390,
+                    "RayQueryPositionFetchKHR": 5391,
+                    "RayTracingDisplacementMicromapNV": 5409,
                     "SubgroupShuffleINTEL": 5568,
                     "SubgroupBufferBlockIOINTEL": 5569,
                     "SubgroupImageBlockIOINTEL": 5570,
@@ -1067,10 +1158,13 @@
                     "FPGAMemoryAccessesINTEL": 5898,
                     "FPGAClusterAttributesINTEL": 5904,
                     "LoopFuseINTEL": 5906,
+                    "FPGADSPControlINTEL": 5908,
                     "MemoryAccessAliasingINTEL": 5910,
+                    "FPGAInvocationPipeliningAttributesINTEL": 5916,
                     "FPGABufferLocationINTEL": 5920,
                     "ArbitraryPrecisionFixedPointINTEL": 5922,
                     "USMStorageClassesINTEL": 5935,
+                    "RuntimeAlignedAttributeINTEL": 5939,
                     "IOPipesINTEL": 5943,
                     "BlockingPipesINTEL": 5945,
                     "FPGARegINTEL": 5948,
@@ -1083,16 +1177,28 @@
                     "DotProduct": 6019,
                     "DotProductKHR": 6019,
                     "RayCullMaskKHR": 6020,
+                    "CooperativeMatrixKHR": 6022,
                     "BitInstructions": 6025,
                     "GroupNonUniformRotateKHR": 6026,
+                    "FloatControls2": 6029,
                     "AtomicFloat32AddEXT": 6033,
                     "AtomicFloat64AddEXT": 6034,
-                    "LongConstantCompositeINTEL": 6089,
+                    "LongCompositesINTEL": 6089,
                     "OptNoneINTEL": 6094,
                     "AtomicFloat16AddEXT": 6095,
                     "DebugInfoModuleINTEL": 6114,
+                    "BFloat16ConversionINTEL": 6115,
                     "SplitBarrierINTEL": 6141,
-                    "GroupUniformArithmeticKHR": 6400
+                    "FPGAClusterAttributesV2INTEL": 6150,
+                    "FPGAKernelAttributesv2INTEL": 6161,
+                    "FPMaxErrorINTEL": 6169,
+                    "FPGALatencyControlINTEL": 6171,
+                    "FPGAArgumentInterfacesINTEL": 6174,
+                    "GlobalVariableHostAccessINTEL": 6187,
+                    "GlobalVariableFPGADecorationsINTEL": 6189,
+                    "GroupUniformArithmeticKHR": 6400,
+                    "MaskedGatherScatterINTEL": 6427,
+                    "CacheControlsINTEL": 6441
                 }
             },
             {
@@ -1109,7 +1215,8 @@
                     "CullOpaqueKHR": 6,
                     "CullNoOpaqueKHR": 7,
                     "SkipTrianglesKHR": 8,
-                    "SkipAABBsKHR": 9
+                    "SkipAABBsKHR": 9,
+                    "ForceOpacityMicromap2StateEXT": 10
                 }
             },
             {
@@ -1205,6 +1312,80 @@
                 }
             },
             {
+                "Name": "CooperativeMatrixOperands",
+                "Type": "Bit",
+                "Values":
+                {
+                    "MatrixASignedComponentsKHR": 0,
+                    "MatrixBSignedComponentsKHR": 1,
+                    "MatrixCSignedComponentsKHR": 2,
+                    "MatrixResultSignedComponentsKHR": 3,
+                    "SaturatingAccumulationKHR": 4
+                }
+            },
+            {
+                "Name": "CooperativeMatrixLayout",
+                "Type": "Value",
+                "Values":
+                {
+                    "RowMajorKHR": 0,
+                    "ColumnMajorKHR": 1
+                }
+            },
+            {
+                "Name": "CooperativeMatrixUse",
+                "Type": "Value",
+                "Values":
+                {
+                    "MatrixAKHR": 0,
+                    "MatrixBKHR": 1,
+                    "MatrixAccumulatorKHR": 2
+                }
+            },
+            {
+                "Name": "InitializationModeQualifier",
+                "Type": "Value",
+                "Values":
+                {
+                    "InitOnDeviceReprogramINTEL": 0,
+                    "InitOnDeviceResetINTEL": 1
+                }
+            },
+            {
+                "Name": "HostAccessQualifier",
+                "Type": "Value",
+                "Values":
+                {
+                    "NoneINTEL": 0,
+                    "ReadINTEL": 1,
+                    "WriteINTEL": 2,
+                    "ReadWriteINTEL": 3
+                }
+            },
+            {
+                "Name": "LoadCacheControl",
+                "Type": "Value",
+                "Values":
+                {
+                    "UncachedINTEL": 0,
+                    "CachedINTEL": 1,
+                    "StreamingINTEL": 2,
+                    "InvalidateAfterReadINTEL": 3,
+                    "ConstCachedINTEL": 4
+                }
+            },
+            {
+                "Name": "StoreCacheControl",
+                "Type": "Value",
+                "Values":
+                {
+                    "UncachedINTEL": 0,
+                    "WriteThroughINTEL": 1,
+                    "WriteBackINTEL": 2,
+                    "StreamingINTEL": 3
+                }
+            },
+            {
                 "Name": "Op",
                 "Type": "Value",
                 "Values":
@@ -1553,6 +1734,9 @@
                     "OpPtrEqual": 401,
                     "OpPtrNotEqual": 402,
                     "OpPtrDiff": 403,
+                    "OpColorAttachmentReadEXT": 4160,
+                    "OpDepthAttachmentReadEXT": 4161,
+                    "OpStencilAttachmentReadEXT": 4162,
                     "OpTerminateInvocation": 4416,
                     "OpSubgroupBallotKHR": 4421,
                     "OpSubgroupFirstInvocationKHR": 4422,
@@ -1578,6 +1762,11 @@
                     "OpUDotAccSatKHR": 4454,
                     "OpSUDotAccSat": 4455,
                     "OpSUDotAccSatKHR": 4455,
+                    "OpTypeCooperativeMatrixKHR": 4456,
+                    "OpCooperativeMatrixLoadKHR": 4457,
+                    "OpCooperativeMatrixStoreKHR": 4458,
+                    "OpCooperativeMatrixMulAddKHR": 4459,
+                    "OpCooperativeMatrixLengthKHR": 4460,
                     "OpTypeRayQueryKHR": 4472,
                     "OpRayQueryInitializeKHR": 4473,
                     "OpRayQueryTerminateKHR": 4474,
@@ -1585,6 +1774,10 @@
                     "OpRayQueryConfirmIntersectionKHR": 4476,
                     "OpRayQueryProceedKHR": 4477,
                     "OpRayQueryGetIntersectionTypeKHR": 4479,
+                    "OpImageSampleWeightedQCOM": 4480,
+                    "OpImageBoxFilterQCOM": 4481,
+                    "OpImageBlockMatchSSDQCOM": 4482,
+                    "OpImageBlockMatchSADQCOM": 4483,
                     "OpGroupIAddNonUniformAMD": 5000,
                     "OpGroupFAddNonUniformAMD": 5001,
                     "OpGroupFMinNonUniformAMD": 5002,
@@ -1596,11 +1789,51 @@
                     "OpFragmentMaskFetchAMD": 5011,
                     "OpFragmentFetchAMD": 5012,
                     "OpReadClockKHR": 5056,
+                    "OpFinalizeNodePayloadsAMDX": 5075,
+                    "OpFinishWritingNodePayloadAMDX": 5078,
+                    "OpInitializeNodePayloadsAMDX": 5090,
+                    "OpGroupNonUniformQuadAllKHR": 5110,
+                    "OpGroupNonUniformQuadAnyKHR": 5111,
+                    "OpHitObjectRecordHitMotionNV": 5249,
+                    "OpHitObjectRecordHitWithIndexMotionNV": 5250,
+                    "OpHitObjectRecordMissMotionNV": 5251,
+                    "OpHitObjectGetWorldToObjectNV": 5252,
+                    "OpHitObjectGetObjectToWorldNV": 5253,
+                    "OpHitObjectGetObjectRayDirectionNV": 5254,
+                    "OpHitObjectGetObjectRayOriginNV": 5255,
+                    "OpHitObjectTraceRayMotionNV": 5256,
+                    "OpHitObjectGetShaderRecordBufferHandleNV": 5257,
+                    "OpHitObjectGetShaderBindingTableRecordIndexNV": 5258,
+                    "OpHitObjectRecordEmptyNV": 5259,
+                    "OpHitObjectTraceRayNV": 5260,
+                    "OpHitObjectRecordHitNV": 5261,
+                    "OpHitObjectRecordHitWithIndexNV": 5262,
+                    "OpHitObjectRecordMissNV": 5263,
+                    "OpHitObjectExecuteShaderNV": 5264,
+                    "OpHitObjectGetCurrentTimeNV": 5265,
+                    "OpHitObjectGetAttributesNV": 5266,
+                    "OpHitObjectGetHitKindNV": 5267,
+                    "OpHitObjectGetPrimitiveIndexNV": 5268,
+                    "OpHitObjectGetGeometryIndexNV": 5269,
+                    "OpHitObjectGetInstanceIdNV": 5270,
+                    "OpHitObjectGetInstanceCustomIndexNV": 5271,
+                    "OpHitObjectGetWorldRayDirectionNV": 5272,
+                    "OpHitObjectGetWorldRayOriginNV": 5273,
+                    "OpHitObjectGetRayTMaxNV": 5274,
+                    "OpHitObjectGetRayTMinNV": 5275,
+                    "OpHitObjectIsEmptyNV": 5276,
+                    "OpHitObjectIsHitNV": 5277,
+                    "OpHitObjectIsMissNV": 5278,
+                    "OpReorderThreadWithHitObjectNV": 5279,
+                    "OpReorderThreadWithHintNV": 5280,
+                    "OpTypeHitObjectNV": 5281,
                     "OpImageSampleFootprintNV": 5283,
                     "OpEmitMeshTasksEXT": 5294,
                     "OpSetMeshOutputsEXT": 5295,
                     "OpGroupNonUniformPartitionNV": 5296,
                     "OpWritePackedPrimitiveIndices4x8NV": 5299,
+                    "OpFetchMicroTriangleVertexPositionNV": 5300,
+                    "OpFetchMicroTriangleVertexBarycentricNV": 5301,
                     "OpReportIntersectionKHR": 5334,
                     "OpReportIntersectionNV": 5334,
                     "OpIgnoreIntersectionNV": 5335,
@@ -1608,6 +1841,7 @@
                     "OpTraceNV": 5337,
                     "OpTraceMotionNV": 5338,
                     "OpTraceRayMotionNV": 5339,
+                    "OpRayQueryGetIntersectionTriangleVertexPositionsKHR": 5340,
                     "OpTypeAccelerationStructureKHR": 5341,
                     "OpTypeAccelerationStructureNV": 5341,
                     "OpExecuteCallableNV": 5344,
@@ -1869,6 +2103,9 @@
                     "OpTypeStructContinuedINTEL": 6090,
                     "OpConstantCompositeContinuedINTEL": 6091,
                     "OpSpecConstantCompositeContinuedINTEL": 6092,
+                    "OpCompositeConstructContinuedINTEL": 6096,
+                    "OpConvertFToBF16INTEL": 6116,
+                    "OpConvertBF16ToFINTEL": 6117,
                     "OpControlBarrierArriveINTEL": 6142,
                     "OpControlBarrierWaitINTEL": 6143,
                     "OpGroupIMulKHR": 6401,
@@ -1878,7 +2115,9 @@
                     "OpGroupBitwiseXorKHR": 6405,
                     "OpGroupLogicalAndKHR": 6406,
                     "OpGroupLogicalOrKHR": 6407,
-                    "OpGroupLogicalXorKHR": 6408
+                    "OpGroupLogicalXorKHR": 6408,
+                    "OpMaskedGatherINTEL": 6428,
+                    "OpMaskedScatterINTEL": 6429
                 }
             }
         ]
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index a3d47e9..391939d 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -1,4 +1,4 @@
--- Copyright (c) 2014-2020 The Khronos Group Inc.
+-- Copyright (c) 2014-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"),
@@ -60,6 +60,11 @@
         HLSL = 5,
         CPP_for_OpenCL = 6,
         SYCL = 7,
+        HERO_C = 8,
+        NZSL = 9,
+        WGSL = 10,
+        Slang = 11,
+        Zig = 12,
     },
 
     ExecutionModel = {
@@ -143,6 +148,9 @@
         SubgroupsPerWorkgroupId = 37,
         LocalSizeId = 38,
         LocalSizeHintId = 39,
+        NonCoherentColorAttachmentReadEXT = 4169,
+        NonCoherentDepthAttachmentReadEXT = 4170,
+        NonCoherentStencilAttachmentReadEXT = 4171,
         SubgroupUniformControlFlowKHR = 4421,
         PostDepthCoverage = 4446,
         DenormPreserve = 4459,
@@ -152,12 +160,19 @@
         RoundingModeRTZ = 4463,
         EarlyAndLateFragmentTestsAMD = 5017,
         StencilRefReplacingEXT = 5027,
+        CoalescingAMDX = 5069,
+        MaxNodeRecursionAMDX = 5071,
+        StaticNumWorkgroupsAMDX = 5072,
+        ShaderIndexAMDX = 5073,
+        MaxNumWorkgroupsAMDX = 5077,
         StencilRefUnchangedFrontAMD = 5079,
         StencilRefGreaterFrontAMD = 5080,
         StencilRefLessFrontAMD = 5081,
         StencilRefUnchangedBackAMD = 5082,
         StencilRefGreaterBackAMD = 5083,
         StencilRefLessBackAMD = 5084,
+        QuadDerivativesKHR = 5088,
+        RequireFullQuadsKHR = 5089,
         OutputLinesEXT = 5269,
         OutputLinesNV = 5269,
         OutputPrimitivesEXT = 5270,
@@ -182,6 +197,10 @@
         NoGlobalOffsetINTEL = 5895,
         NumSIMDWorkitemsINTEL = 5896,
         SchedulerTargetFmaxMhzINTEL = 5903,
+        MaximallyReconvergesKHR = 6023,
+        FPFastMathDefault = 6028,
+        StreamingInterfaceINTEL = 6154,
+        RegisterMapInterfaceINTEL = 6160,
         NamedBarrierCountINTEL = 6417,
     },
 
@@ -199,6 +218,9 @@
         AtomicCounter = 10,
         Image = 11,
         StorageBuffer = 12,
+        TileImageEXT = 4172,
+        NodePayloadAMDX = 5068,
+        NodeOutputPayloadAMDX = 5076,
         CallableDataKHR = 5328,
         CallableDataNV = 5328,
         IncomingCallableDataKHR = 5329,
@@ -213,6 +235,7 @@
         ShaderRecordBufferNV = 5343,
         PhysicalStorageBuffer = 5349,
         PhysicalStorageBufferEXT = 5349,
+        HitObjectAttributeNV = 5385,
         TaskPayloadWorkgroupEXT = 5402,
         CodeSectionINTEL = 5605,
         DeviceOnlyINTEL = 5936,
@@ -227,6 +250,7 @@
         Rect = 4,
         Buffer = 5,
         SubpassData = 6,
+        TileImageDataEXT = 4173,
     },
 
     SamplerAddressingMode = {
@@ -328,6 +352,8 @@
         Float = 14,
         UnormInt24 = 15,
         UnormInt101010_2 = 16,
+        UnsignedIntRaw10EXT = 19,
+        UnsignedIntRaw12EXT = 20,
     },
 
     ImageOperandsShift = {
@@ -383,8 +409,11 @@
         NSZ = 2,
         AllowRecip = 3,
         Fast = 4,
+        AllowContract = 16,
         AllowContractFastINTEL = 16,
+        AllowReassoc = 17,
         AllowReassocINTEL = 17,
+        AllowTransform = 18,
     },
 
     FPFastMathModeMask = {
@@ -394,8 +423,11 @@
         NSZ = 0x00000004,
         AllowRecip = 0x00000008,
         Fast = 0x00000010,
+        AllowContract = 0x00010000,
         AllowContractFastINTEL = 0x00010000,
+        AllowReassoc = 0x00020000,
         AllowReassocINTEL = 0x00020000,
+        AllowTransform = 0x00040000,
     },
 
     FPRoundingMode = {
@@ -426,6 +458,7 @@
         NoCapture = 5,
         NoWrite = 6,
         NoReadWrite = 7,
+        RuntimeAlignedINTEL = 5940,
     },
 
     Decoration = {
@@ -478,7 +511,13 @@
         MaxByteOffsetId = 47,
         NoSignedWrap = 4469,
         NoUnsignedWrap = 4470,
+        WeightTextureQCOM = 4487,
+        BlockMatchTextureQCOM = 4488,
         ExplicitInterpAMD = 4999,
+        NodeSharesPayloadLimitsWithAMDX = 5019,
+        NodeMaxPayloadsAMDX = 5020,
+        TrackFinishWritingAMDX = 5078,
+        PayloadNodeNameAMDX = 5091,
         OverrideCoverageNV = 5248,
         PassthroughNV = 5250,
         ViewportRelativeNV = 5252,
@@ -495,6 +534,7 @@
         RestrictPointerEXT = 5355,
         AliasedPointer = 5356,
         AliasedPointerEXT = 5356,
+        HitObjectShaderRecordBufferNV = 5386,
         BindlessSamplerNV = 5398,
         BindlessImageNV = 5399,
         BoundSamplerNV = 5400,
@@ -527,20 +567,45 @@
         MergeINTEL = 5834,
         BankBitsINTEL = 5835,
         ForcePow2DepthINTEL = 5836,
+        StridesizeINTEL = 5883,
+        WordsizeINTEL = 5884,
+        TrueDualPortINTEL = 5885,
         BurstCoalesceINTEL = 5899,
         CacheSizeINTEL = 5900,
         DontStaticallyCoalesceINTEL = 5901,
         PrefetchINTEL = 5902,
         StallEnableINTEL = 5905,
         FuseLoopsInFunctionINTEL = 5907,
+        MathOpDSPModeINTEL = 5909,
         AliasScopeINTEL = 5914,
         NoAliasINTEL = 5915,
+        InitiationIntervalINTEL = 5917,
+        MaxConcurrencyINTEL = 5918,
+        PipelineEnableINTEL = 5919,
         BufferLocationINTEL = 5921,
         IOPipeStorageINTEL = 5944,
         FunctionFloatingPointModeINTEL = 6080,
         SingleElementVectorINTEL = 6085,
         VectorComputeCallableFunctionINTEL = 6087,
         MediaBlockIOINTEL = 6140,
+        StallFreeINTEL = 6151,
+        FPMaxErrorDecorationINTEL = 6170,
+        LatencyControlLabelINTEL = 6172,
+        LatencyControlConstraintINTEL = 6173,
+        ConduitKernelArgumentINTEL = 6175,
+        RegisterMapKernelArgumentINTEL = 6176,
+        MMHostInterfaceAddressWidthINTEL = 6177,
+        MMHostInterfaceDataWidthINTEL = 6178,
+        MMHostInterfaceLatencyINTEL = 6179,
+        MMHostInterfaceReadWriteModeINTEL = 6180,
+        MMHostInterfaceMaxBurstINTEL = 6181,
+        MMHostInterfaceWaitRequestINTEL = 6182,
+        StableKernelArgumentINTEL = 6183,
+        HostAccessINTEL = 6188,
+        InitModeINTEL = 6190,
+        ImplementInRegisterMapINTEL = 6191,
+        CacheControlLoadINTEL = 6442,
+        CacheControlStoreINTEL = 6443,
     },
 
     BuiltIn = {
@@ -585,6 +650,11 @@
         SubgroupLocalInvocationId = 41,
         VertexIndex = 42,
         InstanceIndex = 43,
+        CoreIDARM = 4160,
+        CoreCountARM = 4161,
+        CoreMaxIDARM = 4162,
+        WarpIDARM = 4163,
+        WarpMaxIDARM = 4164,
         SubgroupEqMask = 4416,
         SubgroupEqMaskKHR = 4416,
         SubgroupGeMask = 4417,
@@ -610,6 +680,8 @@
         BaryCoordSmoothSampleAMD = 4997,
         BaryCoordPullModelAMD = 4998,
         FragStencilRefEXT = 5014,
+        CoalescedInputCountAMDX = 5021,
+        ShaderIndexAMDX = 5073,
         ViewportMaskNV = 5253,
         SecondaryPositionNV = 5257,
         SecondaryViewportMaskNV = 5258,
@@ -662,6 +734,9 @@
         HitKindKHR = 5333,
         HitKindNV = 5333,
         CurrentRayTimeNV = 5334,
+        HitTriangleVertexPositionsKHR = 5335,
+        HitMicroTriangleVertexPositionsNV = 5337,
+        HitMicroTriangleVertexBarycentricsNV = 5344,
         IncomingRayFlagsKHR = 5351,
         IncomingRayFlagsNV = 5351,
         RayGeometryIndexKHR = 5352,
@@ -669,6 +744,8 @@
         SMCountNV = 5375,
         WarpIDNV = 5376,
         SMIDNV = 5377,
+        HitKindFrontFacingMicroTriangleNV = 5405,
+        HitKindBackFacingMicroTriangleNV = 5406,
         CullMaskKHR = 6021,
     },
 
@@ -701,6 +778,8 @@
         MaxInterleavingINTEL = 21,
         SpeculatedIterationsINTEL = 22,
         NoFusionINTEL = 23,
+        LoopCountINTEL = 24,
+        MaxReinvocationDelayINTEL = 25,
     },
 
     LoopControlMask = {
@@ -722,6 +801,8 @@
         MaxInterleavingINTEL = 0x00200000,
         SpeculatedIterationsINTEL = 0x00400000,
         NoFusionINTEL = 0x00800000,
+        LoopCountINTEL = 0x01000000,
+        MaxReinvocationDelayINTEL = 0x02000000,
     },
 
     FunctionControlShift = {
@@ -918,6 +999,10 @@
         ShaderLayer = 69,
         ShaderViewportIndex = 70,
         UniformDecoration = 71,
+        CoreBuiltinsARM = 4165,
+        TileImageColorReadAccessEXT = 4166,
+        TileImageDepthReadAccessEXT = 4167,
+        TileImageStencilReadAccessEXT = 4168,
         FragmentShadingRateKHR = 4422,
         SubgroupBallotKHR = 4423,
         DrawParameters = 4427,
@@ -949,6 +1034,9 @@
         RayQueryKHR = 4472,
         RayTraversalPrimitiveCullingKHR = 4478,
         RayTracingKHR = 4479,
+        TextureSampleWeightedQCOM = 4484,
+        TextureBoxFilterQCOM = 4485,
+        TextureBlockMatchQCOM = 4486,
         Float16ImageAMD = 5008,
         ImageGatherBiasLodAMD = 5009,
         FragmentMaskAMD = 5010,
@@ -956,6 +1044,8 @@
         ImageReadWriteLodAMD = 5015,
         Int64ImageEXT = 5016,
         ShaderClockKHR = 5055,
+        ShaderEnqueueAMDX = 5067,
+        QuadControlKHR = 5087,
         SampleMaskOverrideCoverageNV = 5249,
         GeometryShaderPassthroughNV = 5251,
         ShaderViewportIndexLayerEXT = 5254,
@@ -997,6 +1087,7 @@
         UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
         StorageTexelBufferArrayNonUniformIndexing = 5312,
         StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+        RayTracingPositionFetchKHR = 5336,
         RayTracingNV = 5340,
         RayTracingMotionBlurNV = 5341,
         VulkanMemoryModel = 5345,
@@ -1014,7 +1105,12 @@
         FragmentShaderPixelInterlockEXT = 5378,
         DemoteToHelperInvocation = 5379,
         DemoteToHelperInvocationEXT = 5379,
+        DisplacementMicromapNV = 5380,
+        RayTracingOpacityMicromapEXT = 5381,
+        ShaderInvocationReorderNV = 5383,
         BindlessTextureNV = 5390,
+        RayQueryPositionFetchKHR = 5391,
+        RayTracingDisplacementMicromapNV = 5409,
         SubgroupShuffleINTEL = 5568,
         SubgroupBufferBlockIOINTEL = 5569,
         SubgroupImageBlockIOINTEL = 5570,
@@ -1047,10 +1143,13 @@
         FPGAMemoryAccessesINTEL = 5898,
         FPGAClusterAttributesINTEL = 5904,
         LoopFuseINTEL = 5906,
+        FPGADSPControlINTEL = 5908,
         MemoryAccessAliasingINTEL = 5910,
+        FPGAInvocationPipeliningAttributesINTEL = 5916,
         FPGABufferLocationINTEL = 5920,
         ArbitraryPrecisionFixedPointINTEL = 5922,
         USMStorageClassesINTEL = 5935,
+        RuntimeAlignedAttributeINTEL = 5939,
         IOPipesINTEL = 5943,
         BlockingPipesINTEL = 5945,
         FPGARegINTEL = 5948,
@@ -1063,16 +1162,28 @@
         DotProduct = 6019,
         DotProductKHR = 6019,
         RayCullMaskKHR = 6020,
+        CooperativeMatrixKHR = 6022,
         BitInstructions = 6025,
         GroupNonUniformRotateKHR = 6026,
+        FloatControls2 = 6029,
         AtomicFloat32AddEXT = 6033,
         AtomicFloat64AddEXT = 6034,
-        LongConstantCompositeINTEL = 6089,
+        LongCompositesINTEL = 6089,
         OptNoneINTEL = 6094,
         AtomicFloat16AddEXT = 6095,
         DebugInfoModuleINTEL = 6114,
+        BFloat16ConversionINTEL = 6115,
         SplitBarrierINTEL = 6141,
+        FPGAClusterAttributesV2INTEL = 6150,
+        FPGAKernelAttributesv2INTEL = 6161,
+        FPMaxErrorINTEL = 6169,
+        FPGALatencyControlINTEL = 6171,
+        FPGAArgumentInterfacesINTEL = 6174,
+        GlobalVariableHostAccessINTEL = 6187,
+        GlobalVariableFPGADecorationsINTEL = 6189,
         GroupUniformArithmeticKHR = 6400,
+        MaskedGatherScatterINTEL = 6427,
+        CacheControlsINTEL = 6441,
     },
 
     RayFlagsShift = {
@@ -1086,6 +1197,7 @@
         CullNoOpaqueKHR = 7,
         SkipTrianglesKHR = 8,
         SkipAABBsKHR = 9,
+        ForceOpacityMicromap2StateEXT = 10,
     },
 
     RayFlagsMask = {
@@ -1100,6 +1212,7 @@
         CullNoOpaqueKHR = 0x00000080,
         SkipTrianglesKHR = 0x00000100,
         SkipAABBsKHR = 0x00000200,
+        ForceOpacityMicromap2StateEXT = 0x00000400,
     },
 
     RayQueryIntersection = {
@@ -1166,6 +1279,61 @@
         PackedVectorFormat4x8BitKHR = 0,
     },
 
+    CooperativeMatrixOperandsShift = {
+        MatrixASignedComponentsKHR = 0,
+        MatrixBSignedComponentsKHR = 1,
+        MatrixCSignedComponentsKHR = 2,
+        MatrixResultSignedComponentsKHR = 3,
+        SaturatingAccumulationKHR = 4,
+    },
+
+    CooperativeMatrixOperandsMask = {
+        MaskNone = 0,
+        MatrixASignedComponentsKHR = 0x00000001,
+        MatrixBSignedComponentsKHR = 0x00000002,
+        MatrixCSignedComponentsKHR = 0x00000004,
+        MatrixResultSignedComponentsKHR = 0x00000008,
+        SaturatingAccumulationKHR = 0x00000010,
+    },
+
+    CooperativeMatrixLayout = {
+        RowMajorKHR = 0,
+        ColumnMajorKHR = 1,
+    },
+
+    CooperativeMatrixUse = {
+        MatrixAKHR = 0,
+        MatrixBKHR = 1,
+        MatrixAccumulatorKHR = 2,
+    },
+
+    InitializationModeQualifier = {
+        InitOnDeviceReprogramINTEL = 0,
+        InitOnDeviceResetINTEL = 1,
+    },
+
+    HostAccessQualifier = {
+        NoneINTEL = 0,
+        ReadINTEL = 1,
+        WriteINTEL = 2,
+        ReadWriteINTEL = 3,
+    },
+
+    LoadCacheControl = {
+        UncachedINTEL = 0,
+        CachedINTEL = 1,
+        StreamingINTEL = 2,
+        InvalidateAfterReadINTEL = 3,
+        ConstCachedINTEL = 4,
+    },
+
+    StoreCacheControl = {
+        UncachedINTEL = 0,
+        WriteThroughINTEL = 1,
+        WriteBackINTEL = 2,
+        StreamingINTEL = 3,
+    },
+
     Op = {
         OpNop = 0,
         OpUndef = 1,
@@ -1511,6 +1679,9 @@
         OpPtrEqual = 401,
         OpPtrNotEqual = 402,
         OpPtrDiff = 403,
+        OpColorAttachmentReadEXT = 4160,
+        OpDepthAttachmentReadEXT = 4161,
+        OpStencilAttachmentReadEXT = 4162,
         OpTerminateInvocation = 4416,
         OpSubgroupBallotKHR = 4421,
         OpSubgroupFirstInvocationKHR = 4422,
@@ -1536,6 +1707,11 @@
         OpUDotAccSatKHR = 4454,
         OpSUDotAccSat = 4455,
         OpSUDotAccSatKHR = 4455,
+        OpTypeCooperativeMatrixKHR = 4456,
+        OpCooperativeMatrixLoadKHR = 4457,
+        OpCooperativeMatrixStoreKHR = 4458,
+        OpCooperativeMatrixMulAddKHR = 4459,
+        OpCooperativeMatrixLengthKHR = 4460,
         OpTypeRayQueryKHR = 4472,
         OpRayQueryInitializeKHR = 4473,
         OpRayQueryTerminateKHR = 4474,
@@ -1543,6 +1719,10 @@
         OpRayQueryConfirmIntersectionKHR = 4476,
         OpRayQueryProceedKHR = 4477,
         OpRayQueryGetIntersectionTypeKHR = 4479,
+        OpImageSampleWeightedQCOM = 4480,
+        OpImageBoxFilterQCOM = 4481,
+        OpImageBlockMatchSSDQCOM = 4482,
+        OpImageBlockMatchSADQCOM = 4483,
         OpGroupIAddNonUniformAMD = 5000,
         OpGroupFAddNonUniformAMD = 5001,
         OpGroupFMinNonUniformAMD = 5002,
@@ -1554,11 +1734,51 @@
         OpFragmentMaskFetchAMD = 5011,
         OpFragmentFetchAMD = 5012,
         OpReadClockKHR = 5056,
+        OpFinalizeNodePayloadsAMDX = 5075,
+        OpFinishWritingNodePayloadAMDX = 5078,
+        OpInitializeNodePayloadsAMDX = 5090,
+        OpGroupNonUniformQuadAllKHR = 5110,
+        OpGroupNonUniformQuadAnyKHR = 5111,
+        OpHitObjectRecordHitMotionNV = 5249,
+        OpHitObjectRecordHitWithIndexMotionNV = 5250,
+        OpHitObjectRecordMissMotionNV = 5251,
+        OpHitObjectGetWorldToObjectNV = 5252,
+        OpHitObjectGetObjectToWorldNV = 5253,
+        OpHitObjectGetObjectRayDirectionNV = 5254,
+        OpHitObjectGetObjectRayOriginNV = 5255,
+        OpHitObjectTraceRayMotionNV = 5256,
+        OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+        OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+        OpHitObjectRecordEmptyNV = 5259,
+        OpHitObjectTraceRayNV = 5260,
+        OpHitObjectRecordHitNV = 5261,
+        OpHitObjectRecordHitWithIndexNV = 5262,
+        OpHitObjectRecordMissNV = 5263,
+        OpHitObjectExecuteShaderNV = 5264,
+        OpHitObjectGetCurrentTimeNV = 5265,
+        OpHitObjectGetAttributesNV = 5266,
+        OpHitObjectGetHitKindNV = 5267,
+        OpHitObjectGetPrimitiveIndexNV = 5268,
+        OpHitObjectGetGeometryIndexNV = 5269,
+        OpHitObjectGetInstanceIdNV = 5270,
+        OpHitObjectGetInstanceCustomIndexNV = 5271,
+        OpHitObjectGetWorldRayDirectionNV = 5272,
+        OpHitObjectGetWorldRayOriginNV = 5273,
+        OpHitObjectGetRayTMaxNV = 5274,
+        OpHitObjectGetRayTMinNV = 5275,
+        OpHitObjectIsEmptyNV = 5276,
+        OpHitObjectIsHitNV = 5277,
+        OpHitObjectIsMissNV = 5278,
+        OpReorderThreadWithHitObjectNV = 5279,
+        OpReorderThreadWithHintNV = 5280,
+        OpTypeHitObjectNV = 5281,
         OpImageSampleFootprintNV = 5283,
         OpEmitMeshTasksEXT = 5294,
         OpSetMeshOutputsEXT = 5295,
         OpGroupNonUniformPartitionNV = 5296,
         OpWritePackedPrimitiveIndices4x8NV = 5299,
+        OpFetchMicroTriangleVertexPositionNV = 5300,
+        OpFetchMicroTriangleVertexBarycentricNV = 5301,
         OpReportIntersectionKHR = 5334,
         OpReportIntersectionNV = 5334,
         OpIgnoreIntersectionNV = 5335,
@@ -1566,6 +1786,7 @@
         OpTraceNV = 5337,
         OpTraceMotionNV = 5338,
         OpTraceRayMotionNV = 5339,
+        OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
         OpTypeAccelerationStructureKHR = 5341,
         OpTypeAccelerationStructureNV = 5341,
         OpExecuteCallableNV = 5344,
@@ -1827,6 +2048,9 @@
         OpTypeStructContinuedINTEL = 6090,
         OpConstantCompositeContinuedINTEL = 6091,
         OpSpecConstantCompositeContinuedINTEL = 6092,
+        OpCompositeConstructContinuedINTEL = 6096,
+        OpConvertFToBF16INTEL = 6116,
+        OpConvertBF16ToFINTEL = 6117,
         OpControlBarrierArriveINTEL = 6142,
         OpControlBarrierWaitINTEL = 6143,
         OpGroupIMulKHR = 6401,
@@ -1837,6 +2061,8 @@
         OpGroupLogicalAndKHR = 6406,
         OpGroupLogicalOrKHR = 6407,
         OpGroupLogicalXorKHR = 6408,
+        OpMaskedGatherINTEL = 6428,
+        OpMaskedScatterINTEL = 6429,
     },
 
 }
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 5e8a0ef..3ab1f07 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014-2020 The Khronos Group Inc.
+# Copyright (c) 2014-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"),
@@ -60,6 +60,11 @@
         'HLSL' : 5,
         'CPP_for_OpenCL' : 6,
         'SYCL' : 7,
+        'HERO_C' : 8,
+        'NZSL' : 9,
+        'WGSL' : 10,
+        'Slang' : 11,
+        'Zig' : 12,
     },
 
     'ExecutionModel' : {
@@ -143,6 +148,9 @@
         'SubgroupsPerWorkgroupId' : 37,
         'LocalSizeId' : 38,
         'LocalSizeHintId' : 39,
+        'NonCoherentColorAttachmentReadEXT' : 4169,
+        'NonCoherentDepthAttachmentReadEXT' : 4170,
+        'NonCoherentStencilAttachmentReadEXT' : 4171,
         'SubgroupUniformControlFlowKHR' : 4421,
         'PostDepthCoverage' : 4446,
         'DenormPreserve' : 4459,
@@ -152,12 +160,19 @@
         'RoundingModeRTZ' : 4463,
         'EarlyAndLateFragmentTestsAMD' : 5017,
         'StencilRefReplacingEXT' : 5027,
+        'CoalescingAMDX' : 5069,
+        'MaxNodeRecursionAMDX' : 5071,
+        'StaticNumWorkgroupsAMDX' : 5072,
+        'ShaderIndexAMDX' : 5073,
+        'MaxNumWorkgroupsAMDX' : 5077,
         'StencilRefUnchangedFrontAMD' : 5079,
         'StencilRefGreaterFrontAMD' : 5080,
         'StencilRefLessFrontAMD' : 5081,
         'StencilRefUnchangedBackAMD' : 5082,
         'StencilRefGreaterBackAMD' : 5083,
         'StencilRefLessBackAMD' : 5084,
+        'QuadDerivativesKHR' : 5088,
+        'RequireFullQuadsKHR' : 5089,
         'OutputLinesEXT' : 5269,
         'OutputLinesNV' : 5269,
         'OutputPrimitivesEXT' : 5270,
@@ -182,6 +197,10 @@
         'NoGlobalOffsetINTEL' : 5895,
         'NumSIMDWorkitemsINTEL' : 5896,
         'SchedulerTargetFmaxMhzINTEL' : 5903,
+        'MaximallyReconvergesKHR' : 6023,
+        'FPFastMathDefault' : 6028,
+        'StreamingInterfaceINTEL' : 6154,
+        'RegisterMapInterfaceINTEL' : 6160,
         'NamedBarrierCountINTEL' : 6417,
     },
 
@@ -199,6 +218,9 @@
         'AtomicCounter' : 10,
         'Image' : 11,
         'StorageBuffer' : 12,
+        'TileImageEXT' : 4172,
+        'NodePayloadAMDX' : 5068,
+        'NodeOutputPayloadAMDX' : 5076,
         'CallableDataKHR' : 5328,
         'CallableDataNV' : 5328,
         'IncomingCallableDataKHR' : 5329,
@@ -213,6 +235,7 @@
         'ShaderRecordBufferNV' : 5343,
         'PhysicalStorageBuffer' : 5349,
         'PhysicalStorageBufferEXT' : 5349,
+        'HitObjectAttributeNV' : 5385,
         'TaskPayloadWorkgroupEXT' : 5402,
         'CodeSectionINTEL' : 5605,
         'DeviceOnlyINTEL' : 5936,
@@ -227,6 +250,7 @@
         'Rect' : 4,
         'Buffer' : 5,
         'SubpassData' : 6,
+        'TileImageDataEXT' : 4173,
     },
 
     'SamplerAddressingMode' : {
@@ -328,6 +352,8 @@
         'Float' : 14,
         'UnormInt24' : 15,
         'UnormInt101010_2' : 16,
+        'UnsignedIntRaw10EXT' : 19,
+        'UnsignedIntRaw12EXT' : 20,
     },
 
     'ImageOperandsShift' : {
@@ -383,8 +409,11 @@
         'NSZ' : 2,
         'AllowRecip' : 3,
         'Fast' : 4,
+        'AllowContract' : 16,
         'AllowContractFastINTEL' : 16,
+        'AllowReassoc' : 17,
         'AllowReassocINTEL' : 17,
+        'AllowTransform' : 18,
     },
 
     'FPFastMathModeMask' : {
@@ -394,8 +423,11 @@
         'NSZ' : 0x00000004,
         'AllowRecip' : 0x00000008,
         'Fast' : 0x00000010,
+        'AllowContract' : 0x00010000,
         'AllowContractFastINTEL' : 0x00010000,
+        'AllowReassoc' : 0x00020000,
         'AllowReassocINTEL' : 0x00020000,
+        'AllowTransform' : 0x00040000,
     },
 
     'FPRoundingMode' : {
@@ -426,6 +458,7 @@
         'NoCapture' : 5,
         'NoWrite' : 6,
         'NoReadWrite' : 7,
+        'RuntimeAlignedINTEL' : 5940,
     },
 
     'Decoration' : {
@@ -478,7 +511,13 @@
         'MaxByteOffsetId' : 47,
         'NoSignedWrap' : 4469,
         'NoUnsignedWrap' : 4470,
+        'WeightTextureQCOM' : 4487,
+        'BlockMatchTextureQCOM' : 4488,
         'ExplicitInterpAMD' : 4999,
+        'NodeSharesPayloadLimitsWithAMDX' : 5019,
+        'NodeMaxPayloadsAMDX' : 5020,
+        'TrackFinishWritingAMDX' : 5078,
+        'PayloadNodeNameAMDX' : 5091,
         'OverrideCoverageNV' : 5248,
         'PassthroughNV' : 5250,
         'ViewportRelativeNV' : 5252,
@@ -495,6 +534,7 @@
         'RestrictPointerEXT' : 5355,
         'AliasedPointer' : 5356,
         'AliasedPointerEXT' : 5356,
+        'HitObjectShaderRecordBufferNV' : 5386,
         'BindlessSamplerNV' : 5398,
         'BindlessImageNV' : 5399,
         'BoundSamplerNV' : 5400,
@@ -527,20 +567,45 @@
         'MergeINTEL' : 5834,
         'BankBitsINTEL' : 5835,
         'ForcePow2DepthINTEL' : 5836,
+        'StridesizeINTEL' : 5883,
+        'WordsizeINTEL' : 5884,
+        'TrueDualPortINTEL' : 5885,
         'BurstCoalesceINTEL' : 5899,
         'CacheSizeINTEL' : 5900,
         'DontStaticallyCoalesceINTEL' : 5901,
         'PrefetchINTEL' : 5902,
         'StallEnableINTEL' : 5905,
         'FuseLoopsInFunctionINTEL' : 5907,
+        'MathOpDSPModeINTEL' : 5909,
         'AliasScopeINTEL' : 5914,
         'NoAliasINTEL' : 5915,
+        'InitiationIntervalINTEL' : 5917,
+        'MaxConcurrencyINTEL' : 5918,
+        'PipelineEnableINTEL' : 5919,
         'BufferLocationINTEL' : 5921,
         'IOPipeStorageINTEL' : 5944,
         'FunctionFloatingPointModeINTEL' : 6080,
         'SingleElementVectorINTEL' : 6085,
         'VectorComputeCallableFunctionINTEL' : 6087,
         'MediaBlockIOINTEL' : 6140,
+        'StallFreeINTEL' : 6151,
+        'FPMaxErrorDecorationINTEL' : 6170,
+        'LatencyControlLabelINTEL' : 6172,
+        'LatencyControlConstraintINTEL' : 6173,
+        'ConduitKernelArgumentINTEL' : 6175,
+        'RegisterMapKernelArgumentINTEL' : 6176,
+        'MMHostInterfaceAddressWidthINTEL' : 6177,
+        'MMHostInterfaceDataWidthINTEL' : 6178,
+        'MMHostInterfaceLatencyINTEL' : 6179,
+        'MMHostInterfaceReadWriteModeINTEL' : 6180,
+        'MMHostInterfaceMaxBurstINTEL' : 6181,
+        'MMHostInterfaceWaitRequestINTEL' : 6182,
+        'StableKernelArgumentINTEL' : 6183,
+        'HostAccessINTEL' : 6188,
+        'InitModeINTEL' : 6190,
+        'ImplementInRegisterMapINTEL' : 6191,
+        'CacheControlLoadINTEL' : 6442,
+        'CacheControlStoreINTEL' : 6443,
     },
 
     'BuiltIn' : {
@@ -585,6 +650,11 @@
         'SubgroupLocalInvocationId' : 41,
         'VertexIndex' : 42,
         'InstanceIndex' : 43,
+        'CoreIDARM' : 4160,
+        'CoreCountARM' : 4161,
+        'CoreMaxIDARM' : 4162,
+        'WarpIDARM' : 4163,
+        'WarpMaxIDARM' : 4164,
         'SubgroupEqMask' : 4416,
         'SubgroupEqMaskKHR' : 4416,
         'SubgroupGeMask' : 4417,
@@ -610,6 +680,8 @@
         'BaryCoordSmoothSampleAMD' : 4997,
         'BaryCoordPullModelAMD' : 4998,
         'FragStencilRefEXT' : 5014,
+        'CoalescedInputCountAMDX' : 5021,
+        'ShaderIndexAMDX' : 5073,
         'ViewportMaskNV' : 5253,
         'SecondaryPositionNV' : 5257,
         'SecondaryViewportMaskNV' : 5258,
@@ -662,6 +734,9 @@
         'HitKindKHR' : 5333,
         'HitKindNV' : 5333,
         'CurrentRayTimeNV' : 5334,
+        'HitTriangleVertexPositionsKHR' : 5335,
+        'HitMicroTriangleVertexPositionsNV' : 5337,
+        'HitMicroTriangleVertexBarycentricsNV' : 5344,
         'IncomingRayFlagsKHR' : 5351,
         'IncomingRayFlagsNV' : 5351,
         'RayGeometryIndexKHR' : 5352,
@@ -669,6 +744,8 @@
         'SMCountNV' : 5375,
         'WarpIDNV' : 5376,
         'SMIDNV' : 5377,
+        'HitKindFrontFacingMicroTriangleNV' : 5405,
+        'HitKindBackFacingMicroTriangleNV' : 5406,
         'CullMaskKHR' : 6021,
     },
 
@@ -701,6 +778,8 @@
         'MaxInterleavingINTEL' : 21,
         'SpeculatedIterationsINTEL' : 22,
         'NoFusionINTEL' : 23,
+        'LoopCountINTEL' : 24,
+        'MaxReinvocationDelayINTEL' : 25,
     },
 
     'LoopControlMask' : {
@@ -722,6 +801,8 @@
         'MaxInterleavingINTEL' : 0x00200000,
         'SpeculatedIterationsINTEL' : 0x00400000,
         'NoFusionINTEL' : 0x00800000,
+        'LoopCountINTEL' : 0x01000000,
+        'MaxReinvocationDelayINTEL' : 0x02000000,
     },
 
     'FunctionControlShift' : {
@@ -918,6 +999,10 @@
         'ShaderLayer' : 69,
         'ShaderViewportIndex' : 70,
         'UniformDecoration' : 71,
+        'CoreBuiltinsARM' : 4165,
+        'TileImageColorReadAccessEXT' : 4166,
+        'TileImageDepthReadAccessEXT' : 4167,
+        'TileImageStencilReadAccessEXT' : 4168,
         'FragmentShadingRateKHR' : 4422,
         'SubgroupBallotKHR' : 4423,
         'DrawParameters' : 4427,
@@ -949,6 +1034,9 @@
         'RayQueryKHR' : 4472,
         'RayTraversalPrimitiveCullingKHR' : 4478,
         'RayTracingKHR' : 4479,
+        'TextureSampleWeightedQCOM' : 4484,
+        'TextureBoxFilterQCOM' : 4485,
+        'TextureBlockMatchQCOM' : 4486,
         'Float16ImageAMD' : 5008,
         'ImageGatherBiasLodAMD' : 5009,
         'FragmentMaskAMD' : 5010,
@@ -956,6 +1044,8 @@
         'ImageReadWriteLodAMD' : 5015,
         'Int64ImageEXT' : 5016,
         'ShaderClockKHR' : 5055,
+        'ShaderEnqueueAMDX' : 5067,
+        'QuadControlKHR' : 5087,
         'SampleMaskOverrideCoverageNV' : 5249,
         'GeometryShaderPassthroughNV' : 5251,
         'ShaderViewportIndexLayerEXT' : 5254,
@@ -997,6 +1087,7 @@
         'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
         'StorageTexelBufferArrayNonUniformIndexing' : 5312,
         'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
+        'RayTracingPositionFetchKHR' : 5336,
         'RayTracingNV' : 5340,
         'RayTracingMotionBlurNV' : 5341,
         'VulkanMemoryModel' : 5345,
@@ -1014,7 +1105,12 @@
         'FragmentShaderPixelInterlockEXT' : 5378,
         'DemoteToHelperInvocation' : 5379,
         'DemoteToHelperInvocationEXT' : 5379,
+        'DisplacementMicromapNV' : 5380,
+        'RayTracingOpacityMicromapEXT' : 5381,
+        'ShaderInvocationReorderNV' : 5383,
         'BindlessTextureNV' : 5390,
+        'RayQueryPositionFetchKHR' : 5391,
+        'RayTracingDisplacementMicromapNV' : 5409,
         'SubgroupShuffleINTEL' : 5568,
         'SubgroupBufferBlockIOINTEL' : 5569,
         'SubgroupImageBlockIOINTEL' : 5570,
@@ -1047,10 +1143,13 @@
         'FPGAMemoryAccessesINTEL' : 5898,
         'FPGAClusterAttributesINTEL' : 5904,
         'LoopFuseINTEL' : 5906,
+        'FPGADSPControlINTEL' : 5908,
         'MemoryAccessAliasingINTEL' : 5910,
+        'FPGAInvocationPipeliningAttributesINTEL' : 5916,
         'FPGABufferLocationINTEL' : 5920,
         'ArbitraryPrecisionFixedPointINTEL' : 5922,
         'USMStorageClassesINTEL' : 5935,
+        'RuntimeAlignedAttributeINTEL' : 5939,
         'IOPipesINTEL' : 5943,
         'BlockingPipesINTEL' : 5945,
         'FPGARegINTEL' : 5948,
@@ -1063,16 +1162,28 @@
         'DotProduct' : 6019,
         'DotProductKHR' : 6019,
         'RayCullMaskKHR' : 6020,
+        'CooperativeMatrixKHR' : 6022,
         'BitInstructions' : 6025,
         'GroupNonUniformRotateKHR' : 6026,
+        'FloatControls2' : 6029,
         'AtomicFloat32AddEXT' : 6033,
         'AtomicFloat64AddEXT' : 6034,
-        'LongConstantCompositeINTEL' : 6089,
+        'LongCompositesINTEL' : 6089,
         'OptNoneINTEL' : 6094,
         'AtomicFloat16AddEXT' : 6095,
         'DebugInfoModuleINTEL' : 6114,
+        'BFloat16ConversionINTEL' : 6115,
         'SplitBarrierINTEL' : 6141,
+        'FPGAClusterAttributesV2INTEL' : 6150,
+        'FPGAKernelAttributesv2INTEL' : 6161,
+        'FPMaxErrorINTEL' : 6169,
+        'FPGALatencyControlINTEL' : 6171,
+        'FPGAArgumentInterfacesINTEL' : 6174,
+        'GlobalVariableHostAccessINTEL' : 6187,
+        'GlobalVariableFPGADecorationsINTEL' : 6189,
         'GroupUniformArithmeticKHR' : 6400,
+        'MaskedGatherScatterINTEL' : 6427,
+        'CacheControlsINTEL' : 6441,
     },
 
     'RayFlagsShift' : {
@@ -1086,6 +1197,7 @@
         'CullNoOpaqueKHR' : 7,
         'SkipTrianglesKHR' : 8,
         'SkipAABBsKHR' : 9,
+        'ForceOpacityMicromap2StateEXT' : 10,
     },
 
     'RayFlagsMask' : {
@@ -1100,6 +1212,7 @@
         'CullNoOpaqueKHR' : 0x00000080,
         'SkipTrianglesKHR' : 0x00000100,
         'SkipAABBsKHR' : 0x00000200,
+        'ForceOpacityMicromap2StateEXT' : 0x00000400,
     },
 
     'RayQueryIntersection' : {
@@ -1166,6 +1279,61 @@
         'PackedVectorFormat4x8BitKHR' : 0,
     },
 
+    'CooperativeMatrixOperandsShift' : {
+        'MatrixASignedComponentsKHR' : 0,
+        'MatrixBSignedComponentsKHR' : 1,
+        'MatrixCSignedComponentsKHR' : 2,
+        'MatrixResultSignedComponentsKHR' : 3,
+        'SaturatingAccumulationKHR' : 4,
+    },
+
+    'CooperativeMatrixOperandsMask' : {
+        'MaskNone' : 0,
+        'MatrixASignedComponentsKHR' : 0x00000001,
+        'MatrixBSignedComponentsKHR' : 0x00000002,
+        'MatrixCSignedComponentsKHR' : 0x00000004,
+        'MatrixResultSignedComponentsKHR' : 0x00000008,
+        'SaturatingAccumulationKHR' : 0x00000010,
+    },
+
+    'CooperativeMatrixLayout' : {
+        'RowMajorKHR' : 0,
+        'ColumnMajorKHR' : 1,
+    },
+
+    'CooperativeMatrixUse' : {
+        'MatrixAKHR' : 0,
+        'MatrixBKHR' : 1,
+        'MatrixAccumulatorKHR' : 2,
+    },
+
+    'InitializationModeQualifier' : {
+        'InitOnDeviceReprogramINTEL' : 0,
+        'InitOnDeviceResetINTEL' : 1,
+    },
+
+    'HostAccessQualifier' : {
+        'NoneINTEL' : 0,
+        'ReadINTEL' : 1,
+        'WriteINTEL' : 2,
+        'ReadWriteINTEL' : 3,
+    },
+
+    'LoadCacheControl' : {
+        'UncachedINTEL' : 0,
+        'CachedINTEL' : 1,
+        'StreamingINTEL' : 2,
+        'InvalidateAfterReadINTEL' : 3,
+        'ConstCachedINTEL' : 4,
+    },
+
+    'StoreCacheControl' : {
+        'UncachedINTEL' : 0,
+        'WriteThroughINTEL' : 1,
+        'WriteBackINTEL' : 2,
+        'StreamingINTEL' : 3,
+    },
+
     'Op' : {
         'OpNop' : 0,
         'OpUndef' : 1,
@@ -1511,6 +1679,9 @@
         'OpPtrEqual' : 401,
         'OpPtrNotEqual' : 402,
         'OpPtrDiff' : 403,
+        'OpColorAttachmentReadEXT' : 4160,
+        'OpDepthAttachmentReadEXT' : 4161,
+        'OpStencilAttachmentReadEXT' : 4162,
         'OpTerminateInvocation' : 4416,
         'OpSubgroupBallotKHR' : 4421,
         'OpSubgroupFirstInvocationKHR' : 4422,
@@ -1536,6 +1707,11 @@
         'OpUDotAccSatKHR' : 4454,
         'OpSUDotAccSat' : 4455,
         'OpSUDotAccSatKHR' : 4455,
+        'OpTypeCooperativeMatrixKHR' : 4456,
+        'OpCooperativeMatrixLoadKHR' : 4457,
+        'OpCooperativeMatrixStoreKHR' : 4458,
+        'OpCooperativeMatrixMulAddKHR' : 4459,
+        'OpCooperativeMatrixLengthKHR' : 4460,
         'OpTypeRayQueryKHR' : 4472,
         'OpRayQueryInitializeKHR' : 4473,
         'OpRayQueryTerminateKHR' : 4474,
@@ -1543,6 +1719,10 @@
         'OpRayQueryConfirmIntersectionKHR' : 4476,
         'OpRayQueryProceedKHR' : 4477,
         'OpRayQueryGetIntersectionTypeKHR' : 4479,
+        'OpImageSampleWeightedQCOM' : 4480,
+        'OpImageBoxFilterQCOM' : 4481,
+        'OpImageBlockMatchSSDQCOM' : 4482,
+        'OpImageBlockMatchSADQCOM' : 4483,
         'OpGroupIAddNonUniformAMD' : 5000,
         'OpGroupFAddNonUniformAMD' : 5001,
         'OpGroupFMinNonUniformAMD' : 5002,
@@ -1554,11 +1734,51 @@
         'OpFragmentMaskFetchAMD' : 5011,
         'OpFragmentFetchAMD' : 5012,
         'OpReadClockKHR' : 5056,
+        'OpFinalizeNodePayloadsAMDX' : 5075,
+        'OpFinishWritingNodePayloadAMDX' : 5078,
+        'OpInitializeNodePayloadsAMDX' : 5090,
+        'OpGroupNonUniformQuadAllKHR' : 5110,
+        'OpGroupNonUniformQuadAnyKHR' : 5111,
+        'OpHitObjectRecordHitMotionNV' : 5249,
+        'OpHitObjectRecordHitWithIndexMotionNV' : 5250,
+        'OpHitObjectRecordMissMotionNV' : 5251,
+        'OpHitObjectGetWorldToObjectNV' : 5252,
+        'OpHitObjectGetObjectToWorldNV' : 5253,
+        'OpHitObjectGetObjectRayDirectionNV' : 5254,
+        'OpHitObjectGetObjectRayOriginNV' : 5255,
+        'OpHitObjectTraceRayMotionNV' : 5256,
+        'OpHitObjectGetShaderRecordBufferHandleNV' : 5257,
+        'OpHitObjectGetShaderBindingTableRecordIndexNV' : 5258,
+        'OpHitObjectRecordEmptyNV' : 5259,
+        'OpHitObjectTraceRayNV' : 5260,
+        'OpHitObjectRecordHitNV' : 5261,
+        'OpHitObjectRecordHitWithIndexNV' : 5262,
+        'OpHitObjectRecordMissNV' : 5263,
+        'OpHitObjectExecuteShaderNV' : 5264,
+        'OpHitObjectGetCurrentTimeNV' : 5265,
+        'OpHitObjectGetAttributesNV' : 5266,
+        'OpHitObjectGetHitKindNV' : 5267,
+        'OpHitObjectGetPrimitiveIndexNV' : 5268,
+        'OpHitObjectGetGeometryIndexNV' : 5269,
+        'OpHitObjectGetInstanceIdNV' : 5270,
+        'OpHitObjectGetInstanceCustomIndexNV' : 5271,
+        'OpHitObjectGetWorldRayDirectionNV' : 5272,
+        'OpHitObjectGetWorldRayOriginNV' : 5273,
+        'OpHitObjectGetRayTMaxNV' : 5274,
+        'OpHitObjectGetRayTMinNV' : 5275,
+        'OpHitObjectIsEmptyNV' : 5276,
+        'OpHitObjectIsHitNV' : 5277,
+        'OpHitObjectIsMissNV' : 5278,
+        'OpReorderThreadWithHitObjectNV' : 5279,
+        'OpReorderThreadWithHintNV' : 5280,
+        'OpTypeHitObjectNV' : 5281,
         'OpImageSampleFootprintNV' : 5283,
         'OpEmitMeshTasksEXT' : 5294,
         'OpSetMeshOutputsEXT' : 5295,
         'OpGroupNonUniformPartitionNV' : 5296,
         'OpWritePackedPrimitiveIndices4x8NV' : 5299,
+        'OpFetchMicroTriangleVertexPositionNV' : 5300,
+        'OpFetchMicroTriangleVertexBarycentricNV' : 5301,
         'OpReportIntersectionKHR' : 5334,
         'OpReportIntersectionNV' : 5334,
         'OpIgnoreIntersectionNV' : 5335,
@@ -1566,6 +1786,7 @@
         'OpTraceNV' : 5337,
         'OpTraceMotionNV' : 5338,
         'OpTraceRayMotionNV' : 5339,
+        'OpRayQueryGetIntersectionTriangleVertexPositionsKHR' : 5340,
         'OpTypeAccelerationStructureKHR' : 5341,
         'OpTypeAccelerationStructureNV' : 5341,
         'OpExecuteCallableNV' : 5344,
@@ -1827,6 +2048,9 @@
         'OpTypeStructContinuedINTEL' : 6090,
         'OpConstantCompositeContinuedINTEL' : 6091,
         'OpSpecConstantCompositeContinuedINTEL' : 6092,
+        'OpCompositeConstructContinuedINTEL' : 6096,
+        'OpConvertFToBF16INTEL' : 6116,
+        'OpConvertBF16ToFINTEL' : 6117,
         'OpControlBarrierArriveINTEL' : 6142,
         'OpControlBarrierWaitINTEL' : 6143,
         'OpGroupIMulKHR' : 6401,
@@ -1837,6 +2061,8 @@
         'OpGroupLogicalAndKHR' : 6406,
         'OpGroupLogicalOrKHR' : 6407,
         'OpGroupLogicalXorKHR' : 6408,
+        'OpMaskedGatherINTEL' : 6428,
+        'OpMaskedScatterINTEL' : 6429,
     },
 
 }
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 0ef3768..7df78cc 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -1,5 +1,5 @@
 /+
- + Copyright (c) 2014-2020 The Khronos Group Inc.
+ + Copyright (c) 2014-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"),
@@ -68,6 +68,11 @@
     HLSL = 5,
     CPP_for_OpenCL = 6,
     SYCL = 7,
+    HERO_C = 8,
+    NZSL = 9,
+    WGSL = 10,
+    Slang = 11,
+    Zig = 12,
 }
 
 enum ExecutionModel : uint
@@ -155,6 +160,9 @@
     SubgroupsPerWorkgroupId = 37,
     LocalSizeId = 38,
     LocalSizeHintId = 39,
+    NonCoherentColorAttachmentReadEXT = 4169,
+    NonCoherentDepthAttachmentReadEXT = 4170,
+    NonCoherentStencilAttachmentReadEXT = 4171,
     SubgroupUniformControlFlowKHR = 4421,
     PostDepthCoverage = 4446,
     DenormPreserve = 4459,
@@ -164,12 +172,19 @@
     RoundingModeRTZ = 4463,
     EarlyAndLateFragmentTestsAMD = 5017,
     StencilRefReplacingEXT = 5027,
+    CoalescingAMDX = 5069,
+    MaxNodeRecursionAMDX = 5071,
+    StaticNumWorkgroupsAMDX = 5072,
+    ShaderIndexAMDX = 5073,
+    MaxNumWorkgroupsAMDX = 5077,
     StencilRefUnchangedFrontAMD = 5079,
     StencilRefGreaterFrontAMD = 5080,
     StencilRefLessFrontAMD = 5081,
     StencilRefUnchangedBackAMD = 5082,
     StencilRefGreaterBackAMD = 5083,
     StencilRefLessBackAMD = 5084,
+    QuadDerivativesKHR = 5088,
+    RequireFullQuadsKHR = 5089,
     OutputLinesEXT = 5269,
     OutputLinesNV = 5269,
     OutputPrimitivesEXT = 5270,
@@ -194,6 +209,10 @@
     NoGlobalOffsetINTEL = 5895,
     NumSIMDWorkitemsINTEL = 5896,
     SchedulerTargetFmaxMhzINTEL = 5903,
+    MaximallyReconvergesKHR = 6023,
+    FPFastMathDefault = 6028,
+    StreamingInterfaceINTEL = 6154,
+    RegisterMapInterfaceINTEL = 6160,
     NamedBarrierCountINTEL = 6417,
 }
 
@@ -212,6 +231,9 @@
     AtomicCounter = 10,
     Image = 11,
     StorageBuffer = 12,
+    TileImageEXT = 4172,
+    NodePayloadAMDX = 5068,
+    NodeOutputPayloadAMDX = 5076,
     CallableDataKHR = 5328,
     CallableDataNV = 5328,
     IncomingCallableDataKHR = 5329,
@@ -226,6 +248,7 @@
     ShaderRecordBufferNV = 5343,
     PhysicalStorageBuffer = 5349,
     PhysicalStorageBufferEXT = 5349,
+    HitObjectAttributeNV = 5385,
     TaskPayloadWorkgroupEXT = 5402,
     CodeSectionINTEL = 5605,
     DeviceOnlyINTEL = 5936,
@@ -241,6 +264,7 @@
     Rect = 4,
     Buffer = 5,
     SubpassData = 6,
+    TileImageDataEXT = 4173,
 }
 
 enum SamplerAddressingMode : uint
@@ -347,6 +371,8 @@
     Float = 14,
     UnormInt24 = 15,
     UnormInt101010_2 = 16,
+    UnsignedIntRaw10EXT = 19,
+    UnsignedIntRaw12EXT = 20,
 }
 
 enum ImageOperandsShift : uint
@@ -405,8 +431,11 @@
     NSZ = 2,
     AllowRecip = 3,
     Fast = 4,
+    AllowContract = 16,
     AllowContractFastINTEL = 16,
+    AllowReassoc = 17,
     AllowReassocINTEL = 17,
+    AllowTransform = 18,
 }
 
 enum FPFastMathModeMask : uint
@@ -417,8 +446,11 @@
     NSZ = 0x00000004,
     AllowRecip = 0x00000008,
     Fast = 0x00000010,
+    AllowContract = 0x00010000,
     AllowContractFastINTEL = 0x00010000,
+    AllowReassoc = 0x00020000,
     AllowReassocINTEL = 0x00020000,
+    AllowTransform = 0x00040000,
 }
 
 enum FPRoundingMode : uint
@@ -453,6 +485,7 @@
     NoCapture = 5,
     NoWrite = 6,
     NoReadWrite = 7,
+    RuntimeAlignedINTEL = 5940,
 }
 
 enum Decoration : uint
@@ -506,7 +539,13 @@
     MaxByteOffsetId = 47,
     NoSignedWrap = 4469,
     NoUnsignedWrap = 4470,
+    WeightTextureQCOM = 4487,
+    BlockMatchTextureQCOM = 4488,
     ExplicitInterpAMD = 4999,
+    NodeSharesPayloadLimitsWithAMDX = 5019,
+    NodeMaxPayloadsAMDX = 5020,
+    TrackFinishWritingAMDX = 5078,
+    PayloadNodeNameAMDX = 5091,
     OverrideCoverageNV = 5248,
     PassthroughNV = 5250,
     ViewportRelativeNV = 5252,
@@ -523,6 +562,7 @@
     RestrictPointerEXT = 5355,
     AliasedPointer = 5356,
     AliasedPointerEXT = 5356,
+    HitObjectShaderRecordBufferNV = 5386,
     BindlessSamplerNV = 5398,
     BindlessImageNV = 5399,
     BoundSamplerNV = 5400,
@@ -555,20 +595,45 @@
     MergeINTEL = 5834,
     BankBitsINTEL = 5835,
     ForcePow2DepthINTEL = 5836,
+    StridesizeINTEL = 5883,
+    WordsizeINTEL = 5884,
+    TrueDualPortINTEL = 5885,
     BurstCoalesceINTEL = 5899,
     CacheSizeINTEL = 5900,
     DontStaticallyCoalesceINTEL = 5901,
     PrefetchINTEL = 5902,
     StallEnableINTEL = 5905,
     FuseLoopsInFunctionINTEL = 5907,
+    MathOpDSPModeINTEL = 5909,
     AliasScopeINTEL = 5914,
     NoAliasINTEL = 5915,
+    InitiationIntervalINTEL = 5917,
+    MaxConcurrencyINTEL = 5918,
+    PipelineEnableINTEL = 5919,
     BufferLocationINTEL = 5921,
     IOPipeStorageINTEL = 5944,
     FunctionFloatingPointModeINTEL = 6080,
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
     MediaBlockIOINTEL = 6140,
+    StallFreeINTEL = 6151,
+    FPMaxErrorDecorationINTEL = 6170,
+    LatencyControlLabelINTEL = 6172,
+    LatencyControlConstraintINTEL = 6173,
+    ConduitKernelArgumentINTEL = 6175,
+    RegisterMapKernelArgumentINTEL = 6176,
+    MMHostInterfaceAddressWidthINTEL = 6177,
+    MMHostInterfaceDataWidthINTEL = 6178,
+    MMHostInterfaceLatencyINTEL = 6179,
+    MMHostInterfaceReadWriteModeINTEL = 6180,
+    MMHostInterfaceMaxBurstINTEL = 6181,
+    MMHostInterfaceWaitRequestINTEL = 6182,
+    StableKernelArgumentINTEL = 6183,
+    HostAccessINTEL = 6188,
+    InitModeINTEL = 6190,
+    ImplementInRegisterMapINTEL = 6191,
+    CacheControlLoadINTEL = 6442,
+    CacheControlStoreINTEL = 6443,
 }
 
 enum BuiltIn : uint
@@ -614,6 +679,11 @@
     SubgroupLocalInvocationId = 41,
     VertexIndex = 42,
     InstanceIndex = 43,
+    CoreIDARM = 4160,
+    CoreCountARM = 4161,
+    CoreMaxIDARM = 4162,
+    WarpIDARM = 4163,
+    WarpMaxIDARM = 4164,
     SubgroupEqMask = 4416,
     SubgroupEqMaskKHR = 4416,
     SubgroupGeMask = 4417,
@@ -639,6 +709,8 @@
     BaryCoordSmoothSampleAMD = 4997,
     BaryCoordPullModelAMD = 4998,
     FragStencilRefEXT = 5014,
+    CoalescedInputCountAMDX = 5021,
+    ShaderIndexAMDX = 5073,
     ViewportMaskNV = 5253,
     SecondaryPositionNV = 5257,
     SecondaryViewportMaskNV = 5258,
@@ -691,6 +763,9 @@
     HitKindKHR = 5333,
     HitKindNV = 5333,
     CurrentRayTimeNV = 5334,
+    HitTriangleVertexPositionsKHR = 5335,
+    HitMicroTriangleVertexPositionsNV = 5337,
+    HitMicroTriangleVertexBarycentricsNV = 5344,
     IncomingRayFlagsKHR = 5351,
     IncomingRayFlagsNV = 5351,
     RayGeometryIndexKHR = 5352,
@@ -698,6 +773,8 @@
     SMCountNV = 5375,
     WarpIDNV = 5376,
     SMIDNV = 5377,
+    HitKindFrontFacingMicroTriangleNV = 5405,
+    HitKindBackFacingMicroTriangleNV = 5406,
     CullMaskKHR = 6021,
 }
 
@@ -733,6 +810,8 @@
     MaxInterleavingINTEL = 21,
     SpeculatedIterationsINTEL = 22,
     NoFusionINTEL = 23,
+    LoopCountINTEL = 24,
+    MaxReinvocationDelayINTEL = 25,
 }
 
 enum LoopControlMask : uint
@@ -755,6 +834,8 @@
     MaxInterleavingINTEL = 0x00200000,
     SpeculatedIterationsINTEL = 0x00400000,
     NoFusionINTEL = 0x00800000,
+    LoopCountINTEL = 0x01000000,
+    MaxReinvocationDelayINTEL = 0x02000000,
 }
 
 enum FunctionControlShift : uint
@@ -963,6 +1044,10 @@
     ShaderLayer = 69,
     ShaderViewportIndex = 70,
     UniformDecoration = 71,
+    CoreBuiltinsARM = 4165,
+    TileImageColorReadAccessEXT = 4166,
+    TileImageDepthReadAccessEXT = 4167,
+    TileImageStencilReadAccessEXT = 4168,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -994,6 +1079,9 @@
     RayQueryKHR = 4472,
     RayTraversalPrimitiveCullingKHR = 4478,
     RayTracingKHR = 4479,
+    TextureSampleWeightedQCOM = 4484,
+    TextureBoxFilterQCOM = 4485,
+    TextureBlockMatchQCOM = 4486,
     Float16ImageAMD = 5008,
     ImageGatherBiasLodAMD = 5009,
     FragmentMaskAMD = 5010,
@@ -1001,6 +1089,8 @@
     ImageReadWriteLodAMD = 5015,
     Int64ImageEXT = 5016,
     ShaderClockKHR = 5055,
+    ShaderEnqueueAMDX = 5067,
+    QuadControlKHR = 5087,
     SampleMaskOverrideCoverageNV = 5249,
     GeometryShaderPassthroughNV = 5251,
     ShaderViewportIndexLayerEXT = 5254,
@@ -1042,6 +1132,7 @@
     UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     StorageTexelBufferArrayNonUniformIndexing = 5312,
     StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    RayTracingPositionFetchKHR = 5336,
     RayTracingNV = 5340,
     RayTracingMotionBlurNV = 5341,
     VulkanMemoryModel = 5345,
@@ -1059,7 +1150,12 @@
     FragmentShaderPixelInterlockEXT = 5378,
     DemoteToHelperInvocation = 5379,
     DemoteToHelperInvocationEXT = 5379,
+    DisplacementMicromapNV = 5380,
+    RayTracingOpacityMicromapEXT = 5381,
+    ShaderInvocationReorderNV = 5383,
     BindlessTextureNV = 5390,
+    RayQueryPositionFetchKHR = 5391,
+    RayTracingDisplacementMicromapNV = 5409,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1092,10 +1188,13 @@
     FPGAMemoryAccessesINTEL = 5898,
     FPGAClusterAttributesINTEL = 5904,
     LoopFuseINTEL = 5906,
+    FPGADSPControlINTEL = 5908,
     MemoryAccessAliasingINTEL = 5910,
+    FPGAInvocationPipeliningAttributesINTEL = 5916,
     FPGABufferLocationINTEL = 5920,
     ArbitraryPrecisionFixedPointINTEL = 5922,
     USMStorageClassesINTEL = 5935,
+    RuntimeAlignedAttributeINTEL = 5939,
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
@@ -1108,16 +1207,28 @@
     DotProduct = 6019,
     DotProductKHR = 6019,
     RayCullMaskKHR = 6020,
+    CooperativeMatrixKHR = 6022,
     BitInstructions = 6025,
     GroupNonUniformRotateKHR = 6026,
+    FloatControls2 = 6029,
     AtomicFloat32AddEXT = 6033,
     AtomicFloat64AddEXT = 6034,
-    LongConstantCompositeINTEL = 6089,
+    LongCompositesINTEL = 6089,
     OptNoneINTEL = 6094,
     AtomicFloat16AddEXT = 6095,
     DebugInfoModuleINTEL = 6114,
+    BFloat16ConversionINTEL = 6115,
     SplitBarrierINTEL = 6141,
+    FPGAClusterAttributesV2INTEL = 6150,
+    FPGAKernelAttributesv2INTEL = 6161,
+    FPMaxErrorINTEL = 6169,
+    FPGALatencyControlINTEL = 6171,
+    FPGAArgumentInterfacesINTEL = 6174,
+    GlobalVariableHostAccessINTEL = 6187,
+    GlobalVariableFPGADecorationsINTEL = 6189,
     GroupUniformArithmeticKHR = 6400,
+    MaskedGatherScatterINTEL = 6427,
+    CacheControlsINTEL = 6441,
 }
 
 enum RayFlagsShift : uint
@@ -1132,6 +1243,7 @@
     CullNoOpaqueKHR = 7,
     SkipTrianglesKHR = 8,
     SkipAABBsKHR = 9,
+    ForceOpacityMicromap2StateEXT = 10,
 }
 
 enum RayFlagsMask : uint
@@ -1147,6 +1259,7 @@
     CullNoOpaqueKHR = 0x00000080,
     SkipTrianglesKHR = 0x00000100,
     SkipAABBsKHR = 0x00000200,
+    ForceOpacityMicromap2StateEXT = 0x00000400,
 }
 
 enum RayQueryIntersection : uint
@@ -1223,6 +1336,69 @@
     PackedVectorFormat4x8BitKHR = 0,
 }
 
+enum CooperativeMatrixOperandsShift : uint
+{
+    MatrixASignedComponentsKHR = 0,
+    MatrixBSignedComponentsKHR = 1,
+    MatrixCSignedComponentsKHR = 2,
+    MatrixResultSignedComponentsKHR = 3,
+    SaturatingAccumulationKHR = 4,
+}
+
+enum CooperativeMatrixOperandsMask : uint
+{
+    MaskNone = 0,
+    MatrixASignedComponentsKHR = 0x00000001,
+    MatrixBSignedComponentsKHR = 0x00000002,
+    MatrixCSignedComponentsKHR = 0x00000004,
+    MatrixResultSignedComponentsKHR = 0x00000008,
+    SaturatingAccumulationKHR = 0x00000010,
+}
+
+enum CooperativeMatrixLayout : uint
+{
+    RowMajorKHR = 0,
+    ColumnMajorKHR = 1,
+}
+
+enum CooperativeMatrixUse : uint
+{
+    MatrixAKHR = 0,
+    MatrixBKHR = 1,
+    MatrixAccumulatorKHR = 2,
+}
+
+enum InitializationModeQualifier : uint
+{
+    InitOnDeviceReprogramINTEL = 0,
+    InitOnDeviceResetINTEL = 1,
+}
+
+enum HostAccessQualifier : uint
+{
+    NoneINTEL = 0,
+    ReadINTEL = 1,
+    WriteINTEL = 2,
+    ReadWriteINTEL = 3,
+}
+
+enum LoadCacheControl : uint
+{
+    UncachedINTEL = 0,
+    CachedINTEL = 1,
+    StreamingINTEL = 2,
+    InvalidateAfterReadINTEL = 3,
+    ConstCachedINTEL = 4,
+}
+
+enum StoreCacheControl : uint
+{
+    UncachedINTEL = 0,
+    WriteThroughINTEL = 1,
+    WriteBackINTEL = 2,
+    StreamingINTEL = 3,
+}
+
 enum Op : uint
 {
     OpNop = 0,
@@ -1569,6 +1745,9 @@
     OpPtrEqual = 401,
     OpPtrNotEqual = 402,
     OpPtrDiff = 403,
+    OpColorAttachmentReadEXT = 4160,
+    OpDepthAttachmentReadEXT = 4161,
+    OpStencilAttachmentReadEXT = 4162,
     OpTerminateInvocation = 4416,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
@@ -1594,6 +1773,11 @@
     OpUDotAccSatKHR = 4454,
     OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
+    OpTypeCooperativeMatrixKHR = 4456,
+    OpCooperativeMatrixLoadKHR = 4457,
+    OpCooperativeMatrixStoreKHR = 4458,
+    OpCooperativeMatrixMulAddKHR = 4459,
+    OpCooperativeMatrixLengthKHR = 4460,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
     OpRayQueryTerminateKHR = 4474,
@@ -1601,6 +1785,10 @@
     OpRayQueryConfirmIntersectionKHR = 4476,
     OpRayQueryProceedKHR = 4477,
     OpRayQueryGetIntersectionTypeKHR = 4479,
+    OpImageSampleWeightedQCOM = 4480,
+    OpImageBoxFilterQCOM = 4481,
+    OpImageBlockMatchSSDQCOM = 4482,
+    OpImageBlockMatchSADQCOM = 4483,
     OpGroupIAddNonUniformAMD = 5000,
     OpGroupFAddNonUniformAMD = 5001,
     OpGroupFMinNonUniformAMD = 5002,
@@ -1612,11 +1800,51 @@
     OpFragmentMaskFetchAMD = 5011,
     OpFragmentFetchAMD = 5012,
     OpReadClockKHR = 5056,
+    OpFinalizeNodePayloadsAMDX = 5075,
+    OpFinishWritingNodePayloadAMDX = 5078,
+    OpInitializeNodePayloadsAMDX = 5090,
+    OpGroupNonUniformQuadAllKHR = 5110,
+    OpGroupNonUniformQuadAnyKHR = 5111,
+    OpHitObjectRecordHitMotionNV = 5249,
+    OpHitObjectRecordHitWithIndexMotionNV = 5250,
+    OpHitObjectRecordMissMotionNV = 5251,
+    OpHitObjectGetWorldToObjectNV = 5252,
+    OpHitObjectGetObjectToWorldNV = 5253,
+    OpHitObjectGetObjectRayDirectionNV = 5254,
+    OpHitObjectGetObjectRayOriginNV = 5255,
+    OpHitObjectTraceRayMotionNV = 5256,
+    OpHitObjectGetShaderRecordBufferHandleNV = 5257,
+    OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
+    OpHitObjectRecordEmptyNV = 5259,
+    OpHitObjectTraceRayNV = 5260,
+    OpHitObjectRecordHitNV = 5261,
+    OpHitObjectRecordHitWithIndexNV = 5262,
+    OpHitObjectRecordMissNV = 5263,
+    OpHitObjectExecuteShaderNV = 5264,
+    OpHitObjectGetCurrentTimeNV = 5265,
+    OpHitObjectGetAttributesNV = 5266,
+    OpHitObjectGetHitKindNV = 5267,
+    OpHitObjectGetPrimitiveIndexNV = 5268,
+    OpHitObjectGetGeometryIndexNV = 5269,
+    OpHitObjectGetInstanceIdNV = 5270,
+    OpHitObjectGetInstanceCustomIndexNV = 5271,
+    OpHitObjectGetWorldRayDirectionNV = 5272,
+    OpHitObjectGetWorldRayOriginNV = 5273,
+    OpHitObjectGetRayTMaxNV = 5274,
+    OpHitObjectGetRayTMinNV = 5275,
+    OpHitObjectIsEmptyNV = 5276,
+    OpHitObjectIsHitNV = 5277,
+    OpHitObjectIsMissNV = 5278,
+    OpReorderThreadWithHitObjectNV = 5279,
+    OpReorderThreadWithHintNV = 5280,
+    OpTypeHitObjectNV = 5281,
     OpImageSampleFootprintNV = 5283,
     OpEmitMeshTasksEXT = 5294,
     OpSetMeshOutputsEXT = 5295,
     OpGroupNonUniformPartitionNV = 5296,
     OpWritePackedPrimitiveIndices4x8NV = 5299,
+    OpFetchMicroTriangleVertexPositionNV = 5300,
+    OpFetchMicroTriangleVertexBarycentricNV = 5301,
     OpReportIntersectionKHR = 5334,
     OpReportIntersectionNV = 5334,
     OpIgnoreIntersectionNV = 5335,
@@ -1624,6 +1852,7 @@
     OpTraceNV = 5337,
     OpTraceMotionNV = 5338,
     OpTraceRayMotionNV = 5339,
+    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -1885,6 +2114,9 @@
     OpTypeStructContinuedINTEL = 6090,
     OpConstantCompositeContinuedINTEL = 6091,
     OpSpecConstantCompositeContinuedINTEL = 6092,
+    OpCompositeConstructContinuedINTEL = 6096,
+    OpConvertFToBF16INTEL = 6116,
+    OpConvertBF16ToFINTEL = 6117,
     OpControlBarrierArriveINTEL = 6142,
     OpControlBarrierWaitINTEL = 6143,
     OpGroupIMulKHR = 6401,
@@ -1895,6 +2127,8 @@
     OpGroupLogicalAndKHR = 6406,
     OpGroupLogicalOrKHR = 6407,
     OpGroupLogicalXorKHR = 6408,
+    OpMaskedGatherINTEL = 6428,
+    OpMaskedScatterINTEL = 6429,
 }
 
 
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644
index 0000000..956cbd6
--- /dev/null
+++ b/tests/CMakeLists.txt
@@ -0,0 +1,47 @@
+# 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.
+#
+# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+# KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+# SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+#    https://www.khronos.org/registry/
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+add_library(simple_test STATIC)
+
+target_sources(simple_test PRIVATE
+    example.cpp
+)
+
+target_link_libraries(simple_test PRIVATE
+    SPIRV-Headers::SPIRV-Headers
+)
+
+if (NOT TARGET SPIRV-Headers)
+    message(FATAL_ERROR "SPIRV-Headers target not defined!")
+endif()
+
+if (NOT PROJECT_NAME STREQUAL "SPIRV-Headers")
+    message(FATAL_ERROR "PROJECT_NAME changed!") # Needed for backcompat with SPIRV-Tools.
+endif()
+
+if (NOT DEFINED SPIRV-Headers_SOURCE_DIR)
+    message(FATAL_ERROR "SPIRV-Headers_SOURCE_DIR not defined!") # Needed for backcompat with SPIRV-Tools.
+endif()
diff --git a/example/example.cpp b/tests/example.cpp
similarity index 96%
rename from example/example.cpp
rename to tests/example.cpp
index d79b62f..1920e80 100644
--- a/example/example.cpp
+++ b/tests/example.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2016 The Khronos Group Inc.
+// Copyright (c) 2016-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
diff --git a/tests/find_package/CMakeLists.txt b/tests/find_package/CMakeLists.txt
new file mode 100644
index 0000000..4735db5
--- /dev/null
+++ b/tests/find_package/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.0)
+
+project(TEST_FIND_PACKAGE LANGUAGES CXX)
+
+add_library(find_package_example STATIC
+    ${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp
+)
+
+find_package(SPIRV-Headers REQUIRED CONFIG)
+
+if (NOT TARGET SPIRV-Headers::SPIRV-Headers)
+    message(FATAL_ERROR "SPIRV-Headers::SPIRV-Headers target not defined")
+endif()
+
+target_link_libraries(find_package_example PRIVATE
+    SPIRV-Headers::SPIRV-Headers
+)
+
+if (NOT DEFINED SPIRV-Headers_VERSION)
+    message(FATAL_ERROR "SPIRV-Headers_VERSION not provided!")
+endif()
+
+message(STATUS "SPIRV-Headers_VERSION = ${SPIRV-Headers_VERSION}")
diff --git a/tests/pkg_config/CMakeLists.txt b/tests/pkg_config/CMakeLists.txt
new file mode 100644
index 0000000..b2897e2
--- /dev/null
+++ b/tests/pkg_config/CMakeLists.txt
@@ -0,0 +1,23 @@
+cmake_minimum_required(VERSION 3.14)
+
+project(TEST_PKGCONFIG LANGUAGES CXX)
+
+add_library(pkgconfig_example STATIC)
+
+target_sources(pkgconfig_example PRIVATE
+    ${CMAKE_CURRENT_SOURCE_DIR}/../example.cpp
+)
+
+find_package(PkgConfig REQUIRED)
+
+pkg_check_modules(SPIRV_HEADERS REQUIRED IMPORTED_TARGET SPIRV-Headers)
+
+target_link_libraries(pkgconfig_example PRIVATE
+    PkgConfig::SPIRV_HEADERS
+)
+
+if (NOT DEFINED SPIRV_HEADERS_VERSION)
+    message(FATAL_ERROR "SPIRV_HEADERS_VERSION not defined!")
+endif()
+
+message(STATUS "PkgConfig::SPIRV_HEADERS version = ${SPIRV_HEADERS_VERSION}")
diff --git a/tools/buildHeaders/bin/generate_language_headers.py b/tools/buildHeaders/bin/generate_language_headers.py
index c56780c..ccd843b 100755
--- a/tools/buildHeaders/bin/generate_language_headers.py
+++ b/tools/buildHeaders/bin/generate_language_headers.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env python3
-# Copyright (c) 2017-2020 Google LLC
+# Copyright (c) 2017-2024 Google LLC
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and/or associated documentation files (the
@@ -32,7 +32,7 @@
 import os.path
 import re
 
-DEFAULT_COPYRIGHT="""Copyright (c) 2020 The Khronos Group Inc.
+DEFAULT_COPYRIGHT="""Copyright (c) 2020-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
diff --git a/tools/buildHeaders/bin/makeExtinstHeaders.py b/tools/buildHeaders/bin/makeExtinstHeaders.py
index 9359747..96ce008 100755
--- a/tools/buildHeaders/bin/makeExtinstHeaders.py
+++ b/tools/buildHeaders/bin/makeExtinstHeaders.py
@@ -26,3 +26,5 @@
 mk_extinst('AMD_shader_trinary_minmax', 'extinst.spv-amd-shader-trinary-minmax.grammar.json')
 mk_extinst('NonSemanticDebugPrintf', 'extinst.nonsemantic.debugprintf.grammar.json')
 mk_extinst('NonSemanticClspvReflection', 'extinst.nonsemantic.clspvreflection.grammar.json')
+mk_extinst('NonSemanticDebugBreak', 'extinst.nonsemantic.debugbreak.grammar.json')
+mk_extinst('NonSemanticVkspReflection', 'extinst.nonsemantic.vkspreflection.grammar.json')
diff --git a/tools/buildHeaders/bin/makeHeaders b/tools/buildHeaders/bin/makeHeaders
index 7b4959e..853c467 100755
--- a/tools/buildHeaders/bin/makeHeaders
+++ b/tools/buildHeaders/bin/makeHeaders
@@ -1,5 +1,7 @@
 #!/usr/bin/env bash
 
+set -ex
+
 python3 bin/makeExtinstHeaders.py
 
 cd ../../include/spirv/unified1
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index f9e06fb..d125a79 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -169,29 +169,30 @@
     }
 
     const std::string TPrinter::DocCopyright =
-        "Copyright (c) 2014-2020 The Khronos Group Inc.\n"
-        "\n"
-        "Permission is hereby granted, free of charge, to any person obtaining a copy\n"
-        "of this software and/or associated documentation files (the \"Materials\"),\n"
-        "to deal in the Materials without restriction, including without limitation\n"
-        "the rights to use, copy, modify, merge, publish, distribute, sublicense,\n"
-        "and/or sell copies of the Materials, and to permit persons to whom the\n"
-        "Materials are furnished to do so, subject to the following conditions:\n"
-        "\n"
-        "The above copyright notice and this permission notice shall be included in\n"
-        "all copies or substantial portions of the Materials.\n"
-        "\n"
-        "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\n"
-        "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\n"
-        "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ \n"
-        "\n"
-        "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n"
-        "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n"
-        "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n"
-        "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n"
-        "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n"
-        "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\n"
-        "IN THE MATERIALS.\n";
+R"(Copyright (c) 2014-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.
+
+MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+IN THE MATERIALS.
+)";
 
     const std::string TPrinter::DocComment1 =
         "This header is automatically generated by the same tool that creates\n"
@@ -574,17 +575,11 @@
 
     // C++ printer
     class TPrinterCPP : public TPrinterCBase {
-    private:
-        void printPrologue(std::ostream& out) const override {
-            TPrinterCBase::printPrologue(out);
-            out << "namespace spv {\n\n";
-        }
-
-        void printEpilogue(std::ostream& out) const override {
+    protected:
+        void printMaskOperators(std::ostream& out, const std::string& specifiers) const {
             const Json::Value& enums = spvRoot["spv"]["enum"];
 
-            // Create overloaded operator| for mask types
-            out << "// Overload operator| for mask bit combining\n\n";
+            out << "// Overload bitwise operators for mask bit combining\n\n";
 
             for (auto opClass = enums.begin(); opClass != enums.end(); ++opClass) {
                 const bool isMask   = (*opClass)["Type"].asString() == "Bit";
@@ -593,11 +588,29 @@
                 if (isMask) {
                     const auto typeName = opName + styleStr(enumMask);
 
-                    out << "inline " + typeName + " operator|(" + typeName + " a, " + typeName + " b) { return " +
-                        typeName + "(unsigned(a) | unsigned(b)); }\n";
+                    // Overload operator|
+                    out << specifiers << " " << typeName << " operator|(" << typeName << " a, " << typeName << " b) { return " <<
+                        typeName << "(unsigned(a) | unsigned(b)); }\n";
+                    // Overload operator&
+                    out << specifiers << " " << typeName << " operator&(" << typeName << " a, " << typeName << " b) { return " <<
+                        typeName << "(unsigned(a) & unsigned(b)); }\n";
+                    // Overload operator^
+                    out << specifiers << " " << typeName << " operator^(" << typeName << " a, " << typeName << " b) { return " <<
+                        typeName << "(unsigned(a) ^ unsigned(b)); }\n";
+                    // Overload operator~
+                    out << specifiers << " " << typeName << " operator~(" << typeName << " a) { return " <<
+                        typeName << "(~unsigned(a)); }\n";
                 }
             }
+        }
+    private:
+        void printPrologue(std::ostream& out) const override {
+            TPrinterCBase::printPrologue(out);
+            out << "namespace spv {\n\n";
+        }
 
+        void printEpilogue(std::ostream& out) const override {
+            printMaskOperators(out, "inline");
             out << "\n}  // end namespace spv\n\n";
             out << "#endif  // #ifndef spirv_" << headerGuardSuffix() << std::endl;
         }
@@ -633,6 +646,11 @@
     // C++11 printer (uses enum classes)
     class TPrinterCPP11 final : public TPrinterCPP {
     private:
+        void printEpilogue(std::ostream& out) const override {
+            printMaskOperators(out, "constexpr");
+            out << "\n}  // end namespace spv\n\n";
+            out << "#endif  // #ifndef spirv_" << headerGuardSuffix() << std::endl;
+        }
         std::string enumBeg(const std::string& s, enumStyle_t style) const override {
             return std::string("enum class ") + s + styleStr(style) + " : unsigned {\n";
         }
diff --git a/tools/buildHeaders/header.h b/tools/buildHeaders/header.h
index 1dd6e67..6854f80 100644
--- a/tools/buildHeaders/header.h
+++ b/tools/buildHeaders/header.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
diff --git a/tools/buildHeaders/jsonToSpirv.cpp b/tools/buildHeaders/jsonToSpirv.cpp
index 67b5bce..6eed13c 100644
--- a/tools/buildHeaders/jsonToSpirv.cpp
+++ b/tools/buildHeaders/jsonToSpirv.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -36,8 +36,185 @@
 
 #include "jsonToSpirv.h"
 
+namespace {
+// Returns true if the given string is a valid SPIR-V version.
+bool validSpirvVersionString(const std::string s) {
+  return
+  s == "1.0" ||
+  s == "1.1" ||
+  s == "1.2" ||
+  s == "1.3" ||
+  s == "1.4" ||
+  s == "1.5" ||
+  s == "1.6";
+}
+
+// Returns true if the given string is a valid version
+// specifier in the grammar file.
+bool validSpirvVersionStringSpecifier(const std::string s) {
+  return s == "None" || validSpirvVersionString(s);
+}
+}  // anonymous namespace
+
 namespace spv {
 
+bool IsLegacyDoublyEnabledInstruction(const std::string& instruction) {
+  static std::unordered_set<std::string> allowed = {
+      "OpSubgroupBallotKHR",
+      "OpSubgroupFirstInvocationKHR",
+      "OpSubgroupAllKHR",
+      "OpSubgroupAnyKHR",
+      "OpSubgroupAllEqualKHR",
+      "OpSubgroupReadInvocationKHR",
+      "OpTraceRayKHR",
+      "OpExecuteCallableKHR",
+      "OpConvertUToAccelerationStructureKHR",
+      "OpIgnoreIntersectionKHR",
+      "OpTerminateRayKHR",
+      "OpTypeRayQueryKHR",
+      "OpRayQueryInitializeKHR",
+      "OpRayQueryTerminateKHR",
+      "OpRayQueryGenerateIntersectionKHR",
+      "OpRayQueryConfirmIntersectionKHR",
+      "OpRayQueryProceedKHR",
+      "OpRayQueryGetIntersectionTypeKHR",
+      "OpGroupIAddNonUniformAMD",
+      "OpGroupFAddNonUniformAMD",
+      "OpGroupFMinNonUniformAMD",
+      "OpGroupUMinNonUniformAMD",
+      "OpGroupSMinNonUniformAMD",
+      "OpGroupFMaxNonUniformAMD",
+      "OpGroupUMaxNonUniformAMD",
+      "OpGroupSMaxNonUniformAMD",
+      "OpFragmentMaskFetchAMD",
+      "OpFragmentFetchAMD",
+      "OpImageSampleFootprintNV",
+      "OpGroupNonUniformPartitionNV",
+      "OpWritePackedPrimitiveIndices4x8NV",
+      "OpReportIntersectionNV",
+      "OpReportIntersectionKHR",
+      "OpIgnoreIntersectionNV",
+      "OpTerminateRayNV",
+      "OpTraceNV",
+      "OpTraceMotionNV",
+      "OpTraceRayMotionNV",
+      "OpTypeAccelerationStructureNV",
+      "OpTypeAccelerationStructureKHR",
+      "OpExecuteCallableNV",
+      "OpTypeCooperativeMatrixNV",
+      "OpCooperativeMatrixLoadNV",
+      "OpCooperativeMatrixStoreNV",
+      "OpCooperativeMatrixMulAddNV",
+      "OpCooperativeMatrixLengthNV",
+      "OpBeginInvocationInterlockEXT",
+      "OpEndInvocationInterlockEXT",
+      "OpIsHelperInvocationEXT",
+      "OpConstantFunctionPointerINTEL",
+      "OpFunctionPointerCallINTEL",
+      "OpAssumeTrueKHR",
+      "OpExpectKHR",
+      "OpLoopControlINTEL",
+      "OpAliasDomainDeclINTEL",
+      "OpAliasScopeDeclINTEL",
+      "OpAliasScopeListDeclINTEL",
+      "OpReadPipeBlockingINTEL",
+      "OpWritePipeBlockingINTEL",
+      "OpFPGARegINTEL",
+      "OpRayQueryGetRayTMinKHR",
+      "OpRayQueryGetRayFlagsKHR",
+      "OpRayQueryGetIntersectionTKHR",
+      "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
+      "OpRayQueryGetIntersectionInstanceIdKHR",
+      "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
+      "OpRayQueryGetIntersectionGeometryIndexKHR",
+      "OpRayQueryGetIntersectionPrimitiveIndexKHR",
+      "OpRayQueryGetIntersectionBarycentricsKHR",
+      "OpRayQueryGetIntersectionFrontFaceKHR",
+      "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
+      "OpRayQueryGetIntersectionObjectRayDirectionKHR",
+      "OpRayQueryGetIntersectionObjectRayOriginKHR",
+      "OpRayQueryGetWorldRayDirectionKHR",
+      "OpRayQueryGetWorldRayOriginKHR",
+      "OpRayQueryGetIntersectionObjectToWorldKHR",
+      "OpRayQueryGetIntersectionWorldToObjectKHR",
+      "OpAtomicFAddEXT",
+  };
+  return allowed.count(instruction) != 0;
+}
+
+bool EnumValue::IsValid(OperandClass oc, const std::string& context) const
+{
+  bool result = true;
+  if (firstVersion.empty()) {
+    std::cerr << "Error: " << context << " " << name << " \"version\" must be set, probably to \"None\"" << std::endl;
+    result = false;
+  } else if (!validSpirvVersionStringSpecifier(firstVersion)) {
+    std::cerr << "Error: " << context << " " << name << " \"version\" is invalid: " << firstVersion << std::endl;
+    result = false;
+  }
+  if (!lastVersion.empty() && !validSpirvVersionString(lastVersion)) {
+    std::cerr << "Error: " << context << " " << name << " \"lastVersion\" is invalid: " << lastVersion << std::endl;
+    result = false;
+  }
+
+  // When a feature is introduced by an extension, the firstVersion is set to
+  // "None". There are three cases:
+  // -  A new capability should be guarded/enabled by the extension
+  // -  A new instruction should be:
+  //      - Guarded/enabled by a new capability.
+  //      - Not enabled by *both* a capability and an extension.
+  //        There are many existing instructions that are already like this,
+  //        and we grandparent them as allowed.
+  // -  Other enums fall into two cases:
+  //    1. The enum is part of a new operand kind introduced by the extension.
+  //       In this case we rely on transitivity: The use of the operand occurs
+  //       in a new instruction that itself is guarded; or as the operand of
+  //       another operand that itself is (recursively) guarded.
+  //    2. The enum is a new case in an existing operand kind.  This case
+  //       should be guarded by a capability.  However, we do not check this
+  //       here.  Checking it requires more context than we have here.
+  if (oc == OperandOpcode) {
+    const bool instruction_unusable =
+        (firstVersion == "None") && extensions.empty() && capabilities.empty();
+    if (instruction_unusable) {
+      std::cerr << "Error: " << context << " " << name << " is not usable: "
+                << "its version is set to \"None\", and it is not enabled by a "
+                << "capability or extension. Guard it with a capability."
+                << std::endl;
+      result = false;
+    }
+    // Complain if an instruction is not in any core version and also enabled by
+    // both an extension and a capability.
+    // It's important to check the "not in any core version" case, because,
+    // for example, OpTerminateInvocation is in SPIR-V 1.6 *and* enabled by an
+    // extension, and guarded by the Shader capability.
+    const bool instruction_doubly_enabled = (firstVersion == "None") &&
+                                            !extensions.empty() &&
+                                            !capabilities.empty();
+    if (instruction_doubly_enabled && !IsLegacyDoublyEnabledInstruction(name)) {
+      std::cerr << "Error: " << context << " " << name << " is doubly-enabled: "
+                << "it is enabled by both a capability and an extension. "
+                << "Guard it with a capability only." << std::endl;
+      result = false;
+    }
+  }
+  if (oc == OperandCapability) {
+    // If capability X lists capabilities Y and Z, then Y and Z are *enabled*
+    // when X is enabled. They are not *guards* on X's use.
+    // Only versions and extensions can guard a capability.
+    const bool capability_unusable =
+        (firstVersion == "None") && extensions.empty();
+    if (capability_unusable) {
+      std::cerr << "Error: " << context << " " << name << " is not usable: "
+                << "its version is set to \"None\", and it is not enabled by "
+                << "an extension. Guard it with an extension." << std::endl;
+      result = false;
+    }
+  }
+
+  return result;
+}
+
 // The set of objects that hold all the instruction/operand
 // parameterization information.
 InstructionValues InstructionDesc;
@@ -88,6 +265,13 @@
 EnumValues RayQueryCandidateIntersectionTypeParams;
 EnumValues FragmentShadingRateParams;
 EnumValues PackedVectorFormatParams;
+EnumValues CooperativeMatrixOperandsParams;
+EnumValues CooperativeMatrixLayoutParams;
+EnumValues CooperativeMatrixUseParams;
+EnumValues InitializationModeQualifierParams;
+EnumValues HostAccessQualifierParams;
+EnumValues LoadCacheControlParams;
+EnumValues StoreCacheControlParams;
 
 std::pair<bool, std::string> ReadFile(const std::string& path)
 {
@@ -158,6 +342,8 @@
             type = OperandLiteralNumber;
         } else if (operandKind == "LiteralContextDependentNumber") {
             type = OperandAnySizeLiteralNumber;
+        } else if (operandKind == "LiteralFloat") {
+            type = OperandLiteralNumber;
         } else if (operandKind == "SourceLanguage") {
             type = OperandSource;
         } else if (operandKind == "ExecutionModel") {
@@ -234,6 +420,20 @@
             type = OperandFragmentShadingRate;
         } else if (operandKind == "PackedVectorFormat") {
             type = OperandPackedVectorFormat;
+        } else if (operandKind == "CooperativeMatrixOperands") {
+            type = OperandCooperativeMatrixOperands;
+        } else if (operandKind == "CooperativeMatrixLayout") {
+            type = OperandCooperativeMatrixLayout;
+        } else if (operandKind == "CooperativeMatrixUse") {
+            type = OperandCooperativeMatrixUse;
+        } else if (operandKind == "InitializationModeQualifier") {
+            type = OperandInitializationModeQualifier;
+        } else if (operandKind == "HostAccessQualifier") {
+            type = OperandHostAccessQualifier;
+        } else if (operandKind == "LoadCacheControl") {
+            type = OperandLoadCacheControl;
+        } else if (operandKind == "StoreCacheControl") {
+            type = OperandStoreCacheControl;
         }
 
         if (type == OperandNone) {
@@ -273,6 +473,8 @@
         return;
     initialized = true;
 
+    size_t errorCount = 0;
+
     // Read the JSON grammar file.
     bool fileReadOk = false;
     std::string content;
@@ -326,8 +528,10 @@
     for (const auto& printingClass : printingClasses) {
         if (printingClass["tag"].asString().size() > 0)
             tags.insert(printingClass["tag"].asString()); // just for error checking
-        else
+        else {
             std::cerr << "Error: each instruction_printing_class requires a non-empty \"tag\"" << std::endl;
+            std::exit(1);
+        }
         if (buildingHeaders || printingClass["tag"].asString() != "@exclude") {
             InstructionPrintingClasses.push_back({printingClass["tag"].asString(),
                                                   printingClass["heading"].asString()});
@@ -343,6 +547,7 @@
         if (printingClass.size() == 0) {
             std::cerr << "Error: " << inst["opname"].asString()
                       << " requires a non-empty printing \"class\" tag" << std::endl;
+            std::exit(1);
         }
         if (!buildingHeaders && printingClass == "@exclude")
             continue;
@@ -350,6 +555,7 @@
             std::cerr << "Error: " << inst["opname"].asString()
                       << " requires a \"class\" declared as a \"tag\" in \"instruction printing_class\""
                       << std::endl;
+            std::exit(1);
         }
         const auto opcode = inst["opcode"].asUInt();
         const std::string name = inst["opname"].asString();
@@ -387,12 +593,15 @@
                                 std::move(caps), std::move(version), std::move(lastVersion), std::move(exts),
                                 std::move(operands))),
              printingClass, defTypeId, defResultId);
+        if (!InstructionDesc.back().IsValid(OperandOpcode, "instruction")) {
+          errorCount++;
+        }
     }
 
     // Specific additional context-dependent operands
 
     // Populate dest with EnumValue objects constructed from source.
-    const auto populateEnumValues = [&getCaps,&getExts](EnumValues* dest, const Json::Value& source, bool bitEnum) {
+    const auto populateEnumValues = [&getCaps,&getExts,&errorCount](EnumValues* dest, const Json::Value& source, bool bitEnum) {
         // A lambda for determining the numeric value to be used for a given
         // enumerant in JSON form, and whether that value is a 0 in a bitfield.
         auto getValue = [&bitEnum](const Json::Value& enumerant) {
@@ -451,12 +660,22 @@
         }
     };
 
-    const auto establishOperandClass = [&populateEnumValues](
+    const auto establishOperandClass = [&populateEnumValues,&errorCount](
             const std::string& enumName, spv::OperandClass operandClass,
             spv::EnumValues* enumValues, const Json::Value& operandEnum, const std::string& category) {
         assert(category == "BitEnum" || category == "ValueEnum");
         bool bitEnum = (category == "BitEnum");
+        if (!operandEnum["version"].empty()) {
+          std::cerr << "Error: container for " << enumName << " operand_kind must not have a version field" << std::endl;
+          errorCount++;
+        }
         populateEnumValues(enumValues, operandEnum, bitEnum);
+        const std::string errContext = "enum " + enumName;
+        for (const auto& e: *enumValues) {
+          if (!e.IsValid(operandClass, errContext)) {
+            errorCount++;
+          }
+        }
         OperandClassParams[operandClass].set(enumName, enumValues, bitEnum);
     };
 
@@ -544,8 +763,26 @@
             establishOperandClass(enumName, OperandFragmentShadingRate, &FragmentShadingRateParams, operandEnum, category);
         } else if (enumName == "PackedVectorFormat") {
             establishOperandClass(enumName, OperandPackedVectorFormat, &PackedVectorFormatParams, operandEnum, category);
+        } else if (enumName == "CooperativeMatrixOperands") {
+            establishOperandClass(enumName, OperandCooperativeMatrixOperands, &CooperativeMatrixOperandsParams, operandEnum, category);
+        } else if (enumName == "CooperativeMatrixLayout") {
+            establishOperandClass(enumName, OperandCooperativeMatrixLayout, &CooperativeMatrixLayoutParams, operandEnum, category);
+        } else if (enumName == "CooperativeMatrixUse") {
+            establishOperandClass(enumName, OperandCooperativeMatrixUse, &CooperativeMatrixUseParams, operandEnum, category);
+        } else if (enumName == "InitializationModeQualifier") {
+            establishOperandClass(enumName, OperandInitializationModeQualifier, &InitializationModeQualifierParams, operandEnum, category);
+        } else if (enumName == "HostAccessQualifier") {
+            establishOperandClass(enumName, OperandHostAccessQualifier, &HostAccessQualifierParams, operandEnum, category);
+        } else if (enumName == "LoadCacheControl") {
+            establishOperandClass(enumName, OperandLoadCacheControl, &LoadCacheControlParams, operandEnum, category);
+        } else if (enumName == "StoreCacheControl") {
+            establishOperandClass(enumName, OperandStoreCacheControl, &StoreCacheControlParams, operandEnum, category);
         }
     }
+
+    if (errorCount > 0) {
+      std::exit(1);
+    }
 }
 
 };  // end namespace spv
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index 3be6456..4afbeb7 100644
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2020 The Khronos Group Inc.
+// Copyright (c) 2014-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"),
@@ -96,6 +96,13 @@
     OperandQuantizationModes,
     OperandOverflowModes,
     OperandPackedVectorFormat,
+    OperandCooperativeMatrixOperands,
+    OperandCooperativeMatrixLayout,
+    OperandCooperativeMatrixUse,
+    OperandInitializationModeQualifier,
+    OperandHostAccessQualifier,
+    OperandLoadCacheControl,
+    OperandStoreCacheControl,
 
     OperandOpcode,
 
@@ -184,6 +191,7 @@
 
     iterator begin() { return values.begin(); }
     iterator end() { return values.end(); }
+    EValue& back() { return values.back(); }
 
 private:
     ContainerType values;
@@ -216,6 +224,10 @@
     Extensions extensions;
     OperandParameters operands;
     const char* desc;
+
+    // Returns true if this enum is valid, in isolation.
+    // Otherwise emits a diagnostic to std::cerr and returns false.
+    bool IsValid(OperandClass oc, const std::string& context) const;
 };
 
 using EnumValues = EnumValuesContainer<EnumValue>;
diff --git a/tools/buildHeaders/main.cpp b/tools/buildHeaders/main.cpp
index 9a59714..6e6a03b 100644
--- a/tools/buildHeaders/main.cpp
+++ b/tools/buildHeaders/main.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2019 The Khronos Group Inc.
+// Copyright (c) 2014-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"),