Snap for 8730993 from f850f00f275fb30b58b228cd264ac6e3a47db9fc to mainline-tzdata3-release

Change-Id: I87859aaddf7469c3e34d4ed5865c9580ac9f625f
diff --git a/Android.bp b/Android.bp
index ff46b45..c034672 100644
--- a/Android.bp
+++ b/Android.bp
@@ -3,7 +3,6 @@
 // deqp_spirv_headers_unified1_extinst.debuginfo.grammar.json
 // deqp_spirv_headers_unified1_extinst.glsl.std.450.grammar.json
 // deqp_spirv_headers_unified1_extinst.nonsemantic.clspvreflection.grammar.json
-// deqp_spirv_headers_unified1_extinst.nonsemantic.shader.debuginfo.100.grammar.json
 // deqp_spirv_headers_unified1_extinst.opencl.debuginfo.100.grammar.json
 // deqp_spirv_headers_unified1_extinst.opencl.std.100.grammar.json
 // deqp_spirv_headers_unified1_extinst.spv-amd-gcn-shader.grammar.json
@@ -61,11 +60,6 @@
 }
 
 filegroup {
-    name: "deqp_spirv_headers_unified1_extinst.nonsemantic.shader.debuginfo.100.grammar.json",
-    srcs: ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
-}
-
-filegroup {
     name: "deqp_spirv_headers_unified1_extinst.opencl.debuginfo.100.grammar.json",
     srcs: ["include/spirv/unified1/extinst.opencl.debuginfo.100.grammar.json"],
 }
diff --git a/BUILD.bazel b/BUILD.bazel
index c898ade..9cb46bf 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -92,11 +92,6 @@
 )
 
 filegroup(
-    name = "spirv_ext_inst_nonsemantic_shader_debuginfo_100_grammar_unified1",
-    srcs = ["include/spirv/unified1/extinst.nonsemantic.shader.debuginfo.100.grammar.json"],
-)
-
-filegroup(
     name = "spirv_ext_inst_spv_amd_gcn_shader_grammar_unified1",
     srcs = ["include/spirv/unified1/extinst.spv-amd-gcn-shader.grammar.json"],
 )
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f19390a..6f01ef0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@
 # https://www.khronos.org/registry/spir-v/
 #
 cmake_minimum_required(VERSION 3.0)
-project(SPIRV-Headers VERSION 1.5.5)
+project(SPIRV-Headers VERSION 1.5.1)
 
 # There are two ways to use this project.
 #
@@ -124,10 +124,4 @@
         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
-    )
 endif()
diff --git a/SPIRV-Headers.pc.in b/SPIRV-Headers.pc.in
deleted file mode 100644
index 345f5f8..0000000
--- a/SPIRV-Headers.pc.in
+++ /dev/null
@@ -1,9 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
-
-Name: SPIRV-Headers
-Description: Header files from the SPIR-V registry
-Version: @CMAKE_PROJECT_VERSION@
-Requires:
-Libs:
-Cflags: -I${includedir}
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 6b578a5..525c97d 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -55,7 +55,7 @@
         <id value="2"   vendor="Valve"      comment="Contact TBD"/>
         <id value="3"   vendor="Codeplay"   comment="Contact Victor Lomuller, victor@codeplay.com"/>
         <id value="4"   vendor="NVIDIA"     comment="Contact Kerch Holt, kholt@nvidia.com"/>
-        <id value="5"   vendor="ARM"        comment="Contact Kevin Petit, kevin.petit@arm.com"/>
+        <id value="5"   vendor="ARM"        comment="Contact Alexander Galazin, alexander.galazin@arm.com"/>
         <id value="6"   vendor="Khronos" tool="LLVM/SPIR-V Translator" comment="Contact Yaxun (Sam) Liu, yaxun.liu@amd.com"/>
         <id value="7"   vendor="Khronos" tool="SPIR-V Tools Assembler" comment="Contact David Neto, dneto@google.com"/>
         <id value="8"   vendor="Khronos" tool="Glslang Reference Front End" comment="Contact John Kessenich, johnkessenich@google.com"/>
@@ -81,10 +81,7 @@
         <id value="28"  vendor="gfx-rs community" tool="Naga" comment="https://github.com/gfx-rs/naga"/>
         <id value="29"  vendor="Mikkosoft Productions" tool="MSP Shader Compiler" comment="Contact Mikko Rasa, tdb@tdb.fi"/>
         <id value="30"  vendor="SpvGenTwo community" tool="SpvGenTwo SPIR-V IR Tools" comment="https://github.com/rAzoR8/SpvGenTwo"/>
-        <id value="31"  vendor="Google" tool="Skia SkSL" comment="Contact Ethan Nicholas, ethannicholas@google.com"/>
-        <id value="32"  vendor="TornadoVM" tool="SPIRV Beehive Toolkit" comment="https://github.com/beehive-lab/spirv-beehive-toolkit"/>
-        <id value="33"  vendor="DragonJoker" tool="ShaderWriter" comment="Contact Sylvain Doremus, https://github.com/DragonJoker/ShaderWriter"/>
-        <unused start="34" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+        <unused start="31" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
     </ids>
 
     <!-- SECTION: SPIR-V Opcodes and Enumerants -->
@@ -121,7 +118,7 @@
     <!-- Begin reservations of opcode enumerants -->
     <ids type="opcode" start="0" end="4095" vendor="Khronos" comment="Reserved opcodes, not available to vendors - see the SPIR-V Specification"/>
     <ids type="opcode" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
-    <ids type="opcode" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
+    <ids type="opcode" start="4160" end="4415" vendor="ARM"/>
     <ids type="opcode" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
     <ids type="opcode" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
     <ids type="opcode" start="4992" end="5247" vendor="AMD"/>
@@ -136,21 +133,20 @@
     <ids type="opcode" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
     <ids type="opcode" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
     <ids type="opcode" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
-    <ids type="opcode" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
     <!-- 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="6400" end="65535" comment="Opcode range reservable for future use by vendors"/>
     <!-- End reservations of opcodes -->
 
 
     <!-- Begin reservations of non-opcode enumerants -->
     <ids type="enumerant" start="0" end="4095" vendor="Khronos" comment="Reserved enumerants, not available to vendors - see the SPIR-V Specification"/>
     <ids type="enumerant" start="4096" end="4159" vendor="Mesa" comment="Contact TBD"/>
-    <ids type="enumerant" start="4160" end="4415" vendor="ARM" comment="Contact kevin.petit@arm.com"/>
+    <ids type="enumerant" start="4160" end="4415" vendor="ARM"/>
     <ids type="enumerant" start="4416" end="4479" vendor="Khronos" comment="SPV_ARB_shader_ballot - contact Neil Henning, neil.henning@amd.com"/>
     <ids type="enumerant" start="4480" end="4991" vendor="Qualcomm" comment="Contact weifengz@qti.qualcomm.com"/>
     <ids type="enumerant" start="4992" end="5247" vendor="AMD"/>
@@ -165,14 +161,13 @@
     <ids type="enumerant" start="6080" end="6143" vendor="Intel" comment="Contact mariusz.merecki@intel.com"/>
     <ids type="enumerant" start="6144" end="6271" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
     <ids type="enumerant" start="6272" end="6399" vendor="Huawei" comment="Contact wanghuilong2@xunweitech.com"/>
-    <ids type="enumerant" start="6400" end="6463" vendor="Intel" comment="Contact ben.ashbaugh@intel.com"/>
     <!-- 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="6464" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
+    <ids type="enumerant" start="6400" end="4294967295" comment="Enumerant range reservable for future use by vendors"/>
     <!-- End reservations of enumerants -->
 
 
@@ -192,8 +187,8 @@
 
     <!-- Reserved loop control bits -->
     <ids type="LoopControl" start="0" end="15" vendor="Khronos" comment="Reserved LoopControl bits, not available to vendors - see the SPIR-V Specification"/>
-    <ids type="LoopControl" start="16" end="25" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
-    <ids type="LoopControl" start="26" end="30" comment="Unreserved bits reservable for use by vendors"/>
+    <ids type="LoopControl" start="16" end="24" vendor="Intel" comment="Contact michael.kinsner@intel.com"/>
+    <ids type="LoopControl" start="25" end="30" comment="Unreserved bits reservable for use by vendors"/>
     <ids type="LoopControl" start="31" end="31" vendor="Khronos" comment="Reserved LoopControl bit, not available to vendors"/>
 
 
@@ -256,24 +251,4 @@
     <ids type="MemoryOperand" start="18" end="30" comment="Unreserved bits reservable for use by vendors"/>
     <ids type="MemoryOperand" start="31" end="31" vendor="Khronos" comment="Reserved MemoryOperand bit, not available to vendors"/>
 
-    <!-- SECTION: SPIR-V Image Operand Bit Reservations -->
-    <!-- Reserve ranges of bits in the image operands bitfield.
-
-         Each vendor determines the use of values in their own ranges.
-         Vendors are not required to disclose those uses.  If the use of a
-         value is included in an extension that is adopted by a Khronos
-         extension or specification, then that value's use may be permanently
-         fixed as if originally reserved in a Khronos range.
-
-         The SPIR Working Group strongly recommends:
-         - Each value is used for only one purpose.
-         - All values in a range should be used before allocating a new range.
-         -->
-
-    <!-- Reserved image operand bits -->
-    <ids type="ImageOperand" start="0" end="15" vendor="Khronos" comment="Reserved ImageOperand bits, not available to vendors - see the SPIR-V Specification"/>
-    <ids type="ImageOperand" start="16" end="16" vendor="Nvidia" comment="Contact pmistry@nvidia.com"/>
-    <ids type="ImageOperand" start="17" end="30" comment="Unreserved bits reservable for use by vendors"/>
-    <ids type="ImageOperand" start="31" end="31" vendor="Khronos" comment="Reserved ImageOperand bit, not available to vendors"/>
-
 </registry>
diff --git a/include/spirv/unified1/NonSemanticClspvReflection.h b/include/spirv/unified1/NonSemanticClspvReflection.h
index 380dc21..fa7061d 100644
--- a/include/spirv/unified1/NonSemanticClspvReflection.h
+++ b/include/spirv/unified1/NonSemanticClspvReflection.h
@@ -33,7 +33,7 @@
 #endif
 
 enum {
-    NonSemanticClspvReflectionRevision = 2,
+    NonSemanticClspvReflectionRevision = 1,
     NonSemanticClspvReflectionRevision_BitWidthPadding = 0x7fffffff
 };
 
@@ -62,7 +62,6 @@
     NonSemanticClspvReflectionConstantDataUniform = 22,
     NonSemanticClspvReflectionLiteralSampler = 23,
     NonSemanticClspvReflectionPropertyRequiredWorkgroupSize = 24,
-    NonSemanticClspvReflectionSpecConstantSubgroupMaxSize = 25,
     NonSemanticClspvReflectionInstructionsMax = 0x7fffffff
 };
 
diff --git a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
index 3d153e5..15e5699 100644
--- a/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
+++ b/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json
@@ -1,5 +1,5 @@
 {
-  "revision" : 2,
+  "revision" : 1,
   "instructions" : [
     {
       "opname" : "Kernel",
@@ -232,13 +232,6 @@
         { "kind" : "IdRef", "name" : "Y" },
         { "kind" : "IdRef", "name" : "Z" }
       ]
-    },
-    {
-      "opname" : "SpecConstantSubgroupMaxSize",
-      "opcode" : 25,
-      "operands" : [
-        { "kind" : "IdRef", "name" : "Size" }
-      ]
     }
   ]
 }
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 766a4ed..33ca872 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -26,8 +26,8 @@
   ],
   "magic_number" : "0x07230203",
   "major_version" : 1,
-  "minor_version" : 6,
-  "revision" : 1,
+  "minor_version" : 5,
+  "revision" : 4,
   "instruction_printing_class" : [
     {
       "tag"     : "@exclude"
@@ -1735,8 +1735,7 @@
         { "kind" : "IdRef",        "name" : "'x'" },
         { "kind" : "IdRef",        "name" : "'y'" }
       ],
-      "capabilities" : [ "Kernel" ],
-      "lastVersion" : "1.5"
+      "capabilities" : [ "Kernel" ]
     },
     {
       "opname" : "OpOrdered",
@@ -4110,7 +4109,7 @@
         "SPV_KHR_terminate_invocation"
       ],
       "capabilities" : [ "Shader" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpSubgroupBallotKHR",
@@ -4262,20 +4261,6 @@
       "version" : "None"
     },
     {
-      "opname" : "OpSDot",
-      "class"  : "Arithmetic",
-      "opcode" : 4450,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
-    },
-    {
       "opname" : "OpSDotKHR",
       "class"  : "Arithmetic",
       "opcode" : 4450,
@@ -4287,22 +4272,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
-    },
-    {
-      "opname" : "OpUDot",
-      "class"  : "Arithmetic",
-      "opcode" : 4451,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpUDotKHR",
@@ -4316,22 +4286,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
-    },
-    {
-      "opname" : "OpSUDot",
-      "class"  : "Arithmetic",
-      "opcode" : 4452,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpSUDotKHR",
@@ -4345,23 +4300,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
-    },
-    {
-      "opname" : "OpSDotAccSat",
-      "class"  : "Arithmetic",
-      "opcode" : 4453,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "IdRef", "name" : "'Accumulator'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpSDotAccSatKHR",
@@ -4376,23 +4315,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
-    },
-    {
-      "opname" : "OpUDotAccSat",
-      "class"  : "Arithmetic",
-      "opcode" : 4454,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "IdRef", "name" : "'Accumulator'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpUDotAccSatKHR",
@@ -4407,23 +4330,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
-    },
-    {
-      "opname" : "OpSUDotAccSat",
-      "class"  : "Arithmetic",
-      "opcode" : 4455,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Vector 1'" },
-        { "kind" : "IdRef", "name" : "'Vector 2'" },
-        { "kind" : "IdRef", "name" : "'Accumulator'" },
-        { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
-      ],
-      "capabilities" : [ "DotProduct" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
       "opname" : "OpSUDotAccSatKHR",
@@ -4438,8 +4345,7 @@
         { "kind" : "PackedVectorFormat", "name" : "'Packed Vector Format'", "quantifier" : "?" }
       ],
       "capabilities" : [ "DotProductKHR" ],
-      "extensions" : [ "SPV_KHR_integer_dot_product" ],
-      "version" : "1.6"
+      "version" : "None"
     },
     {
         "opname" : "OpTypeRayQueryKHR",
@@ -5019,18 +4925,12 @@
       "version" : "None"
     },
     {
-      "opname" : "OpDemoteToHelperInvocation",
-      "class"  : "Control-Flow",
-      "opcode" : 5380,
-      "capabilities" : [ "DemoteToHelperInvocation" ],
-      "version" : "1.6"
-    },
-    {
       "opname" : "OpDemoteToHelperInvocationEXT",
-      "class"  : "Control-Flow",
+      "class"  : "Reserved",
       "opcode" : 5380,
-      "capabilities" : [ "DemoteToHelperInvocation" ],
-      "version" : "1.6"
+      "capabilities" : [ "DemoteToHelperInvocationEXT" ],
+      "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
+      "version" : "None"
     },
     {
       "opname" : "OpIsHelperInvocationEXT",
@@ -5045,88 +4945,6 @@
       "version" : "None"
     },
     {
-      "opname" : "OpConvertUToImageNV",
-      "class"  : "Reserved",
-      "opcode" : 5391,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpConvertUToSamplerNV",
-      "class"  : "Reserved",
-      "opcode" : 5392,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpConvertImageToUNV",
-      "class"  : "Reserved",
-      "opcode" : 5393,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpConvertSamplerToUNV",
-      "class"  : "Reserved",
-      "opcode" : 5394,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpConvertUToSampledImageNV",
-      "class"  : "Reserved",
-      "opcode" : 5395,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpConvertSampledImageToUNV",
-      "class"  : "Reserved",
-      "opcode" : 5396,
-      "operands" : [
-        { "kind" : "IdResultType" },
-        { "kind" : "IdResult" },
-        { "kind" : "IdRef", "name" : "'Operand'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
-      "opname" : "OpSamplerImageAddressingModeNV",
-      "class"  : "Reserved",
-      "opcode" : 5397,
-      "operands" : [
-        { "kind" : "LiteralInteger", "name" : "'Bit Width'" }
-      ],
-      "capabilities" : [ "BindlessTextureNV" ],
-      "version" : "None"
-    },
-    {
       "opname" : "OpSubgroupShuffleINTEL",
       "class"  : "Group",
       "opcode" : 5571,
@@ -5438,7 +5256,7 @@
       "version" : "None"
     },
     {
-      "opname" : "OpConstantFunctionPointerINTEL",
+      "opname" : "OpConstFunctionPointerINTEL",
       "class"  : "@exclude",
       "opcode" : 5600,
       "operands" : [
@@ -8657,18 +8475,6 @@
           "enumerant" : "ZeroExtend",
           "value" : "0x2000",
           "version" : "1.4"
-        },
-        {
-          "enumerant" : "Nontemporal",
-          "value" : "0x4000",
-          "version" : "1.6"
-        },
-        {
-          "enumerant" : "Offsets",
-          "value" : "0x10000",
-          "parameters" : [
-            { "kind" : "IdRef" }
-          ]
         }
       ]
     },
@@ -8682,35 +8488,40 @@
         },
         {
           "enumerant" : "NotNaN",
-          "value" : "0x0001"
+          "value" : "0x0001",
+          "capabilities" : [ "Kernel" ]
         },
         {
           "enumerant" : "NotInf",
-          "value" : "0x0002"
+          "value" : "0x0002",
+          "capabilities" : [ "Kernel" ]
         },
         {
           "enumerant" : "NSZ",
-          "value" : "0x0004"
+          "value" : "0x0004",
+          "capabilities" : [ "Kernel" ]
         },
         {
           "enumerant" : "AllowRecip",
-          "value" : "0x0008"
+          "value" : "0x0008",
+          "capabilities" : [ "Kernel" ]
         },
         {
           "enumerant" : "Fast",
-          "value" : "0x0010"
+          "value" : "0x0010",
+          "capabilities" : [ "Kernel" ]
         },
         {
           "enumerant" : "AllowContractFastINTEL",
           "value" : "0x10000",
           "capabilities" : [ "FPFastMathModeINTEL" ],
-          "version" : "None"
+	  "version" : "None"
         },
         {
           "enumerant" : "AllowReassocINTEL",
           "value" : "0x20000",
           "capabilities" : [ "FPFastMathModeINTEL" ],
-          "version" : "None"
+	  "version" : "None"
         }
       ]
     },
@@ -10982,12 +10793,12 @@
         {
           "enumerant" : "Uniform",
           "value" : 26,
-          "capabilities" : [ "Shader", "UniformDecoration" ]
+          "capabilities" : [ "Shader" ]
         },
         {
           "enumerant" : "UniformId",
           "value" : 27,
-          "capabilities" : [ "Shader", "UniformDecoration" ],
+          "capabilities" : [ "Shader" ],
           "parameters" : [
             { "kind" : "IdScope",           "name" : "'Execution'" }
           ],
@@ -11220,17 +11031,10 @@
           "version" : "None"
         },
         {
-          "enumerant" : "PerVertexKHR",
-          "value" : 5285,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
           "enumerant" : "PerVertexNV",
           "value" : 5285,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
           "version" : "None"
         },
         {
@@ -11275,30 +11079,6 @@
           "version" : "1.5"
         },
         {
-          "enumerant" : "BindlessSamplerNV",
-          "value" : 5398,
-          "capabilities" : [ "BindlessTextureNV" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BindlessImageNV",
-          "value" : 5399,
-          "capabilities" : [ "BindlessTextureNV" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BoundSamplerNV",
-          "value" : 5400,
-          "capabilities" : [ "BindlessTextureNV" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BoundImageNV",
-          "value" : 5401,
-          "capabilities" : [ "BindlessTextureNV" ],
-          "version" : "None"
-        },
-        {
           "enumerant" : "SIMTCallINTEL",
           "value" : 5599,
           "parameters" : [
@@ -11618,12 +11398,6 @@
           "value" : 6087,
           "capabilities" : [ "VectorComputeINTEL" ],
           "version" : "None"
-        },
-        {
-          "enumerant" : "MediaBlockIOINTEL",
-          "value" : 6140,
-          "capabilities" : [ "VectorComputeINTEL" ],
-          "version" : "None"
         }
       ]
     },
@@ -12092,31 +11866,17 @@
           "version" : "None"
         },
         {
-          "enumerant" : "BaryCoordKHR",
-          "value" : 5286,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
           "enumerant" : "BaryCoordNV",
           "value" : 5286,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
-          "enumerant" : "BaryCoordNoPerspKHR",
-          "value" : 5287,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
           "version" : "None"
         },
         {
           "enumerant" : "BaryCoordNoPerspNV",
           "value" : 5287,
-          "capabilities" : [ "FragmentBarycentricNV", "FragmentBarycentricKHR" ],
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
           "version" : "None"
         },
         {
@@ -12842,11 +12602,6 @@
           "version" : "1.5"
         },
         {
-          "enumerant" : "UniformDecoration",
-          "value" : 71,
-          "version" : "1.6"
-        },
-        {
           "enumerant" : "FragmentShadingRateKHR",
           "value" : 4422,
           "capabilities" : [ "Shader" ],
@@ -13172,15 +12927,9 @@
           "version" : "None"
         },
         {
-          "enumerant" : "FragmentBarycentricKHR",
-          "value" : 5284,
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
-          "version" : "None"
-        },
-        {
           "enumerant" : "FragmentBarycentricNV",
           "value" : 5284,
-          "extensions" : [ "SPV_NV_fragment_shader_barycentric", "SPV_KHR_fragment_shader_barycentric" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
           "version" : "None"
         },
         {
@@ -13464,22 +13213,10 @@
           "version" : "None"
         },
         {
-          "enumerant" : "DemoteToHelperInvocation",
-          "value" : 5379,
-          "capabilities" : [ "Shader" ],
-          "version" : "1.6"
-        },
-        {
           "enumerant" : "DemoteToHelperInvocationEXT",
           "value" : 5379,
           "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_EXT_demote_to_helper_invocation" ],
-          "version" : "1.6"
-        },
-        {
-          "enumerant" : "BindlessTextureNV",
-          "value" : 5390,
-          "extensions" : [ "SPV_NV_bindless_texture" ],
           "version" : "None"
         },
         {
@@ -13714,50 +13451,29 @@
           "version" : "None"
         },
         {
-          "enumerant" : "DotProductInputAll",
-          "value" : 6016,
-          "version" : "1.6"
-        },
-        {
           "enumerant" : "DotProductInputAllKHR",
           "value" : 6016,
           "extensions" : [ "SPV_KHR_integer_dot_product" ],
-          "version" : "1.6"
-        },
-        {
-          "enumerant" : "DotProductInput4x8Bit",
-          "value" : 6017,
-          "capabilities" : [ "Int8" ],
-          "version" : "1.6"
+          "version" : "None"
         },
         {
           "enumerant" : "DotProductInput4x8BitKHR",
           "value" : 6017,
           "capabilities" : [ "Int8" ],
           "extensions" : [ "SPV_KHR_integer_dot_product" ],
-          "version" : "1.6"
-        },
-        {
-          "enumerant" : "DotProductInput4x8BitPacked",
-          "value" : 6018,
-          "version" : "1.6"
+          "version" : "None"
         },
         {
           "enumerant" : "DotProductInput4x8BitPackedKHR",
           "value" : 6018,
           "extensions" : [ "SPV_KHR_integer_dot_product" ],
-          "version" : "1.6"
-        },
-        {
-          "enumerant" : "DotProduct",
-          "value" : 6019,
-          "version" : "1.6"
+          "version" : "None"
         },
         {
           "enumerant" : "DotProductKHR",
           "value" : 6019,
           "extensions" : [ "SPV_KHR_integer_dot_product" ],
-          "version" : "1.6"
+          "version" : "None"
         },
         {
           "enumerant" : "BitInstructions",
@@ -13768,12 +13484,14 @@
         {
           "enumerant" : "AtomicFloat32AddEXT",
           "value" : 6033,
+          "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
           "version" : "None"
         },
         {
           "enumerant" : "AtomicFloat64AddEXT",
           "value" : 6034,
+          "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_EXT_shader_atomic_float_add" ],
           "version" : "None"
         },
@@ -13792,6 +13510,7 @@
         {
           "enumerant" : "AtomicFloat16AddEXT",
           "value" : 6095,
+          "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_EXT_shader_atomic_float16_add" ],
           "version" : "None"
         },
@@ -13868,15 +13587,10 @@
       "kind" : "PackedVectorFormat",
       "enumerants" : [
         {
-          "enumerant" : "PackedVectorFormat4x8Bit",
-          "value" : 0,
-          "version" : "1.6"
-        },
-        {
           "enumerant" : "PackedVectorFormat4x8BitKHR",
           "value" : 0,
           "extensions" : [ "SPV_KHR_integer_dot_product" ],
-          "version" : "1.6"
+          "version" : "None"
         }
       ]
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 9cf00ec..b2ca3f0 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -48,8 +48,8 @@
     public static class Specification
     {
         public const uint MagicNumber = 0x07230203;
-        public const uint Version = 0x00010600;
-        public const uint Revision = 1;
+        public const uint Version = 0x00010500;
+        public const uint Revision = 4;
         public const uint OpCodeMask = 0xffff;
         public const uint WordCountShift = 16;
 
@@ -349,8 +349,6 @@
             VolatileTexelKHR = 11,
             SignExtend = 12,
             ZeroExtend = 13,
-            Nontemporal = 14,
-            Offsets = 16,
         }
 
         public enum ImageOperandsMask
@@ -374,8 +372,6 @@
             VolatileTexelKHR = 0x00000800,
             SignExtend = 0x00001000,
             ZeroExtend = 0x00002000,
-            Nontemporal = 0x00004000,
-            Offsets = 0x00010000,
         }
 
         public enum FPFastMathModeShift
@@ -494,7 +490,6 @@
             PerPrimitiveNV = 5271,
             PerViewNV = 5272,
             PerTaskNV = 5273,
-            PerVertexKHR = 5285,
             PerVertexNV = 5285,
             NonUniform = 5300,
             NonUniformEXT = 5300,
@@ -502,10 +497,6 @@
             RestrictPointerEXT = 5355,
             AliasedPointer = 5356,
             AliasedPointerEXT = 5356,
-            BindlessSamplerNV = 5398,
-            BindlessImageNV = 5399,
-            BoundSamplerNV = 5400,
-            BoundImageNV = 5401,
             SIMTCallINTEL = 5599,
             ReferencedIndirectlyINTEL = 5602,
             ClobberINTEL = 5607,
@@ -545,7 +536,6 @@
             FunctionFloatingPointModeINTEL = 6080,
             SingleElementVectorINTEL = 6085,
             VectorComputeCallableFunctionINTEL = 6087,
-            MediaBlockIOINTEL = 6140,
         }
 
         public enum BuiltIn
@@ -630,9 +620,7 @@
             LayerPerViewNV = 5279,
             MeshViewCountNV = 5280,
             MeshViewIndicesNV = 5281,
-            BaryCoordKHR = 5286,
             BaryCoordNV = 5286,
-            BaryCoordNoPerspKHR = 5287,
             BaryCoordNoPerspNV = 5287,
             FragSizeEXT = 5292,
             FragmentSizeNV = 5292,
@@ -930,7 +918,6 @@
             GroupNonUniformQuad = 68,
             ShaderLayer = 69,
             ShaderViewportIndex = 70,
-            UniformDecoration = 71,
             FragmentShadingRateKHR = 4422,
             SubgroupBallotKHR = 4423,
             DrawParameters = 4427,
@@ -979,7 +966,6 @@
             FragmentFullyCoveredEXT = 5265,
             MeshShadingNV = 5266,
             ImageFootprintNV = 5282,
-            FragmentBarycentricKHR = 5284,
             FragmentBarycentricNV = 5284,
             ComputeDerivativeGroupQuadsNV = 5288,
             FragmentDensityEXT = 5291,
@@ -1024,9 +1010,7 @@
             FragmentShaderShadingRateInterlockEXT = 5372,
             ShaderSMBuiltinsNV = 5373,
             FragmentShaderPixelInterlockEXT = 5378,
-            DemoteToHelperInvocation = 5379,
             DemoteToHelperInvocationEXT = 5379,
-            BindlessTextureNV = 5390,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
             SubgroupImageBlockIOINTEL = 5570,
@@ -1065,13 +1049,9 @@
             IOPipesINTEL = 5943,
             BlockingPipesINTEL = 5945,
             FPGARegINTEL = 5948,
-            DotProductInputAll = 6016,
             DotProductInputAllKHR = 6016,
-            DotProductInput4x8Bit = 6017,
             DotProductInput4x8BitKHR = 6017,
-            DotProductInput4x8BitPacked = 6018,
             DotProductInput4x8BitPackedKHR = 6018,
-            DotProduct = 6019,
             DotProductKHR = 6019,
             BitInstructions = 6025,
             AtomicFloat32AddEXT = 6033,
@@ -1181,7 +1161,6 @@
 
         public enum PackedVectorFormat
         {
-            PackedVectorFormat4x8Bit = 0,
             PackedVectorFormat4x8BitKHR = 0,
         }
 
@@ -1543,17 +1522,11 @@
             OpConvertUToAccelerationStructureKHR = 4447,
             OpIgnoreIntersectionKHR = 4448,
             OpTerminateRayKHR = 4449,
-            OpSDot = 4450,
             OpSDotKHR = 4450,
-            OpUDot = 4451,
             OpUDotKHR = 4451,
-            OpSUDot = 4452,
             OpSUDotKHR = 4452,
-            OpSDotAccSat = 4453,
             OpSDotAccSatKHR = 4453,
-            OpUDotAccSat = 4454,
             OpUDotAccSatKHR = 4454,
-            OpSUDotAccSat = 4455,
             OpSUDotAccSatKHR = 4455,
             OpTypeRayQueryKHR = 4472,
             OpRayQueryInitializeKHR = 4473,
@@ -1593,16 +1566,8 @@
             OpCooperativeMatrixLengthNV = 5362,
             OpBeginInvocationInterlockEXT = 5364,
             OpEndInvocationInterlockEXT = 5365,
-            OpDemoteToHelperInvocation = 5380,
             OpDemoteToHelperInvocationEXT = 5380,
             OpIsHelperInvocationEXT = 5381,
-            OpConvertUToImageNV = 5391,
-            OpConvertUToSamplerNV = 5392,
-            OpConvertImageToUNV = 5393,
-            OpConvertSamplerToUNV = 5394,
-            OpConvertUToSampledImageNV = 5395,
-            OpConvertSampledImageToUNV = 5396,
-            OpSamplerImageAddressingModeNV = 5397,
             OpSubgroupShuffleINTEL = 5571,
             OpSubgroupShuffleDownINTEL = 5572,
             OpSubgroupShuffleUpINTEL = 5573,
@@ -1627,7 +1592,7 @@
             OpUSubSatINTEL = 5596,
             OpIMul32x16INTEL = 5597,
             OpUMul32x16INTEL = 5598,
-            OpConstantFunctionPointerINTEL = 5600,
+            OpConstFunctionPointerINTEL = 5600,
             OpFunctionPointerCallINTEL = 5601,
             OpAsmTargetINTEL = 5609,
             OpAsmINTEL = 5610,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index c15736e..1443963 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -53,12 +53,12 @@
 
 typedef unsigned int SpvId;
 
-#define SPV_VERSION 0x10600
-#define SPV_REVISION 1
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 4
 
 static const unsigned int SpvMagicNumber = 0x07230203;
-static const unsigned int SpvVersion = 0x00010600;
-static const unsigned int SpvRevision = 1;
+static const unsigned int SpvVersion = 0x00010500;
+static const unsigned int SpvRevision = 4;
 static const unsigned int SpvOpCodeMask = 0xffff;
 static const unsigned int SpvWordCountShift = 16;
 
@@ -357,8 +357,6 @@
     SpvImageOperandsVolatileTexelKHRShift = 11,
     SpvImageOperandsSignExtendShift = 12,
     SpvImageOperandsZeroExtendShift = 13,
-    SpvImageOperandsNontemporalShift = 14,
-    SpvImageOperandsOffsetsShift = 16,
     SpvImageOperandsMax = 0x7fffffff,
 } SpvImageOperandsShift;
 
@@ -382,8 +380,6 @@
     SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
     SpvImageOperandsSignExtendMask = 0x00001000,
     SpvImageOperandsZeroExtendMask = 0x00002000,
-    SpvImageOperandsNontemporalMask = 0x00004000,
-    SpvImageOperandsOffsetsMask = 0x00010000,
 } SpvImageOperandsMask;
 
 typedef enum SpvFPFastMathModeShift_ {
@@ -500,7 +496,6 @@
     SpvDecorationPerPrimitiveNV = 5271,
     SpvDecorationPerViewNV = 5272,
     SpvDecorationPerTaskNV = 5273,
-    SpvDecorationPerVertexKHR = 5285,
     SpvDecorationPerVertexNV = 5285,
     SpvDecorationNonUniform = 5300,
     SpvDecorationNonUniformEXT = 5300,
@@ -508,10 +503,6 @@
     SpvDecorationRestrictPointerEXT = 5355,
     SpvDecorationAliasedPointer = 5356,
     SpvDecorationAliasedPointerEXT = 5356,
-    SpvDecorationBindlessSamplerNV = 5398,
-    SpvDecorationBindlessImageNV = 5399,
-    SpvDecorationBoundSamplerNV = 5400,
-    SpvDecorationBoundImageNV = 5401,
     SpvDecorationSIMTCallINTEL = 5599,
     SpvDecorationReferencedIndirectlyINTEL = 5602,
     SpvDecorationClobberINTEL = 5607,
@@ -551,7 +542,6 @@
     SpvDecorationFunctionFloatingPointModeINTEL = 6080,
     SpvDecorationSingleElementVectorINTEL = 6085,
     SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
-    SpvDecorationMediaBlockIOINTEL = 6140,
     SpvDecorationMax = 0x7fffffff,
 } SpvDecoration;
 
@@ -636,9 +626,7 @@
     SpvBuiltInLayerPerViewNV = 5279,
     SpvBuiltInMeshViewCountNV = 5280,
     SpvBuiltInMeshViewIndicesNV = 5281,
-    SpvBuiltInBaryCoordKHR = 5286,
     SpvBuiltInBaryCoordNV = 5286,
-    SpvBuiltInBaryCoordNoPerspKHR = 5287,
     SpvBuiltInBaryCoordNoPerspNV = 5287,
     SpvBuiltInFragSizeEXT = 5292,
     SpvBuiltInFragmentSizeNV = 5292,
@@ -930,7 +918,6 @@
     SpvCapabilityGroupNonUniformQuad = 68,
     SpvCapabilityShaderLayer = 69,
     SpvCapabilityShaderViewportIndex = 70,
-    SpvCapabilityUniformDecoration = 71,
     SpvCapabilityFragmentShadingRateKHR = 4422,
     SpvCapabilitySubgroupBallotKHR = 4423,
     SpvCapabilityDrawParameters = 4427,
@@ -979,7 +966,6 @@
     SpvCapabilityFragmentFullyCoveredEXT = 5265,
     SpvCapabilityMeshShadingNV = 5266,
     SpvCapabilityImageFootprintNV = 5282,
-    SpvCapabilityFragmentBarycentricKHR = 5284,
     SpvCapabilityFragmentBarycentricNV = 5284,
     SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
     SpvCapabilityFragmentDensityEXT = 5291,
@@ -1024,9 +1010,7 @@
     SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
     SpvCapabilityShaderSMBuiltinsNV = 5373,
     SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
-    SpvCapabilityDemoteToHelperInvocation = 5379,
     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
-    SpvCapabilityBindlessTextureNV = 5390,
     SpvCapabilitySubgroupShuffleINTEL = 5568,
     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1065,13 +1049,9 @@
     SpvCapabilityIOPipesINTEL = 5943,
     SpvCapabilityBlockingPipesINTEL = 5945,
     SpvCapabilityFPGARegINTEL = 5948,
-    SpvCapabilityDotProductInputAll = 6016,
     SpvCapabilityDotProductInputAllKHR = 6016,
-    SpvCapabilityDotProductInput4x8Bit = 6017,
     SpvCapabilityDotProductInput4x8BitKHR = 6017,
-    SpvCapabilityDotProductInput4x8BitPacked = 6018,
     SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
-    SpvCapabilityDotProduct = 6019,
     SpvCapabilityDotProductKHR = 6019,
     SpvCapabilityBitInstructions = 6025,
     SpvCapabilityAtomicFloat32AddEXT = 6033,
@@ -1179,7 +1159,6 @@
 } SpvOverflowModes;
 
 typedef enum SpvPackedVectorFormat_ {
-    SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
     SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
     SpvPackedVectorFormatMax = 0x7fffffff,
 } SpvPackedVectorFormat;
@@ -1541,17 +1520,11 @@
     SpvOpConvertUToAccelerationStructureKHR = 4447,
     SpvOpIgnoreIntersectionKHR = 4448,
     SpvOpTerminateRayKHR = 4449,
-    SpvOpSDot = 4450,
     SpvOpSDotKHR = 4450,
-    SpvOpUDot = 4451,
     SpvOpUDotKHR = 4451,
-    SpvOpSUDot = 4452,
     SpvOpSUDotKHR = 4452,
-    SpvOpSDotAccSat = 4453,
     SpvOpSDotAccSatKHR = 4453,
-    SpvOpUDotAccSat = 4454,
     SpvOpUDotAccSatKHR = 4454,
-    SpvOpSUDotAccSat = 4455,
     SpvOpSUDotAccSatKHR = 4455,
     SpvOpTypeRayQueryKHR = 4472,
     SpvOpRayQueryInitializeKHR = 4473,
@@ -1591,16 +1564,8 @@
     SpvOpCooperativeMatrixLengthNV = 5362,
     SpvOpBeginInvocationInterlockEXT = 5364,
     SpvOpEndInvocationInterlockEXT = 5365,
-    SpvOpDemoteToHelperInvocation = 5380,
     SpvOpDemoteToHelperInvocationEXT = 5380,
     SpvOpIsHelperInvocationEXT = 5381,
-    SpvOpConvertUToImageNV = 5391,
-    SpvOpConvertUToSamplerNV = 5392,
-    SpvOpConvertImageToUNV = 5393,
-    SpvOpConvertSamplerToUNV = 5394,
-    SpvOpConvertUToSampledImageNV = 5395,
-    SpvOpConvertSampledImageToUNV = 5396,
-    SpvOpSamplerImageAddressingModeNV = 5397,
     SpvOpSubgroupShuffleINTEL = 5571,
     SpvOpSubgroupShuffleDownINTEL = 5572,
     SpvOpSubgroupShuffleUpINTEL = 5573,
@@ -1625,7 +1590,7 @@
     SpvOpUSubSatINTEL = 5596,
     SpvOpIMul32x16INTEL = 5597,
     SpvOpUMul32x16INTEL = 5598,
-    SpvOpConstantFunctionPointerINTEL = 5600,
+    SpvOpConstFunctionPointerINTEL = 5600,
     SpvOpFunctionPointerCallINTEL = 5601,
     SpvOpAsmTargetINTEL = 5609,
     SpvOpAsmINTEL = 5610,
@@ -2203,12 +2168,12 @@
     case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
-    case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
-    case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
-    case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
-    case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
-    case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
-    case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case SpvOpSUDotAccSatKHR: *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;
@@ -2245,15 +2210,8 @@
     case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
     case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
     case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
-    case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+    case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
     case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
     case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2278,7 +2236,7 @@
     case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
-    case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+    case SpvOpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
     case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 3d500eb..5180457 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -49,12 +49,12 @@
 
 typedef unsigned int Id;
 
-#define SPV_VERSION 0x10600
-#define SPV_REVISION 1
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 4
 
 static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010600;
-static const unsigned int Revision = 1;
+static const unsigned int Version = 0x00010500;
+static const unsigned int Revision = 4;
 static const unsigned int OpCodeMask = 0xffff;
 static const unsigned int WordCountShift = 16;
 
@@ -353,8 +353,6 @@
     ImageOperandsVolatileTexelKHRShift = 11,
     ImageOperandsSignExtendShift = 12,
     ImageOperandsZeroExtendShift = 13,
-    ImageOperandsNontemporalShift = 14,
-    ImageOperandsOffsetsShift = 16,
     ImageOperandsMax = 0x7fffffff,
 };
 
@@ -378,8 +376,6 @@
     ImageOperandsVolatileTexelKHRMask = 0x00000800,
     ImageOperandsSignExtendMask = 0x00001000,
     ImageOperandsZeroExtendMask = 0x00002000,
-    ImageOperandsNontemporalMask = 0x00004000,
-    ImageOperandsOffsetsMask = 0x00010000,
 };
 
 enum FPFastMathModeShift {
@@ -496,7 +492,6 @@
     DecorationPerPrimitiveNV = 5271,
     DecorationPerViewNV = 5272,
     DecorationPerTaskNV = 5273,
-    DecorationPerVertexKHR = 5285,
     DecorationPerVertexNV = 5285,
     DecorationNonUniform = 5300,
     DecorationNonUniformEXT = 5300,
@@ -504,10 +499,6 @@
     DecorationRestrictPointerEXT = 5355,
     DecorationAliasedPointer = 5356,
     DecorationAliasedPointerEXT = 5356,
-    DecorationBindlessSamplerNV = 5398,
-    DecorationBindlessImageNV = 5399,
-    DecorationBoundSamplerNV = 5400,
-    DecorationBoundImageNV = 5401,
     DecorationSIMTCallINTEL = 5599,
     DecorationReferencedIndirectlyINTEL = 5602,
     DecorationClobberINTEL = 5607,
@@ -547,7 +538,6 @@
     DecorationFunctionFloatingPointModeINTEL = 6080,
     DecorationSingleElementVectorINTEL = 6085,
     DecorationVectorComputeCallableFunctionINTEL = 6087,
-    DecorationMediaBlockIOINTEL = 6140,
     DecorationMax = 0x7fffffff,
 };
 
@@ -632,9 +622,7 @@
     BuiltInLayerPerViewNV = 5279,
     BuiltInMeshViewCountNV = 5280,
     BuiltInMeshViewIndicesNV = 5281,
-    BuiltInBaryCoordKHR = 5286,
     BuiltInBaryCoordNV = 5286,
-    BuiltInBaryCoordNoPerspKHR = 5287,
     BuiltInBaryCoordNoPerspNV = 5287,
     BuiltInFragSizeEXT = 5292,
     BuiltInFragmentSizeNV = 5292,
@@ -926,7 +914,6 @@
     CapabilityGroupNonUniformQuad = 68,
     CapabilityShaderLayer = 69,
     CapabilityShaderViewportIndex = 70,
-    CapabilityUniformDecoration = 71,
     CapabilityFragmentShadingRateKHR = 4422,
     CapabilitySubgroupBallotKHR = 4423,
     CapabilityDrawParameters = 4427,
@@ -975,7 +962,6 @@
     CapabilityFragmentFullyCoveredEXT = 5265,
     CapabilityMeshShadingNV = 5266,
     CapabilityImageFootprintNV = 5282,
-    CapabilityFragmentBarycentricKHR = 5284,
     CapabilityFragmentBarycentricNV = 5284,
     CapabilityComputeDerivativeGroupQuadsNV = 5288,
     CapabilityFragmentDensityEXT = 5291,
@@ -1020,9 +1006,7 @@
     CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
     CapabilityShaderSMBuiltinsNV = 5373,
     CapabilityFragmentShaderPixelInterlockEXT = 5378,
-    CapabilityDemoteToHelperInvocation = 5379,
     CapabilityDemoteToHelperInvocationEXT = 5379,
-    CapabilityBindlessTextureNV = 5390,
     CapabilitySubgroupShuffleINTEL = 5568,
     CapabilitySubgroupBufferBlockIOINTEL = 5569,
     CapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1061,13 +1045,9 @@
     CapabilityIOPipesINTEL = 5943,
     CapabilityBlockingPipesINTEL = 5945,
     CapabilityFPGARegINTEL = 5948,
-    CapabilityDotProductInputAll = 6016,
     CapabilityDotProductInputAllKHR = 6016,
-    CapabilityDotProductInput4x8Bit = 6017,
     CapabilityDotProductInput4x8BitKHR = 6017,
-    CapabilityDotProductInput4x8BitPacked = 6018,
     CapabilityDotProductInput4x8BitPackedKHR = 6018,
-    CapabilityDotProduct = 6019,
     CapabilityDotProductKHR = 6019,
     CapabilityBitInstructions = 6025,
     CapabilityAtomicFloat32AddEXT = 6033,
@@ -1175,7 +1155,6 @@
 };
 
 enum PackedVectorFormat {
-    PackedVectorFormatPackedVectorFormat4x8Bit = 0,
     PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
     PackedVectorFormatMax = 0x7fffffff,
 };
@@ -1537,17 +1516,11 @@
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
-    OpSDot = 4450,
     OpSDotKHR = 4450,
-    OpUDot = 4451,
     OpUDotKHR = 4451,
-    OpSUDot = 4452,
     OpSUDotKHR = 4452,
-    OpSDotAccSat = 4453,
     OpSDotAccSatKHR = 4453,
-    OpUDotAccSat = 4454,
     OpUDotAccSatKHR = 4454,
-    OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
@@ -1587,16 +1560,8 @@
     OpCooperativeMatrixLengthNV = 5362,
     OpBeginInvocationInterlockEXT = 5364,
     OpEndInvocationInterlockEXT = 5365,
-    OpDemoteToHelperInvocation = 5380,
     OpDemoteToHelperInvocationEXT = 5380,
     OpIsHelperInvocationEXT = 5381,
-    OpConvertUToImageNV = 5391,
-    OpConvertUToSamplerNV = 5392,
-    OpConvertImageToUNV = 5393,
-    OpConvertSamplerToUNV = 5394,
-    OpConvertUToSampledImageNV = 5395,
-    OpConvertSampledImageToUNV = 5396,
-    OpSamplerImageAddressingModeNV = 5397,
     OpSubgroupShuffleINTEL = 5571,
     OpSubgroupShuffleDownINTEL = 5572,
     OpSubgroupShuffleUpINTEL = 5573,
@@ -1621,7 +1586,7 @@
     OpUSubSatINTEL = 5596,
     OpIMul32x16INTEL = 5597,
     OpUMul32x16INTEL = 5598,
-    OpConstantFunctionPointerINTEL = 5600,
+    OpConstFunctionPointerINTEL = 5600,
     OpFunctionPointerCallINTEL = 5601,
     OpAsmTargetINTEL = 5609,
     OpAsmINTEL = 5610,
@@ -2199,12 +2164,12 @@
     case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
-    case OpSDot: *hasResult = true; *hasResultType = true; break;
-    case OpUDot: *hasResult = true; *hasResultType = true; break;
-    case OpSUDot: *hasResult = true; *hasResultType = true; break;
-    case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
-    case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
-    case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
+    case OpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case OpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case OpSUDotAccSatKHR: *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;
@@ -2241,15 +2206,8 @@
     case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
     case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
     case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
-    case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+    case OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
     case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
-    case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
-    case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
-    case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
-    case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
-    case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
     case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
     case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
     case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2274,7 +2232,7 @@
     case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
     case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
     case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+    case OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
     case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
     case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
     case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index f1fd764..51e9024 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -49,12 +49,12 @@
 
 typedef unsigned int Id;
 
-#define SPV_VERSION 0x10600
-#define SPV_REVISION 1
+#define SPV_VERSION 0x10500
+#define SPV_REVISION 4
 
 static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010600;
-static const unsigned int Revision = 1;
+static const unsigned int Version = 0x00010500;
+static const unsigned int Revision = 4;
 static const unsigned int OpCodeMask = 0xffff;
 static const unsigned int WordCountShift = 16;
 
@@ -353,8 +353,6 @@
     VolatileTexelKHR = 11,
     SignExtend = 12,
     ZeroExtend = 13,
-    Nontemporal = 14,
-    Offsets = 16,
     Max = 0x7fffffff,
 };
 
@@ -378,8 +376,6 @@
     VolatileTexelKHR = 0x00000800,
     SignExtend = 0x00001000,
     ZeroExtend = 0x00002000,
-    Nontemporal = 0x00004000,
-    Offsets = 0x00010000,
 };
 
 enum class FPFastMathModeShift : unsigned {
@@ -496,7 +492,6 @@
     PerPrimitiveNV = 5271,
     PerViewNV = 5272,
     PerTaskNV = 5273,
-    PerVertexKHR = 5285,
     PerVertexNV = 5285,
     NonUniform = 5300,
     NonUniformEXT = 5300,
@@ -504,10 +499,6 @@
     RestrictPointerEXT = 5355,
     AliasedPointer = 5356,
     AliasedPointerEXT = 5356,
-    BindlessSamplerNV = 5398,
-    BindlessImageNV = 5399,
-    BoundSamplerNV = 5400,
-    BoundImageNV = 5401,
     SIMTCallINTEL = 5599,
     ReferencedIndirectlyINTEL = 5602,
     ClobberINTEL = 5607,
@@ -547,7 +538,6 @@
     FunctionFloatingPointModeINTEL = 6080,
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
-    MediaBlockIOINTEL = 6140,
     Max = 0x7fffffff,
 };
 
@@ -632,9 +622,7 @@
     LayerPerViewNV = 5279,
     MeshViewCountNV = 5280,
     MeshViewIndicesNV = 5281,
-    BaryCoordKHR = 5286,
     BaryCoordNV = 5286,
-    BaryCoordNoPerspKHR = 5287,
     BaryCoordNoPerspNV = 5287,
     FragSizeEXT = 5292,
     FragmentSizeNV = 5292,
@@ -926,7 +914,6 @@
     GroupNonUniformQuad = 68,
     ShaderLayer = 69,
     ShaderViewportIndex = 70,
-    UniformDecoration = 71,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -975,7 +962,6 @@
     FragmentFullyCoveredEXT = 5265,
     MeshShadingNV = 5266,
     ImageFootprintNV = 5282,
-    FragmentBarycentricKHR = 5284,
     FragmentBarycentricNV = 5284,
     ComputeDerivativeGroupQuadsNV = 5288,
     FragmentDensityEXT = 5291,
@@ -1020,9 +1006,7 @@
     FragmentShaderShadingRateInterlockEXT = 5372,
     ShaderSMBuiltinsNV = 5373,
     FragmentShaderPixelInterlockEXT = 5378,
-    DemoteToHelperInvocation = 5379,
     DemoteToHelperInvocationEXT = 5379,
-    BindlessTextureNV = 5390,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1061,13 +1045,9 @@
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
-    DotProductInputAll = 6016,
     DotProductInputAllKHR = 6016,
-    DotProductInput4x8Bit = 6017,
     DotProductInput4x8BitKHR = 6017,
-    DotProductInput4x8BitPacked = 6018,
     DotProductInput4x8BitPackedKHR = 6018,
-    DotProduct = 6019,
     DotProductKHR = 6019,
     BitInstructions = 6025,
     AtomicFloat32AddEXT = 6033,
@@ -1175,7 +1155,6 @@
 };
 
 enum class PackedVectorFormat : unsigned {
-    PackedVectorFormat4x8Bit = 0,
     PackedVectorFormat4x8BitKHR = 0,
     Max = 0x7fffffff,
 };
@@ -1537,17 +1516,11 @@
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
-    OpSDot = 4450,
     OpSDotKHR = 4450,
-    OpUDot = 4451,
     OpUDotKHR = 4451,
-    OpSUDot = 4452,
     OpSUDotKHR = 4452,
-    OpSDotAccSat = 4453,
     OpSDotAccSatKHR = 4453,
-    OpUDotAccSat = 4454,
     OpUDotAccSatKHR = 4454,
-    OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
@@ -1587,16 +1560,8 @@
     OpCooperativeMatrixLengthNV = 5362,
     OpBeginInvocationInterlockEXT = 5364,
     OpEndInvocationInterlockEXT = 5365,
-    OpDemoteToHelperInvocation = 5380,
     OpDemoteToHelperInvocationEXT = 5380,
     OpIsHelperInvocationEXT = 5381,
-    OpConvertUToImageNV = 5391,
-    OpConvertUToSamplerNV = 5392,
-    OpConvertImageToUNV = 5393,
-    OpConvertSamplerToUNV = 5394,
-    OpConvertUToSampledImageNV = 5395,
-    OpConvertSampledImageToUNV = 5396,
-    OpSamplerImageAddressingModeNV = 5397,
     OpSubgroupShuffleINTEL = 5571,
     OpSubgroupShuffleDownINTEL = 5572,
     OpSubgroupShuffleUpINTEL = 5573,
@@ -1621,7 +1586,7 @@
     OpUSubSatINTEL = 5596,
     OpIMul32x16INTEL = 5597,
     OpUMul32x16INTEL = 5598,
-    OpConstantFunctionPointerINTEL = 5600,
+    OpConstFunctionPointerINTEL = 5600,
     OpFunctionPointerCallINTEL = 5601,
     OpAsmTargetINTEL = 5609,
     OpAsmINTEL = 5610,
@@ -2199,12 +2164,12 @@
     case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
     case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
     case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
-    case Op::OpSDot: *hasResult = true; *hasResultType = true; break;
-    case Op::OpUDot: *hasResult = true; *hasResultType = true; break;
-    case Op::OpSUDot: *hasResult = true; *hasResultType = true; break;
-    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::OpSDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSUDotKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
+    case Op::OpSUDotAccSatKHR: *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;
@@ -2241,15 +2206,8 @@
     case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
     case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
     case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
-    case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
+    case Op::OpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
     case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
-    case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
     case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
@@ -2274,7 +2232,7 @@
     case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
-    case Op::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
+    case Op::OpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
     case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index e80d3bd..017b842 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -54,8 +54,8 @@
                 ]
             ],
             "MagicNumber": 119734787,
-            "Version": 67072,
-            "Revision": 1,
+            "Version": 66816,
+            "Revision": 4,
             "OpCodeMask": 65535,
             "WordCountShift": 16
         },
@@ -395,9 +395,7 @@
                     "VolatileTexel": 11,
                     "VolatileTexelKHR": 11,
                     "SignExtend": 12,
-                    "ZeroExtend": 13,
-                    "Nontemporal": 14,
-                    "Offsets": 16
+                    "ZeroExtend": 13
                 }
             },
             {
@@ -522,7 +520,6 @@
                     "PerPrimitiveNV": 5271,
                     "PerViewNV": 5272,
                     "PerTaskNV": 5273,
-                    "PerVertexKHR": 5285,
                     "PerVertexNV": 5285,
                     "NonUniform": 5300,
                     "NonUniformEXT": 5300,
@@ -530,10 +527,6 @@
                     "RestrictPointerEXT": 5355,
                     "AliasedPointer": 5356,
                     "AliasedPointerEXT": 5356,
-                    "BindlessSamplerNV": 5398,
-                    "BindlessImageNV": 5399,
-                    "BoundSamplerNV": 5400,
-                    "BoundImageNV": 5401,
                     "SIMTCallINTEL": 5599,
                     "ReferencedIndirectlyINTEL": 5602,
                     "ClobberINTEL": 5607,
@@ -572,8 +565,7 @@
                     "IOPipeStorageINTEL": 5944,
                     "FunctionFloatingPointModeINTEL": 6080,
                     "SingleElementVectorINTEL": 6085,
-                    "VectorComputeCallableFunctionINTEL": 6087,
-                    "MediaBlockIOINTEL": 6140
+                    "VectorComputeCallableFunctionINTEL": 6087
                 }
             },
             {
@@ -661,9 +653,7 @@
                     "LayerPerViewNV": 5279,
                     "MeshViewCountNV": 5280,
                     "MeshViewIndicesNV": 5281,
-                    "BaryCoordKHR": 5286,
                     "BaryCoordNV": 5286,
-                    "BaryCoordNoPerspKHR": 5287,
                     "BaryCoordNoPerspNV": 5287,
                     "FragSizeEXT": 5292,
                     "FragmentSizeNV": 5292,
@@ -910,7 +900,6 @@
                     "GroupNonUniformQuad": 68,
                     "ShaderLayer": 69,
                     "ShaderViewportIndex": 70,
-                    "UniformDecoration": 71,
                     "FragmentShadingRateKHR": 4422,
                     "SubgroupBallotKHR": 4423,
                     "DrawParameters": 4427,
@@ -959,7 +948,6 @@
                     "FragmentFullyCoveredEXT": 5265,
                     "MeshShadingNV": 5266,
                     "ImageFootprintNV": 5282,
-                    "FragmentBarycentricKHR": 5284,
                     "FragmentBarycentricNV": 5284,
                     "ComputeDerivativeGroupQuadsNV": 5288,
                     "FragmentDensityEXT": 5291,
@@ -1004,9 +992,7 @@
                     "FragmentShaderShadingRateInterlockEXT": 5372,
                     "ShaderSMBuiltinsNV": 5373,
                     "FragmentShaderPixelInterlockEXT": 5378,
-                    "DemoteToHelperInvocation": 5379,
                     "DemoteToHelperInvocationEXT": 5379,
-                    "BindlessTextureNV": 5390,
                     "SubgroupShuffleINTEL": 5568,
                     "SubgroupBufferBlockIOINTEL": 5569,
                     "SubgroupImageBlockIOINTEL": 5570,
@@ -1045,13 +1031,9 @@
                     "IOPipesINTEL": 5943,
                     "BlockingPipesINTEL": 5945,
                     "FPGARegINTEL": 5948,
-                    "DotProductInputAll": 6016,
                     "DotProductInputAllKHR": 6016,
-                    "DotProductInput4x8Bit": 6017,
                     "DotProductInput4x8BitKHR": 6017,
-                    "DotProductInput4x8BitPacked": 6018,
                     "DotProductInput4x8BitPackedKHR": 6018,
-                    "DotProduct": 6019,
                     "DotProductKHR": 6019,
                     "BitInstructions": 6025,
                     "AtomicFloat32AddEXT": 6033,
@@ -1167,7 +1149,6 @@
                 "Type": "Value",
                 "Values":
                 {
-                    "PackedVectorFormat4x8Bit": 0,
                     "PackedVectorFormat4x8BitKHR": 0
                 }
             },
@@ -1532,17 +1513,11 @@
                     "OpConvertUToAccelerationStructureKHR": 4447,
                     "OpIgnoreIntersectionKHR": 4448,
                     "OpTerminateRayKHR": 4449,
-                    "OpSDot": 4450,
                     "OpSDotKHR": 4450,
-                    "OpUDot": 4451,
                     "OpUDotKHR": 4451,
-                    "OpSUDot": 4452,
                     "OpSUDotKHR": 4452,
-                    "OpSDotAccSat": 4453,
                     "OpSDotAccSatKHR": 4453,
-                    "OpUDotAccSat": 4454,
                     "OpUDotAccSatKHR": 4454,
-                    "OpSUDotAccSat": 4455,
                     "OpSUDotAccSatKHR": 4455,
                     "OpTypeRayQueryKHR": 4472,
                     "OpRayQueryInitializeKHR": 4473,
@@ -1582,16 +1557,8 @@
                     "OpCooperativeMatrixLengthNV": 5362,
                     "OpBeginInvocationInterlockEXT": 5364,
                     "OpEndInvocationInterlockEXT": 5365,
-                    "OpDemoteToHelperInvocation": 5380,
                     "OpDemoteToHelperInvocationEXT": 5380,
                     "OpIsHelperInvocationEXT": 5381,
-                    "OpConvertUToImageNV": 5391,
-                    "OpConvertUToSamplerNV": 5392,
-                    "OpConvertImageToUNV": 5393,
-                    "OpConvertSamplerToUNV": 5394,
-                    "OpConvertUToSampledImageNV": 5395,
-                    "OpConvertSampledImageToUNV": 5396,
-                    "OpSamplerImageAddressingModeNV": 5397,
                     "OpSubgroupShuffleINTEL": 5571,
                     "OpSubgroupShuffleDownINTEL": 5572,
                     "OpSubgroupShuffleUpINTEL": 5573,
@@ -1616,7 +1583,7 @@
                     "OpUSubSatINTEL": 5596,
                     "OpIMul32x16INTEL": 5597,
                     "OpUMul32x16INTEL": 5598,
-                    "OpConstantFunctionPointerINTEL": 5600,
+                    "OpConstFunctionPointerINTEL": 5600,
                     "OpFunctionPointerCallINTEL": 5601,
                     "OpAsmTargetINTEL": 5609,
                     "OpAsmINTEL": 5610,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 2f5e803..46665d8 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -44,8 +44,8 @@
 
 spv = {
     MagicNumber = 0x07230203,
-    Version = 0x00010600,
-    Revision = 1,
+    Version = 0x00010500,
+    Revision = 4,
     OpCodeMask = 0xffff,
     WordCountShift = 16,
 
@@ -332,8 +332,6 @@
         VolatileTexelKHR = 11,
         SignExtend = 12,
         ZeroExtend = 13,
-        Nontemporal = 14,
-        Offsets = 16,
     },
 
     ImageOperandsMask = {
@@ -356,8 +354,6 @@
         VolatileTexelKHR = 0x00000800,
         SignExtend = 0x00001000,
         ZeroExtend = 0x00002000,
-        Nontemporal = 0x00004000,
-        Offsets = 0x00010000,
     },
 
     FPFastMathModeShift = {
@@ -469,7 +465,6 @@
         PerPrimitiveNV = 5271,
         PerViewNV = 5272,
         PerTaskNV = 5273,
-        PerVertexKHR = 5285,
         PerVertexNV = 5285,
         NonUniform = 5300,
         NonUniformEXT = 5300,
@@ -477,10 +472,6 @@
         RestrictPointerEXT = 5355,
         AliasedPointer = 5356,
         AliasedPointerEXT = 5356,
-        BindlessSamplerNV = 5398,
-        BindlessImageNV = 5399,
-        BoundSamplerNV = 5400,
-        BoundImageNV = 5401,
         SIMTCallINTEL = 5599,
         ReferencedIndirectlyINTEL = 5602,
         ClobberINTEL = 5607,
@@ -520,7 +511,6 @@
         FunctionFloatingPointModeINTEL = 6080,
         SingleElementVectorINTEL = 6085,
         VectorComputeCallableFunctionINTEL = 6087,
-        MediaBlockIOINTEL = 6140,
     },
 
     BuiltIn = {
@@ -604,9 +594,7 @@
         LayerPerViewNV = 5279,
         MeshViewCountNV = 5280,
         MeshViewIndicesNV = 5281,
-        BaryCoordKHR = 5286,
         BaryCoordNV = 5286,
-        BaryCoordNoPerspKHR = 5287,
         BaryCoordNoPerspNV = 5287,
         FragSizeEXT = 5292,
         FragmentSizeNV = 5292,
@@ -888,7 +876,6 @@
         GroupNonUniformQuad = 68,
         ShaderLayer = 69,
         ShaderViewportIndex = 70,
-        UniformDecoration = 71,
         FragmentShadingRateKHR = 4422,
         SubgroupBallotKHR = 4423,
         DrawParameters = 4427,
@@ -937,7 +924,6 @@
         FragmentFullyCoveredEXT = 5265,
         MeshShadingNV = 5266,
         ImageFootprintNV = 5282,
-        FragmentBarycentricKHR = 5284,
         FragmentBarycentricNV = 5284,
         ComputeDerivativeGroupQuadsNV = 5288,
         FragmentDensityEXT = 5291,
@@ -982,9 +968,7 @@
         FragmentShaderShadingRateInterlockEXT = 5372,
         ShaderSMBuiltinsNV = 5373,
         FragmentShaderPixelInterlockEXT = 5378,
-        DemoteToHelperInvocation = 5379,
         DemoteToHelperInvocationEXT = 5379,
-        BindlessTextureNV = 5390,
         SubgroupShuffleINTEL = 5568,
         SubgroupBufferBlockIOINTEL = 5569,
         SubgroupImageBlockIOINTEL = 5570,
@@ -1023,13 +1007,9 @@
         IOPipesINTEL = 5943,
         BlockingPipesINTEL = 5945,
         FPGARegINTEL = 5948,
-        DotProductInputAll = 6016,
         DotProductInputAllKHR = 6016,
-        DotProductInput4x8Bit = 6017,
         DotProductInput4x8BitKHR = 6017,
-        DotProductInput4x8BitPacked = 6018,
         DotProductInput4x8BitPackedKHR = 6018,
-        DotProduct = 6019,
         DotProductKHR = 6019,
         BitInstructions = 6025,
         AtomicFloat32AddEXT = 6033,
@@ -1127,7 +1107,6 @@
     },
 
     PackedVectorFormat = {
-        PackedVectorFormat4x8Bit = 0,
         PackedVectorFormat4x8BitKHR = 0,
     },
 
@@ -1488,17 +1467,11 @@
         OpConvertUToAccelerationStructureKHR = 4447,
         OpIgnoreIntersectionKHR = 4448,
         OpTerminateRayKHR = 4449,
-        OpSDot = 4450,
         OpSDotKHR = 4450,
-        OpUDot = 4451,
         OpUDotKHR = 4451,
-        OpSUDot = 4452,
         OpSUDotKHR = 4452,
-        OpSDotAccSat = 4453,
         OpSDotAccSatKHR = 4453,
-        OpUDotAccSat = 4454,
         OpUDotAccSatKHR = 4454,
-        OpSUDotAccSat = 4455,
         OpSUDotAccSatKHR = 4455,
         OpTypeRayQueryKHR = 4472,
         OpRayQueryInitializeKHR = 4473,
@@ -1538,16 +1511,8 @@
         OpCooperativeMatrixLengthNV = 5362,
         OpBeginInvocationInterlockEXT = 5364,
         OpEndInvocationInterlockEXT = 5365,
-        OpDemoteToHelperInvocation = 5380,
         OpDemoteToHelperInvocationEXT = 5380,
         OpIsHelperInvocationEXT = 5381,
-        OpConvertUToImageNV = 5391,
-        OpConvertUToSamplerNV = 5392,
-        OpConvertImageToUNV = 5393,
-        OpConvertSamplerToUNV = 5394,
-        OpConvertUToSampledImageNV = 5395,
-        OpConvertSampledImageToUNV = 5396,
-        OpSamplerImageAddressingModeNV = 5397,
         OpSubgroupShuffleINTEL = 5571,
         OpSubgroupShuffleDownINTEL = 5572,
         OpSubgroupShuffleUpINTEL = 5573,
@@ -1572,7 +1537,7 @@
         OpUSubSatINTEL = 5596,
         OpIMul32x16INTEL = 5597,
         OpUMul32x16INTEL = 5598,
-        OpConstantFunctionPointerINTEL = 5600,
+        OpConstFunctionPointerINTEL = 5600,
         OpFunctionPointerCallINTEL = 5601,
         OpAsmTargetINTEL = 5609,
         OpAsmINTEL = 5610,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 7aee89f..a780191 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -44,8 +44,8 @@
 
 spv = {
     'MagicNumber' : 0x07230203,
-    'Version' : 0x00010600,
-    'Revision' : 1,
+    'Version' : 0x00010500,
+    'Revision' : 4,
     'OpCodeMask' : 0xffff,
     'WordCountShift' : 16,
 
@@ -332,8 +332,6 @@
         'VolatileTexelKHR' : 11,
         'SignExtend' : 12,
         'ZeroExtend' : 13,
-        'Nontemporal' : 14,
-        'Offsets' : 16,
     },
 
     'ImageOperandsMask' : {
@@ -356,8 +354,6 @@
         'VolatileTexelKHR' : 0x00000800,
         'SignExtend' : 0x00001000,
         'ZeroExtend' : 0x00002000,
-        'Nontemporal' : 0x00004000,
-        'Offsets' : 0x00010000,
     },
 
     'FPFastMathModeShift' : {
@@ -469,7 +465,6 @@
         'PerPrimitiveNV' : 5271,
         'PerViewNV' : 5272,
         'PerTaskNV' : 5273,
-        'PerVertexKHR' : 5285,
         'PerVertexNV' : 5285,
         'NonUniform' : 5300,
         'NonUniformEXT' : 5300,
@@ -477,10 +472,6 @@
         'RestrictPointerEXT' : 5355,
         'AliasedPointer' : 5356,
         'AliasedPointerEXT' : 5356,
-        'BindlessSamplerNV' : 5398,
-        'BindlessImageNV' : 5399,
-        'BoundSamplerNV' : 5400,
-        'BoundImageNV' : 5401,
         'SIMTCallINTEL' : 5599,
         'ReferencedIndirectlyINTEL' : 5602,
         'ClobberINTEL' : 5607,
@@ -520,7 +511,6 @@
         'FunctionFloatingPointModeINTEL' : 6080,
         'SingleElementVectorINTEL' : 6085,
         'VectorComputeCallableFunctionINTEL' : 6087,
-        'MediaBlockIOINTEL' : 6140,
     },
 
     'BuiltIn' : {
@@ -604,9 +594,7 @@
         'LayerPerViewNV' : 5279,
         'MeshViewCountNV' : 5280,
         'MeshViewIndicesNV' : 5281,
-        'BaryCoordKHR' : 5286,
         'BaryCoordNV' : 5286,
-        'BaryCoordNoPerspKHR' : 5287,
         'BaryCoordNoPerspNV' : 5287,
         'FragSizeEXT' : 5292,
         'FragmentSizeNV' : 5292,
@@ -888,7 +876,6 @@
         'GroupNonUniformQuad' : 68,
         'ShaderLayer' : 69,
         'ShaderViewportIndex' : 70,
-        'UniformDecoration' : 71,
         'FragmentShadingRateKHR' : 4422,
         'SubgroupBallotKHR' : 4423,
         'DrawParameters' : 4427,
@@ -937,7 +924,6 @@
         'FragmentFullyCoveredEXT' : 5265,
         'MeshShadingNV' : 5266,
         'ImageFootprintNV' : 5282,
-        'FragmentBarycentricKHR' : 5284,
         'FragmentBarycentricNV' : 5284,
         'ComputeDerivativeGroupQuadsNV' : 5288,
         'FragmentDensityEXT' : 5291,
@@ -982,9 +968,7 @@
         'FragmentShaderShadingRateInterlockEXT' : 5372,
         'ShaderSMBuiltinsNV' : 5373,
         'FragmentShaderPixelInterlockEXT' : 5378,
-        'DemoteToHelperInvocation' : 5379,
         'DemoteToHelperInvocationEXT' : 5379,
-        'BindlessTextureNV' : 5390,
         'SubgroupShuffleINTEL' : 5568,
         'SubgroupBufferBlockIOINTEL' : 5569,
         'SubgroupImageBlockIOINTEL' : 5570,
@@ -1023,13 +1007,9 @@
         'IOPipesINTEL' : 5943,
         'BlockingPipesINTEL' : 5945,
         'FPGARegINTEL' : 5948,
-        'DotProductInputAll' : 6016,
         'DotProductInputAllKHR' : 6016,
-        'DotProductInput4x8Bit' : 6017,
         'DotProductInput4x8BitKHR' : 6017,
-        'DotProductInput4x8BitPacked' : 6018,
         'DotProductInput4x8BitPackedKHR' : 6018,
-        'DotProduct' : 6019,
         'DotProductKHR' : 6019,
         'BitInstructions' : 6025,
         'AtomicFloat32AddEXT' : 6033,
@@ -1127,7 +1107,6 @@
     },
 
     'PackedVectorFormat' : {
-        'PackedVectorFormat4x8Bit' : 0,
         'PackedVectorFormat4x8BitKHR' : 0,
     },
 
@@ -1488,17 +1467,11 @@
         'OpConvertUToAccelerationStructureKHR' : 4447,
         'OpIgnoreIntersectionKHR' : 4448,
         'OpTerminateRayKHR' : 4449,
-        'OpSDot' : 4450,
         'OpSDotKHR' : 4450,
-        'OpUDot' : 4451,
         'OpUDotKHR' : 4451,
-        'OpSUDot' : 4452,
         'OpSUDotKHR' : 4452,
-        'OpSDotAccSat' : 4453,
         'OpSDotAccSatKHR' : 4453,
-        'OpUDotAccSat' : 4454,
         'OpUDotAccSatKHR' : 4454,
-        'OpSUDotAccSat' : 4455,
         'OpSUDotAccSatKHR' : 4455,
         'OpTypeRayQueryKHR' : 4472,
         'OpRayQueryInitializeKHR' : 4473,
@@ -1538,16 +1511,8 @@
         'OpCooperativeMatrixLengthNV' : 5362,
         'OpBeginInvocationInterlockEXT' : 5364,
         'OpEndInvocationInterlockEXT' : 5365,
-        'OpDemoteToHelperInvocation' : 5380,
         'OpDemoteToHelperInvocationEXT' : 5380,
         'OpIsHelperInvocationEXT' : 5381,
-        'OpConvertUToImageNV' : 5391,
-        'OpConvertUToSamplerNV' : 5392,
-        'OpConvertImageToUNV' : 5393,
-        'OpConvertSamplerToUNV' : 5394,
-        'OpConvertUToSampledImageNV' : 5395,
-        'OpConvertSampledImageToUNV' : 5396,
-        'OpSamplerImageAddressingModeNV' : 5397,
         'OpSubgroupShuffleINTEL' : 5571,
         'OpSubgroupShuffleDownINTEL' : 5572,
         'OpSubgroupShuffleUpINTEL' : 5573,
@@ -1572,7 +1537,7 @@
         'OpUSubSatINTEL' : 5596,
         'OpIMul32x16INTEL' : 5597,
         'OpUMul32x16INTEL' : 5598,
-        'OpConstantFunctionPointerINTEL' : 5600,
+        'OpConstFunctionPointerINTEL' : 5600,
         'OpFunctionPointerCallINTEL' : 5601,
         'OpAsmTargetINTEL' : 5609,
         'OpAsmINTEL' : 5610,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index a17e63d..b85517a 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -51,8 +51,8 @@
 module spv;
 
 enum uint MagicNumber = 0x07230203;
-enum uint Version = 0x00010600;
-enum uint Revision = 1;
+enum uint Version = 0x00010500;
+enum uint Revision = 4;
 enum uint OpCodeMask = 0xffff;
 enum uint WordCountShift = 16;
 
@@ -352,8 +352,6 @@
     VolatileTexelKHR = 11,
     SignExtend = 12,
     ZeroExtend = 13,
-    Nontemporal = 14,
-    Offsets = 16,
 }
 
 enum ImageOperandsMask : uint
@@ -377,8 +375,6 @@
     VolatileTexelKHR = 0x00000800,
     SignExtend = 0x00001000,
     ZeroExtend = 0x00002000,
-    Nontemporal = 0x00004000,
-    Offsets = 0x00010000,
 }
 
 enum FPFastMathModeShift : uint
@@ -497,7 +493,6 @@
     PerPrimitiveNV = 5271,
     PerViewNV = 5272,
     PerTaskNV = 5273,
-    PerVertexKHR = 5285,
     PerVertexNV = 5285,
     NonUniform = 5300,
     NonUniformEXT = 5300,
@@ -505,10 +500,6 @@
     RestrictPointerEXT = 5355,
     AliasedPointer = 5356,
     AliasedPointerEXT = 5356,
-    BindlessSamplerNV = 5398,
-    BindlessImageNV = 5399,
-    BoundSamplerNV = 5400,
-    BoundImageNV = 5401,
     SIMTCallINTEL = 5599,
     ReferencedIndirectlyINTEL = 5602,
     ClobberINTEL = 5607,
@@ -548,7 +539,6 @@
     FunctionFloatingPointModeINTEL = 6080,
     SingleElementVectorINTEL = 6085,
     VectorComputeCallableFunctionINTEL = 6087,
-    MediaBlockIOINTEL = 6140,
 }
 
 enum BuiltIn : uint
@@ -633,9 +623,7 @@
     LayerPerViewNV = 5279,
     MeshViewCountNV = 5280,
     MeshViewIndicesNV = 5281,
-    BaryCoordKHR = 5286,
     BaryCoordNV = 5286,
-    BaryCoordNoPerspKHR = 5287,
     BaryCoordNoPerspNV = 5287,
     FragSizeEXT = 5292,
     FragmentSizeNV = 5292,
@@ -933,7 +921,6 @@
     GroupNonUniformQuad = 68,
     ShaderLayer = 69,
     ShaderViewportIndex = 70,
-    UniformDecoration = 71,
     FragmentShadingRateKHR = 4422,
     SubgroupBallotKHR = 4423,
     DrawParameters = 4427,
@@ -982,7 +969,6 @@
     FragmentFullyCoveredEXT = 5265,
     MeshShadingNV = 5266,
     ImageFootprintNV = 5282,
-    FragmentBarycentricKHR = 5284,
     FragmentBarycentricNV = 5284,
     ComputeDerivativeGroupQuadsNV = 5288,
     FragmentDensityEXT = 5291,
@@ -1027,9 +1013,7 @@
     FragmentShaderShadingRateInterlockEXT = 5372,
     ShaderSMBuiltinsNV = 5373,
     FragmentShaderPixelInterlockEXT = 5378,
-    DemoteToHelperInvocation = 5379,
     DemoteToHelperInvocationEXT = 5379,
-    BindlessTextureNV = 5390,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
     SubgroupImageBlockIOINTEL = 5570,
@@ -1068,13 +1052,9 @@
     IOPipesINTEL = 5943,
     BlockingPipesINTEL = 5945,
     FPGARegINTEL = 5948,
-    DotProductInputAll = 6016,
     DotProductInputAllKHR = 6016,
-    DotProductInput4x8Bit = 6017,
     DotProductInput4x8BitKHR = 6017,
-    DotProductInput4x8BitPacked = 6018,
     DotProductInput4x8BitPackedKHR = 6018,
-    DotProduct = 6019,
     DotProductKHR = 6019,
     BitInstructions = 6025,
     AtomicFloat32AddEXT = 6033,
@@ -1184,7 +1164,6 @@
 
 enum PackedVectorFormat : uint
 {
-    PackedVectorFormat4x8Bit = 0,
     PackedVectorFormat4x8BitKHR = 0,
 }
 
@@ -1546,17 +1525,11 @@
     OpConvertUToAccelerationStructureKHR = 4447,
     OpIgnoreIntersectionKHR = 4448,
     OpTerminateRayKHR = 4449,
-    OpSDot = 4450,
     OpSDotKHR = 4450,
-    OpUDot = 4451,
     OpUDotKHR = 4451,
-    OpSUDot = 4452,
     OpSUDotKHR = 4452,
-    OpSDotAccSat = 4453,
     OpSDotAccSatKHR = 4453,
-    OpUDotAccSat = 4454,
     OpUDotAccSatKHR = 4454,
-    OpSUDotAccSat = 4455,
     OpSUDotAccSatKHR = 4455,
     OpTypeRayQueryKHR = 4472,
     OpRayQueryInitializeKHR = 4473,
@@ -1596,16 +1569,8 @@
     OpCooperativeMatrixLengthNV = 5362,
     OpBeginInvocationInterlockEXT = 5364,
     OpEndInvocationInterlockEXT = 5365,
-    OpDemoteToHelperInvocation = 5380,
     OpDemoteToHelperInvocationEXT = 5380,
     OpIsHelperInvocationEXT = 5381,
-    OpConvertUToImageNV = 5391,
-    OpConvertUToSamplerNV = 5392,
-    OpConvertImageToUNV = 5393,
-    OpConvertSamplerToUNV = 5394,
-    OpConvertUToSampledImageNV = 5395,
-    OpConvertSampledImageToUNV = 5396,
-    OpSamplerImageAddressingModeNV = 5397,
     OpSubgroupShuffleINTEL = 5571,
     OpSubgroupShuffleDownINTEL = 5572,
     OpSubgroupShuffleUpINTEL = 5573,
@@ -1630,7 +1595,7 @@
     OpUSubSatINTEL = 5596,
     OpIMul32x16INTEL = 5597,
     OpUMul32x16INTEL = 5598,
-    OpConstantFunctionPointerINTEL = 5600,
+    OpConstFunctionPointerINTEL = 5600,
     OpFunctionPointerCallINTEL = 5601,
     OpAsmTargetINTEL = 5609,
     OpAsmINTEL = 5610,
diff --git a/tools/buildHeaders/header.cpp b/tools/buildHeaders/header.cpp
index febc6f2..dc780ef 100644
--- a/tools/buildHeaders/header.cpp
+++ b/tools/buildHeaders/header.cpp
@@ -69,9 +69,9 @@
         TPrinter();
 
         static const int         DocMagicNumber = 0x07230203;
-        static const int         DocVersion     = 0x00010600;
-        static const int         DocRevision    = 1;
-        #define DocRevisionString                "1"
+        static const int         DocVersion     = 0x00010500;
+        static const int         DocRevision    = 4;
+        #define DocRevisionString                "4"
         static const std::string DocCopyright;
         static const std::string DocComment1;
         static const std::string DocComment2;