Revert "Merge remote-tracking branch 'aosp/upstream-master' into..."

Revert submission 2388945-update-shaderc

Reason for revert: Breaks NDK build on darwin.

Reverted changes: /q/submissionid:2388945-update-shaderc

Change-Id: I7e65acd5f2a56fdd82f921a7cdce50e24c68e553
diff --git a/Android.mk b/Android.mk
index 8e2fac0..40cddb7 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2023 The Khronos Group Inc.
+# Copyright (C) 2020 The Khronos Group Inc.
 #
 # All rights reserved.
 #
@@ -53,7 +53,7 @@
 
 GLSLANG_OS_FLAGS := -DGLSLANG_OSINCLUDE_UNIX
 # AMD and NV extensions are turned on by default in upstream Glslang.
-GLSLANG_DEFINES:= -DENABLE_HLSL $(GLSLANG_OS_FLAGS)
+GLSLANG_DEFINES:= -DAMD_EXTENSIONS -DNV_EXTENSIONS -DENABLE_HLSL $(GLSLANG_OS_FLAGS)
 
 include $(CLEAR_VARS)
 LOCAL_MODULE:=OSDependent
diff --git a/BUILD.bazel b/BUILD.bazel
index 8dd76e0..12168fa 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2023 The Khronos Group Inc.
+# Copyright (C) 2020 The Khronos Group Inc.
 #
 # All rights reserved.
 #
@@ -125,8 +125,10 @@
     ],
     copts = COMMON_COPTS,
     defines = [
+        "AMD_EXTENSIONS",
         "ENABLE_HLSL=0",
         "ENABLE_OPT=0",
+        "NV_EXTENSIONS",
     ],
     linkopts = select({
         "@bazel_tools//src/conditions:windows": [""],
@@ -142,7 +144,6 @@
         "SPIRV/GLSL.ext.EXT.h",
         "SPIRV/GLSL.ext.KHR.h",
         "SPIRV/GLSL.ext.NV.h",
-        "SPIRV/GLSL.ext.ARM.h",
         "SPIRV/GLSL.std.450.h",
         "SPIRV/NonSemanticDebugPrintf.h",
         "SPIRV/NonSemanticShaderDebugInfo100.h",
@@ -153,7 +154,6 @@
         "include/SPIRV/GLSL.ext.EXT.h",
         "include/SPIRV/GLSL.ext.KHR.h",
         "include/SPIRV/GLSL.ext.NV.h",
-        "include/SPIRV/GLSL.ext.ARM.h",
         "include/SPIRV/GLSL.std.450.h",
         "include/SPIRV/NonSemanticDebugPrintf.h",
         "include/SPIRV/NonSemanticShaderDebugInfo100.h",
@@ -210,7 +210,7 @@
 cc_library(
     name = "glslang-default-resource-limits",
     srcs = ["StandAlone/ResourceLimits.cpp"],
-    hdrs = ["glslang/Public/ResourceLimits.h"],
+    hdrs = ["StandAlone/ResourceLimits.h"],
     copts = COMMON_COPTS,
     linkstatic = 1,
     deps = [":glslang"],
diff --git a/BUILD.gn b/BUILD.gn
index 0aacbf5..29328d4 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -96,6 +96,9 @@
 }
 
 spirv_tools_dir = glslang_spirv_tools_dir
+if (!defined(glslang_angle)) {
+  glslang_angle = false
+}
 
 config("glslang_public") {
   include_dirs = [ "." ]
@@ -123,7 +126,6 @@
       "SPIRV/GLSL.ext.EXT.h",
       "SPIRV/GLSL.ext.KHR.h",
       "SPIRV/GLSL.ext.NV.h",
-      "SPIRV/GLSL.ext.ARM.h",
       "SPIRV/GLSL.std.450.h",
       "SPIRV/GlslangToSpv.cpp",
       "SPIRV/GlslangToSpv.h",
@@ -240,6 +242,9 @@
       sources += [ "SPIRV/SpvTools.cpp" ]
       defines += [ "ENABLE_OPT=1" ]
     }
+    if (invoker.is_angle) {
+      defines += [ "GLSLANG_ANGLE" ]
+    }
 
     if (is_win) {
       sources += [ "glslang/OSDependent/Windows/ossource.cpp" ]
@@ -288,19 +293,21 @@
 }
 
 glslang_sources_common("glslang_lib_sources") {
-  enable_opt = true
-  enable_hlsl = true
+  enable_opt = !glslang_angle
+  enable_hlsl = !glslang_angle
+  is_angle = glslang_angle
 }
 
 glslang_sources_common("glslang_sources") {
   enable_opt = true
   enable_hlsl = true
+  is_angle = false
 }
 
 source_set("glslang_default_resource_limits_sources") {
   sources = [
     "StandAlone/ResourceLimits.cpp",
-    "glslang/Public/ResourceLimits.h",
+    "StandAlone/ResourceLimits.h",
     "glslang/Include/ResourceLimits.h",
   ]
   public_configs = [ ":glslang_public" ]
diff --git a/CHANGES.md b/CHANGES.md
index aee747f..292147c 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,24 +3,6 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](https://semver.org/).
 
-## 11.13.0 2022-12-06
-
-### Other changes
-* Make HelperInvocation accesses volatile for SPIR-V 1.6.
-* Improve forward compatibility of ResourceLimits interface 
-* Remove GLSLANG_ANGLE
-
-## 11.12.0 2022-10-12
-
-### Other changes
-* Update generator version
-* Add support for GL_EXT_mesh_shader
-* Add support for NonSemantic.Shader.DebugInfo.100
-* Make OpEmitMeshTasksEXT a terminal instruction
-* Make gl_SubGroupARB a flat in int in Vulkan
-* Add support for GL_EXT_opacity_micromap
-* Add preamble support to C interface
-
 ## 11.11.0 2022-08-11
 
 ### Other changes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e93ba45..b581c84 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,7 +41,7 @@
   cmake_policy(SET CMP0054 NEW)
 endif()
 
-project(glslang)
+project(glslang LANGUAGES CXX)
 
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
@@ -192,10 +192,10 @@
         # Error if there's symbols that are not found at link time.
         # add_link_options() was added in CMake 3.13 - if using an earlier
         # version don't set this - it should be caught by presubmits anyway.
-        if (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
-            add_link_options("-Wl,-undefined,error")
-        else()
+        if (WIN32)
             add_link_options("-Wl,--no-undefined")
+        else()
+            add_link_options("-Wl,-undefined,error")
         endif()
     endif()
 elseif(MSVC)
@@ -402,4 +402,4 @@
         DESTINATION
             "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
     )
-endif()
+endif()
\ No newline at end of file
diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt
index 33f16b0..b44cbc7 100644
--- a/OGLCompilersDLL/CMakeLists.txt
+++ b/OGLCompilersDLL/CMakeLists.txt
@@ -49,7 +49,7 @@
         message(WARNING \"Using `OGLCompilerTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::OGLCompiler)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(OGLCompiler ALIAS glslang::OGLCompiler)
diff --git a/OGLCompilersDLL/InitializeDll.cpp b/OGLCompilersDLL/InitializeDll.cpp
index 9d81f57..abea910 100644
--- a/OGLCompilersDLL/InitializeDll.cpp
+++ b/OGLCompilersDLL/InitializeDll.cpp
@@ -102,7 +102,7 @@
         return false;
     }
 
-    if (OS_GetTLSValue(ThreadInitializeIndex) != nullptr)
+    if (OS_GetTLSValue(ThreadInitializeIndex) != 0)
         return true;
 
     if (! OS_SetTLSValue(ThreadInitializeIndex, (void *)1)) {
@@ -130,8 +130,8 @@
     //
     // Function is re-entrant and this thread may not have been initialized.
     //
-    if (OS_GetTLSValue(ThreadInitializeIndex) != nullptr) {
-        if (!OS_SetTLSValue(ThreadInitializeIndex, nullptr)) {
+    if (OS_GetTLSValue(ThreadInitializeIndex) != 0) {
+        if (!OS_SetTLSValue(ThreadInitializeIndex, (void *)0)) {
             assert(0 && "DetachThread(): Unable to clear init flag.");
             success = false;
         }
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
index 62ffbc4..2408e4c 100644
--- a/SPIRV/CMakeLists.txt
+++ b/SPIRV/CMakeLists.txt
@@ -62,7 +62,6 @@
     disassemble.h
     GLSL.ext.AMD.h
     GLSL.ext.NV.h
-    GLSL.ext.ARM.h
     NonSemanticDebugPrintf.h
     NonSemanticShaderDebugInfo100.h)
 
@@ -123,7 +122,7 @@
             message(WARNING \"Using `SPVRemapperTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
             if (NOT TARGET glslang::SPVRemapper)
-                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
             endif()
 
             add_library(SPVRemapper ALIAS glslang::SPVRemapper)
@@ -135,7 +134,7 @@
         message(WARNING \"Using `SPIRVTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::SPIRV)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(SPIRV ALIAS glslang::SPIRV)
diff --git a/SPIRV/GLSL.ext.ARM.h b/SPIRV/GLSL.ext.ARM.h
deleted file mode 100644
index 14425be..0000000
--- a/SPIRV/GLSL.ext.ARM.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-** Copyright (c) 2022 ARM Limited
-**
-** 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 GLSLextARM_H
-#define GLSLextARM_H
-
-static const int GLSLextARMVersion = 100;
-static const int GLSLextARMRevision = 1;
-
-static const char * const E_SPV_ARM_core_builtins = "SPV_ARM_core_builtins";
-
-#endif  // #ifndef GLSLextARM_H
diff --git a/SPIRV/GLSL.ext.NV.h b/SPIRV/GLSL.ext.NV.h
index 5b0f7eb..93c98bf 100644
--- a/SPIRV/GLSL.ext.NV.h
+++ b/SPIRV/GLSL.ext.NV.h
@@ -81,7 +81,4 @@
 //SPV_NV_shader_sm_builtins
 const char* const E_SPV_NV_shader_sm_builtins = "SPV_NV_shader_sm_builtins";
 
-//SPV_NV_shader_execution_reorder
-const char* const E_SPV_NV_shader_invocation_reorder = "SPV_NV_shader_invocation_reorder";
-
 #endif  // #ifndef GLSLextNV_H
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 378f792..601c872 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -49,7 +49,6 @@
     #include "GLSL.ext.EXT.h"
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
-    #include "GLSL.ext.ARM.h"
     #include "NonSemanticDebugPrintf.h"
 }
 
@@ -278,10 +277,12 @@
     // requiring local translation to and from SPIR-V type on every access.
     // Maps <builtin-variable-id -> AST-required-type-id>
     std::unordered_map<spv::Id, spv::Id> forceType;
+
+    // Used later for generating OpTraceKHR/OpExecuteCallableKHR
+    std::unordered_map<unsigned int, glslang::TIntermSymbol *> locationToSymbol[2];
+
     // Used by Task shader while generating opearnds for OpEmitMeshTasksEXT
     spv::Id taskPayloadID;
-    // Used later for generating OpTraceKHR/OpExecuteCallableKHR/OpHitObjectRecordHit*/OpHitObjectGetShaderBindingTableData
-    std::unordered_map<unsigned int, glslang::TIntermSymbol *> locationToSymbol[4];
 };
 
 //
@@ -293,6 +294,8 @@
 {
 #ifdef GLSLANG_WEB
     return spv::SourceLanguageESSL;
+#elif defined(GLSLANG_ANGLE)
+    return spv::SourceLanguageGLSL;
 #endif
 
     switch (source) {
@@ -390,7 +393,6 @@
         case glslang::EvqHitAttr:      return spv::DecorationBlock;
         case glslang::EvqCallableData:   return spv::DecorationBlock;
         case glslang::EvqCallableDataIn: return spv::DecorationBlock;
-        case glslang::EvqHitObjectAttrNV: return spv::DecorationBlock;
 #endif
         default:
             assert(0);
@@ -468,7 +470,6 @@
             case glslang::EvqHitAttr:
             case glslang::EvqCallableData:
             case glslang::EvqCallableDataIn:
-            case glslang::EvqHitObjectAttrNV:
                 return spv::DecorationMax;
 #endif
             default:
@@ -1107,28 +1108,6 @@
         builder.addExtension(spv::E_SPV_NV_shader_sm_builtins);
         builder.addCapability(spv::CapabilityShaderSMBuiltinsNV);
         return spv::BuiltInSMIDNV;
-
-   // ARM builtins
-    case glslang::EbvCoreCountARM:
-        builder.addExtension(spv::E_SPV_ARM_core_builtins);
-        builder.addCapability(spv::CapabilityCoreBuiltinsARM);
-        return spv::BuiltInCoreCountARM;
-    case glslang::EbvCoreIDARM:
-        builder.addExtension(spv::E_SPV_ARM_core_builtins);
-        builder.addCapability(spv::CapabilityCoreBuiltinsARM);
-        return spv::BuiltInCoreIDARM;
-    case glslang::EbvCoreMaxIDARM:
-        builder.addExtension(spv::E_SPV_ARM_core_builtins);
-        builder.addCapability(spv::CapabilityCoreBuiltinsARM);
-        return spv::BuiltInCoreMaxIDARM;
-    case glslang::EbvWarpIDARM:
-        builder.addExtension(spv::E_SPV_ARM_core_builtins);
-        builder.addCapability(spv::CapabilityCoreBuiltinsARM);
-        return spv::BuiltInWarpIDARM;
-    case glslang::EbvWarpMaxIDARM:
-        builder.addExtension(spv::E_SPV_ARM_core_builtins);
-        builder.addCapability(spv::CapabilityCoreBuiltinsARM);
-        return spv::BuiltInWarpMaxIDARM;
 #endif
 
     default:
@@ -1299,7 +1278,7 @@
 // Translate glslang type to SPIR-V storage class.
 spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::TType& type)
 {
-    if (type.getBasicType() == glslang::EbtRayQuery || type.getBasicType() == glslang::EbtHitObjectNV)
+    if (type.getBasicType() == glslang::EbtRayQuery)
         return spv::StorageClassPrivate;
 #ifndef GLSLANG_WEB
     if (type.getQualifier().isSpirvByReference()) {
@@ -1316,7 +1295,7 @@
             type.getQualifier().storage == glslang::EvqUniform) {
         if (type.isAtomic())
             return spv::StorageClassAtomicCounter;
-        if (type.containsOpaque() && !glslangIntermediate->getBindlessMode())
+        if (type.containsOpaque())
             return spv::StorageClassUniformConstant;
     }
 
@@ -1356,7 +1335,6 @@
     case glslang::EvqCallableData:   return spv::StorageClassCallableDataKHR;
     case glslang::EvqCallableDataIn: return spv::StorageClassIncomingCallableDataKHR;
     case glslang::EvqtaskPayloadSharedEXT : return spv::StorageClassTaskPayloadWorkgroupEXT;
-    case glslang::EvqHitObjectAttrNV: return spv::StorageClassHitObjectAttributeNV;
     case glslang::EvqSpirvStorageClass: return static_cast<spv::StorageClass>(type.getQualifier().spirvStorageClass);
 #endif
     default:
@@ -2583,35 +2561,6 @@
 
     spv::Builder::AccessChain::CoherentFlags lvalueCoherentFlags;
 
-    const auto hitObjectOpsWithLvalue = [](glslang::TOperator op) {
-        switch(op) {
-            case glslang::EOpReorderThreadNV:
-            case glslang::EOpHitObjectGetCurrentTimeNV:
-            case glslang::EOpHitObjectGetHitKindNV:
-            case glslang::EOpHitObjectGetPrimitiveIndexNV:
-            case glslang::EOpHitObjectGetGeometryIndexNV:
-            case glslang::EOpHitObjectGetInstanceIdNV:
-            case glslang::EOpHitObjectGetInstanceCustomIndexNV:
-            case glslang::EOpHitObjectGetObjectRayDirectionNV:
-            case glslang::EOpHitObjectGetObjectRayOriginNV:
-            case glslang::EOpHitObjectGetWorldRayDirectionNV:
-            case glslang::EOpHitObjectGetWorldRayOriginNV:
-            case glslang::EOpHitObjectGetWorldToObjectNV:
-            case glslang::EOpHitObjectGetObjectToWorldNV:
-            case glslang::EOpHitObjectGetRayTMaxNV:
-            case glslang::EOpHitObjectGetRayTMinNV:
-            case glslang::EOpHitObjectIsEmptyNV:
-            case glslang::EOpHitObjectIsHitNV:
-            case glslang::EOpHitObjectIsMissNV:
-            case glslang::EOpHitObjectRecordEmptyNV:
-            case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV:
-            case glslang::EOpHitObjectGetShaderRecordBufferHandleNV:
-                return true;
-            default:
-                return false;
-        }
-    };
-
 #ifndef GLSLANG_WEB
     if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
         node->getOp() == glslang::EOpAtomicCounterDecrement ||
@@ -2626,8 +2575,7 @@
         node->getOp() == glslang::EOpRayQueryGetIntersectionCandidateAABBOpaque ||
         node->getOp() == glslang::EOpRayQueryTerminate ||
         node->getOp() == glslang::EOpRayQueryConfirmIntersection ||
-        (node->getOp() == glslang::EOpSpirvInst && operandNode->getAsTyped()->getQualifier().isSpirvByReference()) ||
-        hitObjectOpsWithLvalue(node->getOp())) {
+        (node->getOp() == glslang::EOpSpirvInst && operandNode->getAsTyped()->getQualifier().isSpirvByReference())) {
         operand = builder.accessChainGetLValue(); // Special case l-value operands
         lvalueCoherentFlags = builder.getAccessChain().coherentFlags;
         lvalueCoherentFlags |= TranslateCoherent(operandNode->getAsTyped()->getType());
@@ -2762,12 +2710,6 @@
     case glslang::EOpRayQueryConfirmIntersection:
         builder.createNoResultOp(spv::OpRayQueryConfirmIntersectionKHR, operand);
         return false;
-    case glslang::EOpReorderThreadNV:
-        builder.createNoResultOp(spv::OpReorderThreadWithHitObjectNV, operand);
-        return false;
-    case glslang::EOpHitObjectRecordEmptyNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordEmptyNV, operand);
-        return false;
 #endif
 
     default:
@@ -3259,43 +3201,6 @@
         builder.addExtension(spv::E_SPV_EXT_fragment_shader_interlock);
         noReturnValue = true;
         break;
-
-    case glslang::EOpHitObjectTraceRayNV:
-    case glslang::EOpHitObjectTraceRayMotionNV:
-    case glslang::EOpHitObjectGetAttributesNV:
-    case glslang::EOpHitObjectExecuteShaderNV:
-    case glslang::EOpHitObjectRecordEmptyNV:
-    case glslang::EOpHitObjectRecordMissNV:
-    case glslang::EOpHitObjectRecordMissMotionNV:
-    case glslang::EOpHitObjectRecordHitNV:
-    case glslang::EOpHitObjectRecordHitMotionNV:
-    case glslang::EOpHitObjectRecordHitWithIndexNV:
-    case glslang::EOpHitObjectRecordHitWithIndexMotionNV:
-    case glslang::EOpReorderThreadNV:
-        noReturnValue = true;
-        //Fallthrough
-    case glslang::EOpHitObjectIsEmptyNV:
-    case glslang::EOpHitObjectIsMissNV:
-    case glslang::EOpHitObjectIsHitNV:
-    case glslang::EOpHitObjectGetRayTMinNV:
-    case glslang::EOpHitObjectGetRayTMaxNV:
-    case glslang::EOpHitObjectGetObjectRayOriginNV:
-    case glslang::EOpHitObjectGetObjectRayDirectionNV:
-    case glslang::EOpHitObjectGetWorldRayOriginNV:
-    case glslang::EOpHitObjectGetWorldRayDirectionNV:
-    case glslang::EOpHitObjectGetObjectToWorldNV:
-    case glslang::EOpHitObjectGetWorldToObjectNV:
-    case glslang::EOpHitObjectGetInstanceCustomIndexNV:
-    case glslang::EOpHitObjectGetInstanceIdNV:
-    case glslang::EOpHitObjectGetGeometryIndexNV:
-    case glslang::EOpHitObjectGetPrimitiveIndexNV:
-    case glslang::EOpHitObjectGetHitKindNV:
-    case glslang::EOpHitObjectGetCurrentTimeNV:
-    case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV:
-    case glslang::EOpHitObjectGetShaderRecordBufferHandleNV:
-        builder.addExtension(spv::E_SPV_NV_shader_invocation_reorder);
-        builder.addCapability(spv::CapabilityShaderInvocationReorderNV);
-        break;
 #endif
 
     case glslang::EOpDebugPrintf:
@@ -3353,22 +3258,6 @@
                 lvalue = true;
             break;
 
-
-    
-        case glslang::EOpHitObjectRecordHitNV:
-        case glslang::EOpHitObjectRecordHitMotionNV:
-        case glslang::EOpHitObjectRecordHitWithIndexNV:
-        case glslang::EOpHitObjectRecordHitWithIndexMotionNV:
-        case glslang::EOpHitObjectTraceRayNV:
-        case glslang::EOpHitObjectTraceRayMotionNV:
-        case glslang::EOpHitObjectExecuteShaderNV:
-        case glslang::EOpHitObjectRecordMissNV:
-        case glslang::EOpHitObjectRecordMissMotionNV:
-        case glslang::EOpHitObjectGetAttributesNV:
-            if (arg == 0)
-                lvalue = true;
-            break;
-
         case glslang::EOpRayQueryInitialize:
         case glslang::EOpRayQueryTerminate:
         case glslang::EOpRayQueryConfirmIntersection:
@@ -3469,11 +3358,6 @@
             if (glslangOperands[arg]->getAsTyped()->getQualifier().isSpirvByReference())
                 lvalue = true;
             break;
-        case glslang::EOpReorderThreadNV:
-            //Three variants of reorderThreadNV, two of them use hitObjectNV
-            if (arg == 0 && glslangOperands.size() != 2)
-                lvalue = true;
-            break;
 #endif
         default:
             break;
@@ -3530,7 +3414,7 @@
             } else if (arg == 2) {
                 continue;
             }
-        } 
+        }
 #endif
 
         // for l-values, pass the address, for r-values, pass the value
@@ -3572,23 +3456,11 @@
                 operands.push_back(builder.makeIntConstant(cond ? 1 : 0));
              } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) ||
                         (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) ||
-                        (arg == 1  && glslangOp == glslang::EOpExecuteCallableKHR) ||
-                        (arg == 1  && glslangOp == glslang::EOpHitObjectExecuteShaderNV) || 
-                        (arg == 11 && glslangOp == glslang::EOpHitObjectTraceRayNV) || 
-                        (arg == 12 && glslangOp == glslang::EOpHitObjectTraceRayMotionNV)) {
+                        (arg == 1  && glslangOp == glslang::EOpExecuteCallableKHR)) {
+                 const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1);
                  const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0;
-                 const int location = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getUConst();
-                 auto itNode = locationToSymbol[set].find(location);
-                 visitSymbol(itNode->second);
-                 spv::Id symId = getSymbolId(itNode->second);
-                 operands.push_back(symId);
-            } else if ((arg == 12 && glslangOp == glslang::EOpHitObjectRecordHitNV) ||
-                       (arg == 13 && glslangOp == glslang::EOpHitObjectRecordHitMotionNV) ||
-                       (arg == 11 && glslangOp == glslang::EOpHitObjectRecordHitWithIndexNV) ||
-                       (arg == 12 && glslangOp == glslang::EOpHitObjectRecordHitWithIndexMotionNV) ||
-                       (arg == 1  && glslangOp == glslang::EOpHitObjectGetAttributesNV)) {
-                 const int location = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getUConst();
-                 const int set = 2;
+
+                 const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst();
                  auto itNode = locationToSymbol[set].find(location);
                  visitSymbol(itNode->second);
                  spv::Id symId = getSymbolId(itNode->second);
@@ -4414,13 +4286,6 @@
     case glslang::EbtString:
         // no type used for OpString
         return 0;
-
-    case glslang::EbtHitObjectNV: {
-        builder.addExtension(spv::E_SPV_NV_shader_invocation_reorder);
-        builder.addCapability(spv::CapabilityShaderInvocationReorderNV);
-        spvType = builder.makeHitObjectNVType();
-    }
-    break;    
 #ifndef GLSLANG_WEB
     case glslang::EbtSpirvType: {
         // GL_EXT_spirv_intrinsics
@@ -4840,9 +4705,6 @@
     // Decorate the structure
     builder.addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix));
     builder.addDecoration(spvType, TranslateBlockDecoration(type, glslangIntermediate->usingStorageBuffer()));
-
-    if (qualifier.hasHitObjectShaderRecordNV())
-        builder.addDecoration(spvType, spv::DecorationHitObjectShaderRecordBufferNV);
 }
 
 // Turn the expression forming the array size into an id.
@@ -4879,16 +4741,6 @@
     spv::Builder::AccessChain::CoherentFlags coherentFlags = builder.getAccessChain().coherentFlags;
     coherentFlags |= TranslateCoherent(type);
 
-    spv::MemoryAccessMask accessMask = spv::MemoryAccessMask(TranslateMemoryAccess(coherentFlags) & ~spv::MemoryAccessMakePointerAvailableKHRMask);
-    // If the value being loaded is HelperInvocation, SPIR-V 1.6 is being generated (so that
-    // SPV_EXT_demote_to_helper_invocation is in core) and the memory model is in use, add
-    // the Volatile MemoryAccess semantic.
-    if (type.getQualifier().builtIn == glslang::EbvHelperInvocation &&
-        glslangIntermediate->usingVulkanMemoryModel() &&
-        glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) {
-        accessMask = spv::MemoryAccessMask(accessMask | spv::MemoryAccessVolatileMask);
-    }
-
     unsigned int alignment = builder.getAccessChain().alignment;
     alignment |= type.getBufferReferenceAlignment();
 
@@ -4896,7 +4748,7 @@
         TranslateNonUniformDecoration(builder.getAccessChain().coherentFlags),
         TranslateNonUniformDecoration(type.getQualifier()),
         nominalTypeId,
-        accessMask,
+        spv::MemoryAccessMask(TranslateMemoryAccess(coherentFlags) & ~spv::MemoryAccessMakePointerAvailableKHRMask),
         TranslateMemoryScope(coherentFlags),
         alignment);
 
@@ -5223,7 +5075,7 @@
         return true;
     if (glslangIntermediate->getSource() == glslang::EShSourceHlsl)
         return paramType.getBasicType() == glslang::EbtBlock;
-    return (paramType.containsOpaque() && !glslangIntermediate->getBindlessMode()) ||       // sampler, etc.
+    return paramType.containsOpaque() ||                                                       // sampler, etc.
 #ifndef GLSLANG_WEB
            paramType.getQualifier().isSpirvByReference() ||                                    // spirv_by_reference
 #endif
@@ -5370,10 +5222,6 @@
                     set = 1;
                     break;
 
-                case glslang::EvqHitObjectAttrNV:
-                    set = 2;
-                    break;
-
                 default:
                     set = -1;
                 }
@@ -7018,83 +6866,6 @@
     case glslang::EOpConvUvec2ToAccStruct:
         unaryOp = spv::OpConvertUToAccelerationStructureKHR;
         break;
-
-    case glslang::EOpHitObjectIsEmptyNV:
-        unaryOp = spv::OpHitObjectIsEmptyNV;
-        break;
-
-    case glslang::EOpHitObjectIsMissNV:
-        unaryOp = spv::OpHitObjectIsMissNV;
-        break;
-
-    case glslang::EOpHitObjectIsHitNV:
-        unaryOp = spv::OpHitObjectIsHitNV;
-        break;
-
-    case glslang::EOpHitObjectGetObjectRayOriginNV:
-        unaryOp = spv::OpHitObjectGetObjectRayOriginNV;
-        break;
-
-    case glslang::EOpHitObjectGetObjectRayDirectionNV:
-        unaryOp = spv::OpHitObjectGetObjectRayDirectionNV;
-        break;
-
-    case glslang::EOpHitObjectGetWorldRayOriginNV:
-        unaryOp = spv::OpHitObjectGetWorldRayOriginNV;
-        break;
-
-    case glslang::EOpHitObjectGetWorldRayDirectionNV:
-        unaryOp = spv::OpHitObjectGetWorldRayDirectionNV;
-        break;
-
-    case glslang::EOpHitObjectGetObjectToWorldNV:
-        unaryOp = spv::OpHitObjectGetObjectToWorldNV;
-        break;
-
-    case glslang::EOpHitObjectGetWorldToObjectNV:
-        unaryOp = spv::OpHitObjectGetWorldToObjectNV;
-        break;
-
-    case glslang::EOpHitObjectGetRayTMinNV:
-        unaryOp = spv::OpHitObjectGetRayTMinNV;
-        break;
-
-    case glslang::EOpHitObjectGetRayTMaxNV:
-        unaryOp = spv::OpHitObjectGetRayTMaxNV;
-        break;
-
-    case glslang::EOpHitObjectGetPrimitiveIndexNV:
-        unaryOp = spv::OpHitObjectGetPrimitiveIndexNV;
-        break;
-
-    case glslang::EOpHitObjectGetInstanceIdNV:
-        unaryOp = spv::OpHitObjectGetInstanceIdNV;
-        break;
-
-    case glslang::EOpHitObjectGetInstanceCustomIndexNV:
-        unaryOp = spv::OpHitObjectGetInstanceCustomIndexNV;
-        break;
-
-    case glslang::EOpHitObjectGetGeometryIndexNV:
-        unaryOp = spv::OpHitObjectGetGeometryIndexNV;
-        break;
-
-    case glslang::EOpHitObjectGetHitKindNV:
-        unaryOp = spv::OpHitObjectGetHitKindNV;
-        break;
-
-    case glslang::EOpHitObjectGetCurrentTimeNV:
-        unaryOp = spv::OpHitObjectGetCurrentTimeNV;
-        break;
-
-    case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV:
-        unaryOp = spv::OpHitObjectGetShaderBindingTableRecordIndexNV;
-        break;
-
-    case glslang::EOpHitObjectGetShaderRecordBufferHandleNV:
-        unaryOp = spv::OpHitObjectGetShaderRecordBufferHandleNV;
-        break;
-    
 #endif
 
     case glslang::EOpCopyObject:
@@ -8836,122 +8607,6 @@
     case glslang::EOpCooperativeMatrixMulAdd:
         opCode = spv::OpCooperativeMatrixMulAddNV;
         break;
-    case glslang::EOpHitObjectTraceRayNV:
-        builder.createNoResultOp(spv::OpHitObjectTraceRayNV, operands);
-        return 0;
-    case glslang::EOpHitObjectTraceRayMotionNV:
-        builder.createNoResultOp(spv::OpHitObjectTraceRayMotionNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordHitNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordHitNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordHitMotionNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordHitMotionNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordHitWithIndexNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordHitWithIndexNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordHitWithIndexMotionNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordHitWithIndexMotionNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordMissNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordMissNV, operands);
-        return 0;
-    case glslang::EOpHitObjectRecordMissMotionNV:
-        builder.createNoResultOp(spv::OpHitObjectRecordMissMotionNV, operands);
-        return 0;
-    case glslang::EOpHitObjectExecuteShaderNV:
-        builder.createNoResultOp(spv::OpHitObjectExecuteShaderNV, operands);
-        return 0;
-    case glslang::EOpHitObjectIsEmptyNV:
-        typeId = builder.makeBoolType();
-        opCode = spv::OpHitObjectIsEmptyNV;
-        break;
-    case glslang::EOpHitObjectIsMissNV:
-        typeId = builder.makeBoolType();
-        opCode = spv::OpHitObjectIsMissNV;
-        break;
-    case glslang::EOpHitObjectIsHitNV:
-        typeId = builder.makeBoolType();
-        opCode = spv::OpHitObjectIsHitNV;
-        break;
-    case glslang::EOpHitObjectGetRayTMinNV:
-        typeId = builder.makeFloatType(32);
-        opCode = spv::OpHitObjectGetRayTMinNV;
-        break;
-    case glslang::EOpHitObjectGetRayTMaxNV:
-        typeId = builder.makeFloatType(32);
-        opCode = spv::OpHitObjectGetRayTMaxNV;
-        break;
-    case glslang::EOpHitObjectGetObjectRayOriginNV:
-        typeId = builder.makeVectorType(builder.makeFloatType(32), 3);
-        opCode = spv::OpHitObjectGetObjectRayOriginNV;
-        break;
-    case glslang::EOpHitObjectGetObjectRayDirectionNV:
-        typeId = builder.makeVectorType(builder.makeFloatType(32), 3);
-        opCode = spv::OpHitObjectGetObjectRayDirectionNV;
-        break;
-    case glslang::EOpHitObjectGetWorldRayOriginNV:
-        typeId = builder.makeVectorType(builder.makeFloatType(32), 3);
-        opCode = spv::OpHitObjectGetWorldRayOriginNV;
-        break;
-    case glslang::EOpHitObjectGetWorldRayDirectionNV:
-        typeId = builder.makeVectorType(builder.makeFloatType(32), 3);
-        opCode = spv::OpHitObjectGetWorldRayDirectionNV;
-        break;
-    case glslang::EOpHitObjectGetWorldToObjectNV:
-        typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3);
-        opCode = spv::OpHitObjectGetWorldToObjectNV;
-        break;
-    case glslang::EOpHitObjectGetObjectToWorldNV:
-        typeId = builder.makeMatrixType(builder.makeFloatType(32), 4, 3);
-        opCode = spv::OpHitObjectGetObjectToWorldNV;
-        break;
-    case glslang::EOpHitObjectGetInstanceCustomIndexNV:
-        typeId = builder.makeIntegerType(32, 1);
-        opCode = spv::OpHitObjectGetInstanceCustomIndexNV;
-        break;
-    case glslang::EOpHitObjectGetInstanceIdNV:
-        typeId = builder.makeIntegerType(32, 1);
-        opCode = spv::OpHitObjectGetInstanceIdNV;
-        break;
-    case glslang::EOpHitObjectGetGeometryIndexNV:
-        typeId = builder.makeIntegerType(32, 1);
-        opCode = spv::OpHitObjectGetGeometryIndexNV;
-        break;
-    case glslang::EOpHitObjectGetPrimitiveIndexNV:
-        typeId = builder.makeIntegerType(32, 1);
-        opCode = spv::OpHitObjectGetPrimitiveIndexNV;
-        break;
-    case glslang::EOpHitObjectGetHitKindNV:
-        typeId = builder.makeIntegerType(32, 0);
-        opCode = spv::OpHitObjectGetHitKindNV;
-        break;
-    case glslang::EOpHitObjectGetCurrentTimeNV:
-        typeId = builder.makeFloatType(32);
-        opCode = spv::OpHitObjectGetCurrentTimeNV;
-        break;
-    case glslang::EOpHitObjectGetShaderBindingTableRecordIndexNV:
-        typeId = builder.makeIntegerType(32, 0);
-        opCode = spv::OpHitObjectGetShaderBindingTableRecordIndexNV;
-        return 0;
-    case glslang::EOpHitObjectGetAttributesNV:
-        builder.createNoResultOp(spv::OpHitObjectGetAttributesNV, operands);
-        return 0;
-    case glslang::EOpHitObjectGetShaderRecordBufferHandleNV:
-        typeId = builder.makeVectorType(builder.makeUintType(32), 2);
-        opCode = spv::OpHitObjectGetShaderRecordBufferHandleNV;
-        break;
-    case glslang::EOpReorderThreadNV: {
-        if (operands.size() == 2) {
-            builder.createNoResultOp(spv::OpReorderThreadWithHintNV, operands);
-        } else {
-            builder.createNoResultOp(spv::OpReorderThreadWithHitObjectNV, operands);
-        }
-        return 0;
-    
-    }
-        break;
 #endif // GLSLANG_WEB
     default:
         return 0;
@@ -9261,17 +8916,13 @@
     }
 
     if (symbol->getQualifier().hasLocation()) {
-        if (!(glslangIntermediate->isRayTracingStage() &&
-              (glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_ray_tracing) ||
-               glslangIntermediate->IsRequestedExtension(glslang::E_GL_NV_shader_invocation_reorder))
+        if (!(glslangIntermediate->isRayTracingStage() && glslangIntermediate->IsRequestedExtension(glslang::E_GL_EXT_ray_tracing)
               && (builder.getStorageClass(id) == spv::StorageClassRayPayloadKHR ||
                   builder.getStorageClass(id) == spv::StorageClassIncomingRayPayloadKHR ||
                   builder.getStorageClass(id) == spv::StorageClassCallableDataKHR ||
-                  builder.getStorageClass(id) == spv::StorageClassIncomingCallableDataKHR ||
-                  builder.getStorageClass(id) == spv::StorageClassHitObjectAttributeNV))) {
-            // Location values are used to link TraceRayKHR/ExecuteCallableKHR/HitObjectGetAttributesNV
-            // to corresponding variables but are not valid in SPIRV since they are supported only
-            // for Input/Output Storage classes.
+                  builder.getStorageClass(id) == spv::StorageClassIncomingCallableDataKHR))) {
+            // Location values are used to link TraceRayKHR and ExecuteCallableKHR to corresponding variables
+            // but are not valid in SPIRV since they are supported only for Input/Output Storage classes.
             builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
         }
     }
@@ -9317,7 +8968,6 @@
 
     // Add volatile decoration to HelperInvocation for spirv1.6 and beyond
     if (builtIn == spv::BuiltInHelperInvocation &&
-        !glslangIntermediate->usingVulkanMemoryModel() &&
         glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6) {
         builder.addDecoration(id, spv::DecorationVolatile);
     }
@@ -9888,8 +9538,7 @@
     // return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent
     // return 8; // switch to new dead block eliminator; use OpUnreachable
     // return 9; // don't include opaque function parameters in OpEntryPoint global's operand list
-    // return 10; // Generate OpFUnordNotEqual for != comparisons
-    return 11; // Make OpEmitMeshTasksEXT a terminal instruction
+    return 10; // Generate OpFUnordNotEqual for != comparisons
 }
 
 // Write SPIR-V out to a binary file
@@ -9909,7 +9558,7 @@
 // Write SPIR-V out to a text file with 32-bit hexadecimal words
 void OutputSpvHex(const std::vector<unsigned int>& spirv, const char* baseName, const char* varName)
 {
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     std::ofstream out;
     out.open(baseName, std::ios::binary | std::ios::out);
     if (out.fail())
@@ -9956,7 +9605,7 @@
 {
     TIntermNode* root = intermediate.getTreeRoot();
 
-    if (root == nullptr)
+    if (root == 0)
         return;
 
     SpvOptions defaultOptions;
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index 764a886..7c5ea87 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -71,9 +71,9 @@
     addressModel(AddressingModelLogical),
     memoryModel(MemoryModelGLSL450),
     builderNumber(magicNumber),
-    buildPoint(nullptr),
+    buildPoint(0),
     uniqueId(0),
-    entryPointFunction(nullptr),
+    entryPointFunction(0),
     generatingOpCodeForSpecConst(false),
     logger(buildLogger)
 {
@@ -650,12 +650,8 @@
     type->addIdOperand(makeUintConstant(NonSemanticShaderDebugInfo100FlagIsPublic));
     type->addIdOperand(debugId[returnType]);
     for (auto const paramType : paramTypes) {
-        if (isPointerType(paramType) || isArrayType(paramType)) {
-            type->addIdOperand(debugId[getContainedTypeId(paramType)]);
-        }
-        else {
-            type->addIdOperand(debugId[paramType]);
-        }
+        assert(isPointerType(paramType) || isArrayType(paramType));
+        type->addIdOperand(debugId[getContainedTypeId(paramType)]);
     }
     constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
     module.mapInstruction(type);
@@ -1180,21 +1176,6 @@
 
     return type->getResultId();
 }
-
-Id Builder::makeHitObjectNVType()
-{
-    Instruction *type;
-    if (groupedTypes[OpTypeHitObjectNV].size() == 0) {
-        type = new Instruction(getUniqueId(), NoType, OpTypeHitObjectNV);
-        groupedTypes[OpTypeHitObjectNV].push_back(type);
-        constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(type));
-        module.mapInstruction(type);
-    } else {
-        type = groupedTypes[OpTypeHitObjectNV].back();
-    }
-
-    return type->getResultId();
-}
 #endif
 
 Id Builder::getDerefTypeId(Id resultId) const
@@ -1694,7 +1675,7 @@
 
 Id Builder::findCompositeConstant(Op typeClass, Id typeId, const std::vector<Id>& comps)
 {
-    Instruction* constant = nullptr;
+    Instruction* constant = 0;
     bool found = false;
     for (int i = 0; i < (int)groupedConstants[typeClass].size(); ++i) {
         constant = groupedConstants[typeClass][i];
@@ -1721,7 +1702,7 @@
 
 Id Builder::findStructConstant(Id typeId, const std::vector<Id>& comps)
 {
-    Instruction* constant = nullptr;
+    Instruction* constant = 0;
     bool found = false;
     for (int i = 0; i < (int)groupedStructConstants[typeId].size(); ++i) {
         constant = groupedStructConstants[typeId][i];
@@ -2066,16 +2047,11 @@
         assert(paramTypes.size() == paramNames.size());
         for(size_t p = 0; p < paramTypes.size(); ++p)
         {
-            auto getParamTypeId = [this](Id const& typeId) {
-                if (isPointerType(typeId) || isArrayType(typeId)) {
-                    return getContainedTypeId(typeId);
-                }
-                else {
-                    return typeId;
-                }
-            };
+            auto const& paramType = paramTypes[p];
+            assert(isPointerType(paramType) || isArrayType(paramType));
+            assert(debugId[getContainedTypeId(paramType)] != 0);
             auto const& paramName = paramNames[p];
-            auto const debugLocalVariableId = createDebugLocalVariable(debugId[getParamTypeId(paramTypes[p])], paramName, p+1);
+            auto const debugLocalVariableId = createDebugLocalVariable(debugId[getContainedTypeId(paramType)], paramName, p+1);
             debugId[firstParamId + p] = debugLocalVariableId;
 
             makeDebugDeclare(debugLocalVariableId, firstParamId + p);
@@ -3356,7 +3332,7 @@
     builder(gb),
     condition(cond),
     control(ctrl),
-    elseBlock(nullptr)
+    elseBlock(0)
 {
     function = &builder.getBuildPoint()->getParent();
 
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 02e9cf4..f7fdc6a 100644
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -240,8 +240,6 @@
     Id makeAccelerationStructureType();
     // rayQueryEXT type
     Id makeRayQueryType();
-    // hitObjectNV type
-    Id makeHitObjectNVType();
 
     // For querying about types.
     Id getTypeId(Id resultId) const { return module.getTypeId(resultId); }
@@ -416,7 +414,7 @@
     // The returned pointer is only valid for the lifetime of this builder.
     Function* makeFunctionEntry(Decoration precision, Id returnType, const char* name,
         const std::vector<Id>& paramTypes, const std::vector<char const*>& paramNames,
-        const std::vector<std::vector<Decoration>>& precisions, Block **entry = nullptr);
+        const std::vector<std::vector<Decoration>>& precisions, Block **entry = 0);
 
     // Create a return. An 'implicit' return is one not appearing in the source
     // code.  In the case of an implicit return, no post-return block is inserted.
diff --git a/SPIRV/SpvPostProcess.cpp b/SPIRV/SpvPostProcess.cpp
index b185f61..dd6dabc 100644
--- a/SPIRV/SpvPostProcess.cpp
+++ b/SPIRV/SpvPostProcess.cpp
@@ -52,7 +52,6 @@
     #include "GLSL.ext.EXT.h"
     #include "GLSL.ext.AMD.h"
     #include "GLSL.ext.NV.h"
-    #include "GLSL.ext.ARM.h"
 }
 
 namespace spv {
diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp
index ff04f4f..8cc17cc 100644
--- a/SPIRV/SpvTools.cpp
+++ b/SPIRV/SpvTools.cpp
@@ -212,7 +212,7 @@
     optimizer.RegisterPass(spvtools::CreateInterpolateFixupPass());
     if (options->optimizeSize) {
         optimizer.RegisterPass(spvtools::CreateRedundancyEliminationPass());
-        optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsSafePass());
+        optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass());
     }
     optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
     optimizer.RegisterPass(spvtools::CreateCFGCleanupPass());
@@ -223,56 +223,6 @@
     optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions);
 }
 
-bool SpirvToolsAnalyzeDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                       std::unordered_set<uint32_t>* live_locs,
-                                       std::unordered_set<uint32_t>* live_builtins,
-                                       spv::SpvBuildLogger*)
-{
-  spvtools::Optimizer optimizer(target_env);
-  optimizer.SetMessageConsumer(OptimizerMesssageConsumer);
-
-  optimizer.RegisterPass(spvtools::CreateAnalyzeLiveInputPass(live_locs, live_builtins));
-
-  spvtools::OptimizerOptions spvOptOptions;
-  optimizer.SetTargetEnv(target_env);
-  spvOptOptions.set_run_validator(false);
-  return optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions);
-}
-
-void SpirvToolsEliminateDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                         std::unordered_set<uint32_t>* live_locs,
-                                         std::unordered_set<uint32_t>* live_builtins,
-                                         spv::SpvBuildLogger*)
-{
-  spvtools::Optimizer optimizer(target_env);
-  optimizer.SetMessageConsumer(OptimizerMesssageConsumer);
-
-  optimizer.RegisterPass(spvtools::CreateEliminateDeadOutputStoresPass(live_locs, live_builtins));
-  optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass(false, true));
-  optimizer.RegisterPass(spvtools::CreateEliminateDeadOutputComponentsPass());
-  optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass(false, true));
-
-  spvtools::OptimizerOptions spvOptOptions;
-  optimizer.SetTargetEnv(target_env);
-  spvOptOptions.set_run_validator(false);
-  optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions);
-}
-
-void SpirvToolsEliminateDeadInputComponents(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                            spv::SpvBuildLogger*)
-{
-  spvtools::Optimizer optimizer(target_env);
-  optimizer.SetMessageConsumer(OptimizerMesssageConsumer);
-
-  optimizer.RegisterPass(spvtools::CreateEliminateDeadInputComponentsPass());
-  optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
-
-  spvtools::OptimizerOptions spvOptOptions;
-  optimizer.SetTargetEnv(target_env);
-  spvOptOptions.set_run_validator(false);
-  optimizer.Run(spirv.data(), spirv.size(), &spirv, spvOptOptions);
-}
-
 // Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V.  This is implicitly done by
 // SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if
 // optimization is disabled.
diff --git a/SPIRV/SpvTools.h b/SPIRV/SpvTools.h
index 6fc4e40..5386048 100644
--- a/SPIRV/SpvTools.h
+++ b/SPIRV/SpvTools.h
@@ -65,9 +65,6 @@
 
 #if ENABLE_OPT
 
-// Translate glslang's view of target versioning to what SPIRV-Tools uses.
-spv_target_env MapToSpirvToolsEnv(const SpvVersion& spvVersion, spv::SpvBuildLogger* logger);
-
 // Use the SPIRV-Tools disassembler to print SPIR-V using a SPV_ENV_UNIVERSAL_1_3 environment.
 void SpirvToolsDisassemble(std::ostream& out, const std::vector<unsigned int>& spirv);
 
@@ -83,22 +80,6 @@
 void SpirvToolsTransform(const glslang::TIntermediate& intermediate, std::vector<unsigned int>& spirv,
                          spv::SpvBuildLogger*, const SpvOptions*);
 
-// Apply the SPIRV-Tools EliminateDeadInputComponents pass to generated SPIR-V. Put result in |spirv|.
-void SpirvToolsEliminateDeadInputComponents(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                            spv::SpvBuildLogger*);
-
-// Apply the SPIRV-Tools AnalyzeDeadOutputStores pass to generated SPIR-V. Put result in |live_locs|.
-// Return true if the result is valid.
-bool SpirvToolsAnalyzeDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                       std::unordered_set<uint32_t>* live_locs,
-                                       std::unordered_set<uint32_t>* live_builtins, spv::SpvBuildLogger*);
-
-// Apply the SPIRV-Tools EliminateDeadOutputStores and AggressiveDeadCodeElimination passes to generated SPIR-V using
-// |live_locs|. Put result in |spirv|.
-void SpirvToolsEliminateDeadOutputStores(spv_target_env target_env, std::vector<unsigned int>& spirv,
-                                         std::unordered_set<uint32_t>* live_locs,
-                                         std::unordered_set<uint32_t>* live_builtins, spv::SpvBuildLogger*);
-
 // Apply the SPIRV-Tools optimizer to strip debug info from SPIR-V.  This is implicitly done by
 // SpirvToolsTransform if spvOptions->stripDebugInfo is set, but can be called separately if
 // optimization is disabled.
diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp
index f943fd5..74dd605 100644
--- a/SPIRV/disassemble.cpp
+++ b/SPIRV/disassemble.cpp
@@ -54,8 +54,6 @@
         #include "GLSL.std.450.h"
         #include "GLSL.ext.AMD.h"
         #include "GLSL.ext.NV.h"
-        #include "GLSL.ext.ARM.h"
-        #include "NonSemanticShaderDebugInfo100.h"
     }
 }
 const char* GlslStd450DebugNames[spv::GLSLstd450Count];
@@ -64,7 +62,6 @@
 
 static const char* GLSLextAMDGetDebugNames(const char*, unsigned);
 static const char* GLSLextNVGetDebugNames(const char*, unsigned);
-static const char* NonSemanticShaderDebugInfo100GetDebugNames(unsigned);
 
 static void Kill(std::ostream& out, const char* message)
 {
@@ -79,7 +76,6 @@
     GLSLextNVInst,
     OpenCLExtInst,
     NonSemanticDebugPrintfExtInst,
-    NonSemanticShaderDebugInfo100
 };
 
 // Container class for a single instance of a SPIR-V stream, with methods for disassembly.
@@ -505,8 +501,6 @@
                     extInstSet = OpenCLExtInst;
                 } else if (strcmp("NonSemantic.DebugPrintf", name) == 0) {
                     extInstSet = NonSemanticDebugPrintfExtInst;
-                } else if (strcmp("NonSemantic.Shader.DebugInfo.100", name) == 0) {
-                    extInstSet = NonSemanticShaderDebugInfo100;
                 } else if (strcmp(spv::E_SPV_AMD_shader_ballot, name) == 0 ||
                            strcmp(spv::E_SPV_AMD_shader_trinary_minmax, name) == 0 ||
                            strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 ||
@@ -532,8 +526,6 @@
                     out << "(" << GLSLextNVGetDebugNames(name, entrypoint) << ")";
                 } else if (extInstSet == NonSemanticDebugPrintfExtInst) {
                     out << "(DebugPrintf)";
-                } else if (extInstSet == NonSemanticShaderDebugInfo100) {
-                    out << "(" << NonSemanticShaderDebugInfo100GetDebugNames(entrypoint) << ")";
                 }
             }
             break;
@@ -757,59 +749,6 @@
     return "Bad";
 }
 
-static const char* NonSemanticShaderDebugInfo100GetDebugNames(unsigned entrypoint)
-{
-    switch (entrypoint) {
-        case NonSemanticShaderDebugInfo100DebugInfoNone:                        return "DebugInfoNone";
-        case NonSemanticShaderDebugInfo100DebugCompilationUnit:                 return "DebugCompilationUnit";
-        case NonSemanticShaderDebugInfo100DebugTypeBasic:                       return "DebugTypeBasic";
-        case NonSemanticShaderDebugInfo100DebugTypePointer:                     return "DebugTypePointer";
-        case NonSemanticShaderDebugInfo100DebugTypeQualifier:                   return "DebugTypeQualifier";
-        case NonSemanticShaderDebugInfo100DebugTypeArray:                       return "DebugTypeArray";
-        case NonSemanticShaderDebugInfo100DebugTypeVector:                      return "DebugTypeVector";
-        case NonSemanticShaderDebugInfo100DebugTypedef:                         return "DebugTypedef";
-        case NonSemanticShaderDebugInfo100DebugTypeFunction:                    return "DebugTypeFunction";
-        case NonSemanticShaderDebugInfo100DebugTypeEnum:                        return "DebugTypeEnum";
-        case NonSemanticShaderDebugInfo100DebugTypeComposite:                   return "DebugTypeComposite";
-        case NonSemanticShaderDebugInfo100DebugTypeMember:                      return "DebugTypeMember";
-        case NonSemanticShaderDebugInfo100DebugTypeInheritance:                 return "DebugTypeInheritance";
-        case NonSemanticShaderDebugInfo100DebugTypePtrToMember:                 return "DebugTypePtrToMember";
-        case NonSemanticShaderDebugInfo100DebugTypeTemplate:                    return "DebugTypeTemplate";
-        case NonSemanticShaderDebugInfo100DebugTypeTemplateParameter:           return "DebugTypeTemplateParameter";
-        case NonSemanticShaderDebugInfo100DebugTypeTemplateTemplateParameter:   return "DebugTypeTemplateTemplateParameter";
-        case NonSemanticShaderDebugInfo100DebugTypeTemplateParameterPack:       return "DebugTypeTemplateParameterPack";
-        case NonSemanticShaderDebugInfo100DebugGlobalVariable:                  return "DebugGlobalVariable";
-        case NonSemanticShaderDebugInfo100DebugFunctionDeclaration:             return "DebugFunctionDeclaration";
-        case NonSemanticShaderDebugInfo100DebugFunction:                        return "DebugFunction";
-        case NonSemanticShaderDebugInfo100DebugLexicalBlock:                    return "DebugLexicalBlock";
-        case NonSemanticShaderDebugInfo100DebugLexicalBlockDiscriminator:       return "DebugLexicalBlockDiscriminator";
-        case NonSemanticShaderDebugInfo100DebugScope:                           return "DebugScope";
-        case NonSemanticShaderDebugInfo100DebugNoScope:                         return "DebugNoScope";
-        case NonSemanticShaderDebugInfo100DebugInlinedAt:                       return "DebugInlinedAt";
-        case NonSemanticShaderDebugInfo100DebugLocalVariable:                   return "DebugLocalVariable";
-        case NonSemanticShaderDebugInfo100DebugInlinedVariable:                 return "DebugInlinedVariable";
-        case NonSemanticShaderDebugInfo100DebugDeclare:                         return "DebugDeclare";
-        case NonSemanticShaderDebugInfo100DebugValue:                           return "DebugValue";
-        case NonSemanticShaderDebugInfo100DebugOperation:                       return "DebugOperation";
-        case NonSemanticShaderDebugInfo100DebugExpression:                      return "DebugExpression";
-        case NonSemanticShaderDebugInfo100DebugMacroDef:                        return "DebugMacroDef";
-        case NonSemanticShaderDebugInfo100DebugMacroUndef:                      return "DebugMacroUndef";
-        case NonSemanticShaderDebugInfo100DebugImportedEntity:                  return "DebugImportedEntity";
-        case NonSemanticShaderDebugInfo100DebugSource:                          return "DebugSource";
-        case NonSemanticShaderDebugInfo100DebugFunctionDefinition:              return "DebugFunctionDefinition";
-        case NonSemanticShaderDebugInfo100DebugSourceContinued:                 return "DebugSourceContinued";
-        case NonSemanticShaderDebugInfo100DebugLine:                            return "DebugLine";
-        case NonSemanticShaderDebugInfo100DebugNoLine:                          return "DebugNoLine";
-        case NonSemanticShaderDebugInfo100DebugBuildIdentifier:                 return "DebugBuildIdentifier";
-        case NonSemanticShaderDebugInfo100DebugStoragePath:                     return "DebugStoragePath";
-        case NonSemanticShaderDebugInfo100DebugEntryPoint:                      return "DebugEntryPoint";
-        case NonSemanticShaderDebugInfo100DebugTypeMatrix:                      return "DebugTypeMatrix";
-        default:                                                                return "Bad";
-    }
-
-    return "Bad";
-}
-
 void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
 {
     SpirvStream SpirvStream(out, stream);
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
index 87ab120..b7fe3e7 100644
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -53,7 +53,6 @@
         #include "GLSL.ext.EXT.h"
         #include "GLSL.ext.AMD.h"
         #include "GLSL.ext.NV.h"
-        #include "GLSL.ext.ARM.h"
     }
 }
 
@@ -246,7 +245,6 @@
 
     case StorageClassPhysicalStorageBufferEXT: return "PhysicalStorageBufferEXT";
     case StorageClassTaskPayloadWorkgroupEXT:  return "TaskPayloadWorkgroupEXT";
-    case StorageClassHitObjectAttributeNV:     return "HitObjectAttributeNV";
     default: return "Bad";
     }
 }
@@ -321,8 +319,6 @@
     case DecorationHlslSemanticGOOGLE:      return "DecorationHlslSemanticGOOGLE";
     case DecorationRestrictPointerEXT:      return "DecorationRestrictPointerEXT";
     case DecorationAliasedPointerEXT:       return "DecorationAliasedPointerEXT";
-
-    case DecorationHitObjectShaderRecordBufferNV:  return "DecorationHitObjectShaderRecordBufferNV";
     }
 }
 
@@ -443,11 +439,6 @@
     case BuiltInPrimitiveLineIndicesEXT:         return "PrimitiveLineIndicesEXT";
     case BuiltInPrimitiveTriangleIndicesEXT:     return "PrimitiveTriangleIndicesEXT";
     case BuiltInCullPrimitiveEXT:                return "CullPrimitiveEXT";
-    case BuiltInCoreCountARM:           return "CoreCountARM";
-    case BuiltInCoreIDARM:              return "CoreIDARM";
-    case BuiltInCoreMaxIDARM:           return "CoreMaxIDARM";
-    case BuiltInWarpIDARM:              return "WarpIDARM";
-    case BuiltInWarpMaxIDARM:           return "BuiltInWarpMaxIDARM";
 
     default: return "Bad";
     }
@@ -1007,9 +998,7 @@
     case CapabilityWorkgroupMemoryExplicitLayoutKHR:            return "CapabilityWorkgroupMemoryExplicitLayoutKHR";
     case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR:  return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR";
     case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR";
-    case CapabilityCoreBuiltinsARM:                             return "CoreBuiltinsARM";
 
-    case CapabilityShaderInvocationReorderNV:                return "ShaderInvocationReorderNV";
     default: return "Bad";
     }
 }
@@ -1464,40 +1453,6 @@
     case OpBeginInvocationInterlockEXT:     return "OpBeginInvocationInterlockEXT";
     case OpEndInvocationInterlockEXT:       return "OpEndInvocationInterlockEXT";
 
-    case OpTypeHitObjectNV:                     return "OpTypeHitObjectNV";
-    case OpHitObjectTraceRayNV:                 return "OpHitObjectTraceRayNV";
-    case OpHitObjectTraceRayMotionNV:           return "OpHitObjectTraceRayMotionNV";
-    case OpHitObjectRecordHitNV:                return "OpHitObjectRecordHitNV";
-    case OpHitObjectRecordHitMotionNV:          return "OpHitObjectRecordHitMotionNV";
-    case OpHitObjectRecordHitWithIndexNV:       return "OpHitObjectRecordHitWithIndexNV";
-    case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
-    case OpHitObjectRecordMissNV:               return "OpHitObjectRecordMissNV";
-    case OpHitObjectRecordMissMotionNV:         return "OpHitObjectRecordMissMotionNV";
-    case OpHitObjectRecordEmptyNV:              return "OpHitObjectRecordEmptyNV";
-    case OpHitObjectExecuteShaderNV:            return "OpHitObjectExecuteShaderNV";
-    case OpReorderThreadWithHintNV:             return "OpReorderThreadWithHintNV";
-    case OpReorderThreadWithHitObjectNV:        return "OpReorderThreadWithHitObjectNV";
-    case OpHitObjectGetCurrentTimeNV:           return "OpHitObjectGetCurrentTimeNV";
-    case OpHitObjectGetAttributesNV:            return "OpHitObjectGetAttributesNV";
-    case OpHitObjectGetHitKindNV:               return "OpHitObjectGetFrontFaceNV";
-    case OpHitObjectGetPrimitiveIndexNV:        return "OpHitObjectGetPrimitiveIndexNV";
-    case OpHitObjectGetGeometryIndexNV:         return "OpHitObjectGetGeometryIndexNV";
-    case OpHitObjectGetInstanceIdNV:            return "OpHitObjectGetInstanceIdNV";
-    case OpHitObjectGetInstanceCustomIndexNV:   return "OpHitObjectGetInstanceCustomIndexNV";
-    case OpHitObjectGetObjectRayDirectionNV:    return "OpHitObjectGetObjectRayDirectionNV";
-    case OpHitObjectGetObjectRayOriginNV:       return "OpHitObjectGetObjectRayOriginNV";
-    case OpHitObjectGetWorldRayDirectionNV:     return "OpHitObjectGetWorldRayDirectionNV";
-    case OpHitObjectGetWorldRayOriginNV:        return "OpHitObjectGetWorldRayOriginNV";
-    case OpHitObjectGetWorldToObjectNV:         return "OpHitObjectGetWorldToObjectNV";
-    case OpHitObjectGetObjectToWorldNV:         return "OpHitObjectGetObjectToWorldNV";
-    case OpHitObjectGetRayTMaxNV:               return "OpHitObjectGetRayTMaxNV";
-    case OpHitObjectGetRayTMinNV:               return "OpHitObjectGetRayTMinNV";
-    case OpHitObjectIsEmptyNV:                  return "OpHitObjectIsEmptyNV";
-    case OpHitObjectIsHitNV:                    return "OpHitObjectIsHitNV";
-    case OpHitObjectIsMissNV:                   return "OpHitObjectIsMissNV";
-    case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
-    case OpHitObjectGetShaderRecordBufferHandleNV:   return "OpHitObjectGetShaderRecordBufferHandleNV";
-
     default:
         return "Bad";
     }
@@ -1652,7 +1607,7 @@
     DecorationOperands[DecorationInputAttachmentIndex].push(OperandLiteralNumber, "'Attachment Index'");
     DecorationOperands[DecorationAlignment].push(OperandLiteralNumber, "'Alignment'");
 
-    OperandClassParams[OperandSource].set(0, SourceString, nullptr);
+    OperandClassParams[OperandSource].set(0, SourceString, 0);
     OperandClassParams[OperandExecutionModel].set(0, ExecutionModelString, nullptr);
     OperandClassParams[OperandAddressing].set(0, AddressingString, nullptr);
     OperandClassParams[OperandMemory].set(0, MemoryString, nullptr);
@@ -1684,7 +1639,7 @@
     OperandClassParams[OperandKernelEnqueueFlags].set(0, KernelEnqueueFlagsString, nullptr);
     OperandClassParams[OperandKernelProfilingInfo].set(0, KernelProfilingInfoString, nullptr, true);
     OperandClassParams[OperandCapability].set(0, CapabilityString, nullptr);
-    OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, nullptr);
+    OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, 0);
 
     // set name of operator, an initial set of <id> style operands, and the description
 
@@ -3075,191 +3030,6 @@
     InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(false, false);
 
     InstructionDesc[OpReadClockKHR].operands.push(OperandScope, "'Scope'");
-
-    InstructionDesc[OpTypeHitObjectNV].setResultAndType(true, false);
-    
-    InstructionDesc[OpHitObjectGetShaderRecordBufferHandleNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetShaderRecordBufferHandleNV].setResultAndType(true, true);
-
-    InstructionDesc[OpReorderThreadWithHintNV].operands.push(OperandId, "'Hint'");
-    InstructionDesc[OpReorderThreadWithHintNV].operands.push(OperandId, "'Bits'");
-    InstructionDesc[OpReorderThreadWithHintNV].setResultAndType(false, false);
-
-    InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'Hint'");
-    InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'Bits'");
-    InstructionDesc[OpReorderThreadWithHitObjectNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectGetCurrentTimeNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetCurrentTimeNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetHitKindNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetHitKindNV].setResultAndType(true, true);
-    
-    InstructionDesc[OpHitObjectGetPrimitiveIndexNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetPrimitiveIndexNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetGeometryIndexNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetGeometryIndexNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetInstanceIdNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetInstanceIdNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetInstanceCustomIndexNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetInstanceCustomIndexNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetObjectRayDirectionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetObjectRayDirectionNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetObjectRayOriginNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetObjectRayOriginNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetWorldRayDirectionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetWorldRayDirectionNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetWorldRayOriginNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetWorldRayOriginNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetWorldToObjectNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetWorldToObjectNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetObjectToWorldNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetObjectToWorldNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetRayTMaxNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetRayTMaxNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetRayTMinNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetRayTMinNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetShaderBindingTableRecordIndexNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetShaderBindingTableRecordIndexNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectIsEmptyNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectIsEmptyNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectIsHitNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectIsHitNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectIsMissNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectIsMissNV].setResultAndType(true, true);
-
-    InstructionDesc[OpHitObjectGetAttributesNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectGetAttributesNV].operands.push(OperandId, "'HitObjectAttribute'");
-    InstructionDesc[OpHitObjectGetAttributesNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectExecuteShaderNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectExecuteShaderNV].operands.push(OperandId, "'Payload'");
-    InstructionDesc[OpHitObjectExecuteShaderNV].setResultAndType(false, false);
-    
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'InstanceId'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'PrimitiveId'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'GeometryIndex'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitKind'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'SBT Record Offset'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'SBT Record Stride'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitObject Attribute'");
-    InstructionDesc[OpHitObjectRecordHitNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'InstanceId'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'PrimitiveId'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'GeometryIndex'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitKind'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'SBT Record Offset'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'SBT Record Stride'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Current Time'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitObject Attribute'");
-    InstructionDesc[OpHitObjectRecordHitMotionNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'InstanceId'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'PrimitiveId'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'GeometryIndex'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitKind'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'SBT Record Index'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitObject Attribute'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'InstanceId'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'PrimitiveId'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'GeometryIndex'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitKind'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'SBT Record Index'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Current Time'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitObject Attribute'");
-    InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'SBT Index'");
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordMissNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'SBT Index'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Current Time'");
-    InstructionDesc[OpHitObjectRecordMissMotionNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectRecordEmptyNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectRecordEmptyNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'RayFlags'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Cullmask'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'SBT Record Offset'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'SBT Record Stride'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Miss Index'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Payload'");
-    InstructionDesc[OpHitObjectTraceRayNV].setResultAndType(false, false);
-
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'HitObject'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'RayFlags'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Cullmask'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Miss Index'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Origin'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'TMin'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Direction'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'TMax'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Time'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Payload'");
-    InstructionDesc[OpHitObjectTraceRayMotionNV].setResultAndType(false, false);
 }
 
 }; // end spv namespace
diff --git a/SPIRV/doc.h b/SPIRV/doc.h
index 7e15599..2a0b28c 100644
--- a/SPIRV/doc.h
+++ b/SPIRV/doc.h
@@ -190,7 +190,7 @@
 // Parameterize an enumerant
 class EnumParameters {
 public:
-    EnumParameters() : desc(nullptr) { }
+    EnumParameters() : desc(0) { }
     const char* desc;
 };
 
@@ -198,7 +198,7 @@
 class EnumDefinition : public EnumParameters {
 public:
     EnumDefinition() : 
-        ceiling(0), bitmask(false), getName(nullptr), enumParams(nullptr), operandParams(nullptr) { }
+        ceiling(0), bitmask(false), getName(0), enumParams(0), operandParams(0) { }
     void set(int ceil, const char* (*name)(int), EnumParameters* ep, bool mask = false)
     {
         ceiling = ceil;
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
index 768a6f5..0e40544 100644
--- a/SPIRV/spirv.hpp
+++ b/SPIRV/spirv.hpp
@@ -1,2575 +1,2533 @@
-// Copyright (c) 2014-2020 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.
-
-// This header is automatically generated by the same tool that creates
-// the Binary Section of the SPIR-V specification.
-
-// Enumeration tokens for SPIR-V, in various styles:
-//   C, C++, C++11, JSON, Lua, Python, C#, D
-//
-// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
-// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
-// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
-// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
-// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
-// - C# will use enum classes in the Specification class located in the "Spv" namespace,
-//     e.g.: Spv.Specification.SourceLanguage.GLSL
-// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
-//
-// Some tokens act like mask values, which can be OR'd together,
-// while others are mutually exclusive.  The mask-like ones have
-// "Mask" in their name, and a parallel enum that has the shift
-// amount (1 << x) for each corresponding enumerant.
-
-#ifndef spirv_HPP
-#define spirv_HPP
-
-namespace spv {
-
-typedef unsigned int Id;
-
-#define SPV_VERSION 0x10600
-#define SPV_REVISION 1
-
-static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010600;
-static const unsigned int Revision = 1;
-static const unsigned int OpCodeMask = 0xffff;
-static const unsigned int WordCountShift = 16;
-
-enum SourceLanguage {
-    SourceLanguageUnknown = 0,
-    SourceLanguageESSL = 1,
-    SourceLanguageGLSL = 2,
-    SourceLanguageOpenCL_C = 3,
-    SourceLanguageOpenCL_CPP = 4,
-    SourceLanguageHLSL = 5,
-    SourceLanguageCPP_for_OpenCL = 6,
-    SourceLanguageMax = 0x7fffffff,
-};
-
-enum ExecutionModel {
-    ExecutionModelVertex = 0,
-    ExecutionModelTessellationControl = 1,
-    ExecutionModelTessellationEvaluation = 2,
-    ExecutionModelGeometry = 3,
-    ExecutionModelFragment = 4,
-    ExecutionModelGLCompute = 5,
-    ExecutionModelKernel = 6,
-    ExecutionModelTaskNV = 5267,
-    ExecutionModelMeshNV = 5268,
-    ExecutionModelRayGenerationKHR = 5313,
-    ExecutionModelRayGenerationNV = 5313,
-    ExecutionModelIntersectionKHR = 5314,
-    ExecutionModelIntersectionNV = 5314,
-    ExecutionModelAnyHitKHR = 5315,
-    ExecutionModelAnyHitNV = 5315,
-    ExecutionModelClosestHitKHR = 5316,
-    ExecutionModelClosestHitNV = 5316,
-    ExecutionModelMissKHR = 5317,
-    ExecutionModelMissNV = 5317,
-    ExecutionModelCallableKHR = 5318,
-    ExecutionModelCallableNV = 5318,
-    ExecutionModelTaskEXT = 5364,
-    ExecutionModelMeshEXT = 5365,
-    ExecutionModelMax = 0x7fffffff,
-};
-
-enum AddressingModel {
-    AddressingModelLogical = 0,
-    AddressingModelPhysical32 = 1,
-    AddressingModelPhysical64 = 2,
-    AddressingModelPhysicalStorageBuffer64 = 5348,
-    AddressingModelPhysicalStorageBuffer64EXT = 5348,
-    AddressingModelMax = 0x7fffffff,
-};
-
-enum MemoryModel {
-    MemoryModelSimple = 0,
-    MemoryModelGLSL450 = 1,
-    MemoryModelOpenCL = 2,
-    MemoryModelVulkan = 3,
-    MemoryModelVulkanKHR = 3,
-    MemoryModelMax = 0x7fffffff,
-};
-
-enum ExecutionMode {
-    ExecutionModeInvocations = 0,
-    ExecutionModeSpacingEqual = 1,
-    ExecutionModeSpacingFractionalEven = 2,
-    ExecutionModeSpacingFractionalOdd = 3,
-    ExecutionModeVertexOrderCw = 4,
-    ExecutionModeVertexOrderCcw = 5,
-    ExecutionModePixelCenterInteger = 6,
-    ExecutionModeOriginUpperLeft = 7,
-    ExecutionModeOriginLowerLeft = 8,
-    ExecutionModeEarlyFragmentTests = 9,
-    ExecutionModePointMode = 10,
-    ExecutionModeXfb = 11,
-    ExecutionModeDepthReplacing = 12,
-    ExecutionModeDepthGreater = 14,
-    ExecutionModeDepthLess = 15,
-    ExecutionModeDepthUnchanged = 16,
-    ExecutionModeLocalSize = 17,
-    ExecutionModeLocalSizeHint = 18,
-    ExecutionModeInputPoints = 19,
-    ExecutionModeInputLines = 20,
-    ExecutionModeInputLinesAdjacency = 21,
-    ExecutionModeTriangles = 22,
-    ExecutionModeInputTrianglesAdjacency = 23,
-    ExecutionModeQuads = 24,
-    ExecutionModeIsolines = 25,
-    ExecutionModeOutputVertices = 26,
-    ExecutionModeOutputPoints = 27,
-    ExecutionModeOutputLineStrip = 28,
-    ExecutionModeOutputTriangleStrip = 29,
-    ExecutionModeVecTypeHint = 30,
-    ExecutionModeContractionOff = 31,
-    ExecutionModeInitializer = 33,
-    ExecutionModeFinalizer = 34,
-    ExecutionModeSubgroupSize = 35,
-    ExecutionModeSubgroupsPerWorkgroup = 36,
-    ExecutionModeSubgroupsPerWorkgroupId = 37,
-    ExecutionModeLocalSizeId = 38,
-    ExecutionModeLocalSizeHintId = 39,
-    ExecutionModeSubgroupUniformControlFlowKHR = 4421,
-    ExecutionModePostDepthCoverage = 4446,
-    ExecutionModeDenormPreserve = 4459,
-    ExecutionModeDenormFlushToZero = 4460,
-    ExecutionModeSignedZeroInfNanPreserve = 4461,
-    ExecutionModeRoundingModeRTE = 4462,
-    ExecutionModeRoundingModeRTZ = 4463,
-    ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
-    ExecutionModeStencilRefReplacingEXT = 5027,
-    ExecutionModeStencilRefUnchangedFrontAMD = 5079,
-    ExecutionModeStencilRefGreaterFrontAMD = 5080,
-    ExecutionModeStencilRefLessFrontAMD = 5081,
-    ExecutionModeStencilRefUnchangedBackAMD = 5082,
-    ExecutionModeStencilRefGreaterBackAMD = 5083,
-    ExecutionModeStencilRefLessBackAMD = 5084,
-    ExecutionModeOutputLinesEXT = 5269,
-    ExecutionModeOutputLinesNV = 5269,
-    ExecutionModeOutputPrimitivesEXT = 5270,
-    ExecutionModeOutputPrimitivesNV = 5270,
-    ExecutionModeDerivativeGroupQuadsNV = 5289,
-    ExecutionModeDerivativeGroupLinearNV = 5290,
-    ExecutionModeOutputTrianglesEXT = 5298,
-    ExecutionModeOutputTrianglesNV = 5298,
-    ExecutionModePixelInterlockOrderedEXT = 5366,
-    ExecutionModePixelInterlockUnorderedEXT = 5367,
-    ExecutionModeSampleInterlockOrderedEXT = 5368,
-    ExecutionModeSampleInterlockUnorderedEXT = 5369,
-    ExecutionModeShadingRateInterlockOrderedEXT = 5370,
-    ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
-    ExecutionModeSharedLocalMemorySizeINTEL = 5618,
-    ExecutionModeRoundingModeRTPINTEL = 5620,
-    ExecutionModeRoundingModeRTNINTEL = 5621,
-    ExecutionModeFloatingPointModeALTINTEL = 5622,
-    ExecutionModeFloatingPointModeIEEEINTEL = 5623,
-    ExecutionModeMaxWorkgroupSizeINTEL = 5893,
-    ExecutionModeMaxWorkDimINTEL = 5894,
-    ExecutionModeNoGlobalOffsetINTEL = 5895,
-    ExecutionModeNumSIMDWorkitemsINTEL = 5896,
-    ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
-    ExecutionModeMax = 0x7fffffff,
-};
-
-enum StorageClass {
-    StorageClassUniformConstant = 0,
-    StorageClassInput = 1,
-    StorageClassUniform = 2,
-    StorageClassOutput = 3,
-    StorageClassWorkgroup = 4,
-    StorageClassCrossWorkgroup = 5,
-    StorageClassPrivate = 6,
-    StorageClassFunction = 7,
-    StorageClassGeneric = 8,
-    StorageClassPushConstant = 9,
-    StorageClassAtomicCounter = 10,
-    StorageClassImage = 11,
-    StorageClassStorageBuffer = 12,
-    StorageClassCallableDataKHR = 5328,
-    StorageClassCallableDataNV = 5328,
-    StorageClassIncomingCallableDataKHR = 5329,
-    StorageClassIncomingCallableDataNV = 5329,
-    StorageClassRayPayloadKHR = 5338,
-    StorageClassRayPayloadNV = 5338,
-    StorageClassHitAttributeKHR = 5339,
-    StorageClassHitAttributeNV = 5339,
-    StorageClassIncomingRayPayloadKHR = 5342,
-    StorageClassIncomingRayPayloadNV = 5342,
-    StorageClassShaderRecordBufferKHR = 5343,
-    StorageClassShaderRecordBufferNV = 5343,
-    StorageClassPhysicalStorageBuffer = 5349,
-    StorageClassPhysicalStorageBufferEXT = 5349,
-    StorageClassHitObjectAttributeNV = 5385,
-    StorageClassTaskPayloadWorkgroupEXT = 5402,
-    StorageClassCodeSectionINTEL = 5605,
-    StorageClassDeviceOnlyINTEL = 5936,
-    StorageClassHostOnlyINTEL = 5937,
-    StorageClassMax = 0x7fffffff,
-};
-
-enum Dim {
-    Dim1D = 0,
-    Dim2D = 1,
-    Dim3D = 2,
-    DimCube = 3,
-    DimRect = 4,
-    DimBuffer = 5,
-    DimSubpassData = 6,
-    DimMax = 0x7fffffff,
-};
-
-enum SamplerAddressingMode {
-    SamplerAddressingModeNone = 0,
-    SamplerAddressingModeClampToEdge = 1,
-    SamplerAddressingModeClamp = 2,
-    SamplerAddressingModeRepeat = 3,
-    SamplerAddressingModeRepeatMirrored = 4,
-    SamplerAddressingModeMax = 0x7fffffff,
-};
-
-enum SamplerFilterMode {
-    SamplerFilterModeNearest = 0,
-    SamplerFilterModeLinear = 1,
-    SamplerFilterModeMax = 0x7fffffff,
-};
-
-enum ImageFormat {
-    ImageFormatUnknown = 0,
-    ImageFormatRgba32f = 1,
-    ImageFormatRgba16f = 2,
-    ImageFormatR32f = 3,
-    ImageFormatRgba8 = 4,
-    ImageFormatRgba8Snorm = 5,
-    ImageFormatRg32f = 6,
-    ImageFormatRg16f = 7,
-    ImageFormatR11fG11fB10f = 8,
-    ImageFormatR16f = 9,
-    ImageFormatRgba16 = 10,
-    ImageFormatRgb10A2 = 11,
-    ImageFormatRg16 = 12,
-    ImageFormatRg8 = 13,
-    ImageFormatR16 = 14,
-    ImageFormatR8 = 15,
-    ImageFormatRgba16Snorm = 16,
-    ImageFormatRg16Snorm = 17,
-    ImageFormatRg8Snorm = 18,
-    ImageFormatR16Snorm = 19,
-    ImageFormatR8Snorm = 20,
-    ImageFormatRgba32i = 21,
-    ImageFormatRgba16i = 22,
-    ImageFormatRgba8i = 23,
-    ImageFormatR32i = 24,
-    ImageFormatRg32i = 25,
-    ImageFormatRg16i = 26,
-    ImageFormatRg8i = 27,
-    ImageFormatR16i = 28,
-    ImageFormatR8i = 29,
-    ImageFormatRgba32ui = 30,
-    ImageFormatRgba16ui = 31,
-    ImageFormatRgba8ui = 32,
-    ImageFormatR32ui = 33,
-    ImageFormatRgb10a2ui = 34,
-    ImageFormatRg32ui = 35,
-    ImageFormatRg16ui = 36,
-    ImageFormatRg8ui = 37,
-    ImageFormatR16ui = 38,
-    ImageFormatR8ui = 39,
-    ImageFormatR64ui = 40,
-    ImageFormatR64i = 41,
-    ImageFormatMax = 0x7fffffff,
-};
-
-enum ImageChannelOrder {
-    ImageChannelOrderR = 0,
-    ImageChannelOrderA = 1,
-    ImageChannelOrderRG = 2,
-    ImageChannelOrderRA = 3,
-    ImageChannelOrderRGB = 4,
-    ImageChannelOrderRGBA = 5,
-    ImageChannelOrderBGRA = 6,
-    ImageChannelOrderARGB = 7,
-    ImageChannelOrderIntensity = 8,
-    ImageChannelOrderLuminance = 9,
-    ImageChannelOrderRx = 10,
-    ImageChannelOrderRGx = 11,
-    ImageChannelOrderRGBx = 12,
-    ImageChannelOrderDepth = 13,
-    ImageChannelOrderDepthStencil = 14,
-    ImageChannelOrdersRGB = 15,
-    ImageChannelOrdersRGBx = 16,
-    ImageChannelOrdersRGBA = 17,
-    ImageChannelOrdersBGRA = 18,
-    ImageChannelOrderABGR = 19,
-    ImageChannelOrderMax = 0x7fffffff,
-};
-
-enum ImageChannelDataType {
-    ImageChannelDataTypeSnormInt8 = 0,
-    ImageChannelDataTypeSnormInt16 = 1,
-    ImageChannelDataTypeUnormInt8 = 2,
-    ImageChannelDataTypeUnormInt16 = 3,
-    ImageChannelDataTypeUnormShort565 = 4,
-    ImageChannelDataTypeUnormShort555 = 5,
-    ImageChannelDataTypeUnormInt101010 = 6,
-    ImageChannelDataTypeSignedInt8 = 7,
-    ImageChannelDataTypeSignedInt16 = 8,
-    ImageChannelDataTypeSignedInt32 = 9,
-    ImageChannelDataTypeUnsignedInt8 = 10,
-    ImageChannelDataTypeUnsignedInt16 = 11,
-    ImageChannelDataTypeUnsignedInt32 = 12,
-    ImageChannelDataTypeHalfFloat = 13,
-    ImageChannelDataTypeFloat = 14,
-    ImageChannelDataTypeUnormInt24 = 15,
-    ImageChannelDataTypeUnormInt101010_2 = 16,
-    ImageChannelDataTypeMax = 0x7fffffff,
-};
-
-enum ImageOperandsShift {
-    ImageOperandsBiasShift = 0,
-    ImageOperandsLodShift = 1,
-    ImageOperandsGradShift = 2,
-    ImageOperandsConstOffsetShift = 3,
-    ImageOperandsOffsetShift = 4,
-    ImageOperandsConstOffsetsShift = 5,
-    ImageOperandsSampleShift = 6,
-    ImageOperandsMinLodShift = 7,
-    ImageOperandsMakeTexelAvailableShift = 8,
-    ImageOperandsMakeTexelAvailableKHRShift = 8,
-    ImageOperandsMakeTexelVisibleShift = 9,
-    ImageOperandsMakeTexelVisibleKHRShift = 9,
-    ImageOperandsNonPrivateTexelShift = 10,
-    ImageOperandsNonPrivateTexelKHRShift = 10,
-    ImageOperandsVolatileTexelShift = 11,
-    ImageOperandsVolatileTexelKHRShift = 11,
-    ImageOperandsSignExtendShift = 12,
-    ImageOperandsZeroExtendShift = 13,
-    ImageOperandsNontemporalShift = 14,
-    ImageOperandsOffsetsShift = 16,
-    ImageOperandsMax = 0x7fffffff,
-};
-
-enum ImageOperandsMask {
-    ImageOperandsMaskNone = 0,
-    ImageOperandsBiasMask = 0x00000001,
-    ImageOperandsLodMask = 0x00000002,
-    ImageOperandsGradMask = 0x00000004,
-    ImageOperandsConstOffsetMask = 0x00000008,
-    ImageOperandsOffsetMask = 0x00000010,
-    ImageOperandsConstOffsetsMask = 0x00000020,
-    ImageOperandsSampleMask = 0x00000040,
-    ImageOperandsMinLodMask = 0x00000080,
-    ImageOperandsMakeTexelAvailableMask = 0x00000100,
-    ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
-    ImageOperandsMakeTexelVisibleMask = 0x00000200,
-    ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
-    ImageOperandsNonPrivateTexelMask = 0x00000400,
-    ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
-    ImageOperandsVolatileTexelMask = 0x00000800,
-    ImageOperandsVolatileTexelKHRMask = 0x00000800,
-    ImageOperandsSignExtendMask = 0x00001000,
-    ImageOperandsZeroExtendMask = 0x00002000,
-    ImageOperandsNontemporalMask = 0x00004000,
-    ImageOperandsOffsetsMask = 0x00010000,
-};
-
-enum FPFastMathModeShift {
-    FPFastMathModeNotNaNShift = 0,
-    FPFastMathModeNotInfShift = 1,
-    FPFastMathModeNSZShift = 2,
-    FPFastMathModeAllowRecipShift = 3,
-    FPFastMathModeFastShift = 4,
-    FPFastMathModeAllowContractFastINTELShift = 16,
-    FPFastMathModeAllowReassocINTELShift = 17,
-    FPFastMathModeMax = 0x7fffffff,
-};
-
-enum FPFastMathModeMask {
-    FPFastMathModeMaskNone = 0,
-    FPFastMathModeNotNaNMask = 0x00000001,
-    FPFastMathModeNotInfMask = 0x00000002,
-    FPFastMathModeNSZMask = 0x00000004,
-    FPFastMathModeAllowRecipMask = 0x00000008,
-    FPFastMathModeFastMask = 0x00000010,
-    FPFastMathModeAllowContractFastINTELMask = 0x00010000,
-    FPFastMathModeAllowReassocINTELMask = 0x00020000,
-};
-
-enum FPRoundingMode {
-    FPRoundingModeRTE = 0,
-    FPRoundingModeRTZ = 1,
-    FPRoundingModeRTP = 2,
-    FPRoundingModeRTN = 3,
-    FPRoundingModeMax = 0x7fffffff,
-};
-
-enum LinkageType {
-    LinkageTypeExport = 0,
-    LinkageTypeImport = 1,
-    LinkageTypeLinkOnceODR = 2,
-    LinkageTypeMax = 0x7fffffff,
-};
-
-enum AccessQualifier {
-    AccessQualifierReadOnly = 0,
-    AccessQualifierWriteOnly = 1,
-    AccessQualifierReadWrite = 2,
-    AccessQualifierMax = 0x7fffffff,
-};
-
-enum FunctionParameterAttribute {
-    FunctionParameterAttributeZext = 0,
-    FunctionParameterAttributeSext = 1,
-    FunctionParameterAttributeByVal = 2,
-    FunctionParameterAttributeSret = 3,
-    FunctionParameterAttributeNoAlias = 4,
-    FunctionParameterAttributeNoCapture = 5,
-    FunctionParameterAttributeNoWrite = 6,
-    FunctionParameterAttributeNoReadWrite = 7,
-    FunctionParameterAttributeMax = 0x7fffffff,
-};
-
-enum Decoration {
-    DecorationRelaxedPrecision = 0,
-    DecorationSpecId = 1,
-    DecorationBlock = 2,
-    DecorationBufferBlock = 3,
-    DecorationRowMajor = 4,
-    DecorationColMajor = 5,
-    DecorationArrayStride = 6,
-    DecorationMatrixStride = 7,
-    DecorationGLSLShared = 8,
-    DecorationGLSLPacked = 9,
-    DecorationCPacked = 10,
-    DecorationBuiltIn = 11,
-    DecorationNoPerspective = 13,
-    DecorationFlat = 14,
-    DecorationPatch = 15,
-    DecorationCentroid = 16,
-    DecorationSample = 17,
-    DecorationInvariant = 18,
-    DecorationRestrict = 19,
-    DecorationAliased = 20,
-    DecorationVolatile = 21,
-    DecorationConstant = 22,
-    DecorationCoherent = 23,
-    DecorationNonWritable = 24,
-    DecorationNonReadable = 25,
-    DecorationUniform = 26,
-    DecorationUniformId = 27,
-    DecorationSaturatedConversion = 28,
-    DecorationStream = 29,
-    DecorationLocation = 30,
-    DecorationComponent = 31,
-    DecorationIndex = 32,
-    DecorationBinding = 33,
-    DecorationDescriptorSet = 34,
-    DecorationOffset = 35,
-    DecorationXfbBuffer = 36,
-    DecorationXfbStride = 37,
-    DecorationFuncParamAttr = 38,
-    DecorationFPRoundingMode = 39,
-    DecorationFPFastMathMode = 40,
-    DecorationLinkageAttributes = 41,
-    DecorationNoContraction = 42,
-    DecorationInputAttachmentIndex = 43,
-    DecorationAlignment = 44,
-    DecorationMaxByteOffset = 45,
-    DecorationAlignmentId = 46,
-    DecorationMaxByteOffsetId = 47,
-    DecorationNoSignedWrap = 4469,
-    DecorationNoUnsignedWrap = 4470,
-    DecorationExplicitInterpAMD = 4999,
-    DecorationOverrideCoverageNV = 5248,
-    DecorationPassthroughNV = 5250,
-    DecorationViewportRelativeNV = 5252,
-    DecorationSecondaryViewportRelativeNV = 5256,
-    DecorationPerPrimitiveEXT = 5271,
-    DecorationPerPrimitiveNV = 5271,
-    DecorationPerViewNV = 5272,
-    DecorationPerTaskNV = 5273,
-    DecorationPerVertexKHR = 5285,
-    DecorationPerVertexNV = 5285,
-    DecorationNonUniform = 5300,
-    DecorationNonUniformEXT = 5300,
-    DecorationRestrictPointer = 5355,
-    DecorationRestrictPointerEXT = 5355,
-    DecorationAliasedPointer = 5356,
-    DecorationAliasedPointerEXT = 5356,
-    DecorationHitObjectShaderRecordBufferNV = 5386,
-    DecorationBindlessSamplerNV = 5398,
-    DecorationBindlessImageNV = 5399,
-    DecorationBoundSamplerNV = 5400,
-    DecorationBoundImageNV = 5401,
-    DecorationSIMTCallINTEL = 5599,
-    DecorationReferencedIndirectlyINTEL = 5602,
-    DecorationClobberINTEL = 5607,
-    DecorationSideEffectsINTEL = 5608,
-    DecorationVectorComputeVariableINTEL = 5624,
-    DecorationFuncParamIOKindINTEL = 5625,
-    DecorationVectorComputeFunctionINTEL = 5626,
-    DecorationStackCallINTEL = 5627,
-    DecorationGlobalVariableOffsetINTEL = 5628,
-    DecorationCounterBuffer = 5634,
-    DecorationHlslCounterBufferGOOGLE = 5634,
-    DecorationHlslSemanticGOOGLE = 5635,
-    DecorationUserSemantic = 5635,
-    DecorationUserTypeGOOGLE = 5636,
-    DecorationFunctionRoundingModeINTEL = 5822,
-    DecorationFunctionDenormModeINTEL = 5823,
-    DecorationRegisterINTEL = 5825,
-    DecorationMemoryINTEL = 5826,
-    DecorationNumbanksINTEL = 5827,
-    DecorationBankwidthINTEL = 5828,
-    DecorationMaxPrivateCopiesINTEL = 5829,
-    DecorationSinglepumpINTEL = 5830,
-    DecorationDoublepumpINTEL = 5831,
-    DecorationMaxReplicatesINTEL = 5832,
-    DecorationSimpleDualPortINTEL = 5833,
-    DecorationMergeINTEL = 5834,
-    DecorationBankBitsINTEL = 5835,
-    DecorationForcePow2DepthINTEL = 5836,
-    DecorationBurstCoalesceINTEL = 5899,
-    DecorationCacheSizeINTEL = 5900,
-    DecorationDontStaticallyCoalesceINTEL = 5901,
-    DecorationPrefetchINTEL = 5902,
-    DecorationStallEnableINTEL = 5905,
-    DecorationFuseLoopsInFunctionINTEL = 5907,
-    DecorationBufferLocationINTEL = 5921,
-    DecorationIOPipeStorageINTEL = 5944,
-    DecorationFunctionFloatingPointModeINTEL = 6080,
-    DecorationSingleElementVectorINTEL = 6085,
-    DecorationVectorComputeCallableFunctionINTEL = 6087,
-    DecorationMediaBlockIOINTEL = 6140,
-    DecorationMax = 0x7fffffff,
-};
-
-enum BuiltIn {
-    BuiltInPosition = 0,
-    BuiltInPointSize = 1,
-    BuiltInClipDistance = 3,
-    BuiltInCullDistance = 4,
-    BuiltInVertexId = 5,
-    BuiltInInstanceId = 6,
-    BuiltInPrimitiveId = 7,
-    BuiltInInvocationId = 8,
-    BuiltInLayer = 9,
-    BuiltInViewportIndex = 10,
-    BuiltInTessLevelOuter = 11,
-    BuiltInTessLevelInner = 12,
-    BuiltInTessCoord = 13,
-    BuiltInPatchVertices = 14,
-    BuiltInFragCoord = 15,
-    BuiltInPointCoord = 16,
-    BuiltInFrontFacing = 17,
-    BuiltInSampleId = 18,
-    BuiltInSamplePosition = 19,
-    BuiltInSampleMask = 20,
-    BuiltInFragDepth = 22,
-    BuiltInHelperInvocation = 23,
-    BuiltInNumWorkgroups = 24,
-    BuiltInWorkgroupSize = 25,
-    BuiltInWorkgroupId = 26,
-    BuiltInLocalInvocationId = 27,
-    BuiltInGlobalInvocationId = 28,
-    BuiltInLocalInvocationIndex = 29,
-    BuiltInWorkDim = 30,
-    BuiltInGlobalSize = 31,
-    BuiltInEnqueuedWorkgroupSize = 32,
-    BuiltInGlobalOffset = 33,
-    BuiltInGlobalLinearId = 34,
-    BuiltInSubgroupSize = 36,
-    BuiltInSubgroupMaxSize = 37,
-    BuiltInNumSubgroups = 38,
-    BuiltInNumEnqueuedSubgroups = 39,
-    BuiltInSubgroupId = 40,
-    BuiltInSubgroupLocalInvocationId = 41,
-    BuiltInVertexIndex = 42,
-    BuiltInInstanceIndex = 43,
-    BuiltInCoreCountARM = 4161,
-    BuiltInCoreIDARM = 4160,
-    BuiltInCoreMaxIDARM = 4162,
-    BuiltInWarpIDARM = 4163,
-    BuiltInWarpMaxIDARM = 4164,
-    BuiltInSubgroupEqMask = 4416,
-    BuiltInSubgroupEqMaskKHR = 4416,
-    BuiltInSubgroupGeMask = 4417,
-    BuiltInSubgroupGeMaskKHR = 4417,
-    BuiltInSubgroupGtMask = 4418,
-    BuiltInSubgroupGtMaskKHR = 4418,
-    BuiltInSubgroupLeMask = 4419,
-    BuiltInSubgroupLeMaskKHR = 4419,
-    BuiltInSubgroupLtMask = 4420,
-    BuiltInSubgroupLtMaskKHR = 4420,
-    BuiltInBaseVertex = 4424,
-    BuiltInBaseInstance = 4425,
-    BuiltInDrawIndex = 4426,
-    BuiltInPrimitiveShadingRateKHR = 4432,
-    BuiltInDeviceIndex = 4438,
-    BuiltInViewIndex = 4440,
-    BuiltInShadingRateKHR = 4444,
-    BuiltInBaryCoordNoPerspAMD = 4992,
-    BuiltInBaryCoordNoPerspCentroidAMD = 4993,
-    BuiltInBaryCoordNoPerspSampleAMD = 4994,
-    BuiltInBaryCoordSmoothAMD = 4995,
-    BuiltInBaryCoordSmoothCentroidAMD = 4996,
-    BuiltInBaryCoordSmoothSampleAMD = 4997,
-    BuiltInBaryCoordPullModelAMD = 4998,
-    BuiltInFragStencilRefEXT = 5014,
-    BuiltInViewportMaskNV = 5253,
-    BuiltInSecondaryPositionNV = 5257,
-    BuiltInSecondaryViewportMaskNV = 5258,
-    BuiltInPositionPerViewNV = 5261,
-    BuiltInViewportMaskPerViewNV = 5262,
-    BuiltInFullyCoveredEXT = 5264,
-    BuiltInTaskCountNV = 5274,
-    BuiltInPrimitiveCountNV = 5275,
-    BuiltInPrimitiveIndicesNV = 5276,
-    BuiltInClipDistancePerViewNV = 5277,
-    BuiltInCullDistancePerViewNV = 5278,
-    BuiltInLayerPerViewNV = 5279,
-    BuiltInMeshViewCountNV = 5280,
-    BuiltInMeshViewIndicesNV = 5281,
-    BuiltInBaryCoordKHR = 5286,
-    BuiltInBaryCoordNV = 5286,
-    BuiltInBaryCoordNoPerspKHR = 5287,
-    BuiltInBaryCoordNoPerspNV = 5287,
-    BuiltInFragSizeEXT = 5292,
-    BuiltInFragmentSizeNV = 5292,
-    BuiltInFragInvocationCountEXT = 5293,
-    BuiltInInvocationsPerPixelNV = 5293,
-    BuiltInPrimitivePointIndicesEXT = 5294,
-    BuiltInPrimitiveLineIndicesEXT = 5295,
-    BuiltInPrimitiveTriangleIndicesEXT = 5296,
-    BuiltInCullPrimitiveEXT = 5299,
-    BuiltInLaunchIdKHR = 5319,
-    BuiltInLaunchIdNV = 5319,
-    BuiltInLaunchSizeKHR = 5320,
-    BuiltInLaunchSizeNV = 5320,
-    BuiltInWorldRayOriginKHR = 5321,
-    BuiltInWorldRayOriginNV = 5321,
-    BuiltInWorldRayDirectionKHR = 5322,
-    BuiltInWorldRayDirectionNV = 5322,
-    BuiltInObjectRayOriginKHR = 5323,
-    BuiltInObjectRayOriginNV = 5323,
-    BuiltInObjectRayDirectionKHR = 5324,
-    BuiltInObjectRayDirectionNV = 5324,
-    BuiltInRayTminKHR = 5325,
-    BuiltInRayTminNV = 5325,
-    BuiltInRayTmaxKHR = 5326,
-    BuiltInRayTmaxNV = 5326,
-    BuiltInInstanceCustomIndexKHR = 5327,
-    BuiltInInstanceCustomIndexNV = 5327,
-    BuiltInObjectToWorldKHR = 5330,
-    BuiltInObjectToWorldNV = 5330,
-    BuiltInWorldToObjectKHR = 5331,
-    BuiltInWorldToObjectNV = 5331,
-    BuiltInHitTNV = 5332,
-    BuiltInHitKindKHR = 5333,
-    BuiltInHitKindNV = 5333,
-    BuiltInCurrentRayTimeNV = 5334,
-    BuiltInIncomingRayFlagsKHR = 5351,
-    BuiltInIncomingRayFlagsNV = 5351,
-    BuiltInRayGeometryIndexKHR = 5352,
-    BuiltInWarpsPerSMNV = 5374,
-    BuiltInSMCountNV = 5375,
-    BuiltInWarpIDNV = 5376,
-    BuiltInSMIDNV = 5377,
-    BuiltInCullMaskKHR = 6021,
-    BuiltInMax = 0x7fffffff,
-};
-
-enum SelectionControlShift {
-    SelectionControlFlattenShift = 0,
-    SelectionControlDontFlattenShift = 1,
-    SelectionControlMax = 0x7fffffff,
-};
-
-enum SelectionControlMask {
-    SelectionControlMaskNone = 0,
-    SelectionControlFlattenMask = 0x00000001,
-    SelectionControlDontFlattenMask = 0x00000002,
-};
-
-enum LoopControlShift {
-    LoopControlUnrollShift = 0,
-    LoopControlDontUnrollShift = 1,
-    LoopControlDependencyInfiniteShift = 2,
-    LoopControlDependencyLengthShift = 3,
-    LoopControlMinIterationsShift = 4,
-    LoopControlMaxIterationsShift = 5,
-    LoopControlIterationMultipleShift = 6,
-    LoopControlPeelCountShift = 7,
-    LoopControlPartialCountShift = 8,
-    LoopControlInitiationIntervalINTELShift = 16,
-    LoopControlMaxConcurrencyINTELShift = 17,
-    LoopControlDependencyArrayINTELShift = 18,
-    LoopControlPipelineEnableINTELShift = 19,
-    LoopControlLoopCoalesceINTELShift = 20,
-    LoopControlMaxInterleavingINTELShift = 21,
-    LoopControlSpeculatedIterationsINTELShift = 22,
-    LoopControlNoFusionINTELShift = 23,
-    LoopControlMax = 0x7fffffff,
-};
-
-enum LoopControlMask {
-    LoopControlMaskNone = 0,
-    LoopControlUnrollMask = 0x00000001,
-    LoopControlDontUnrollMask = 0x00000002,
-    LoopControlDependencyInfiniteMask = 0x00000004,
-    LoopControlDependencyLengthMask = 0x00000008,
-    LoopControlMinIterationsMask = 0x00000010,
-    LoopControlMaxIterationsMask = 0x00000020,
-    LoopControlIterationMultipleMask = 0x00000040,
-    LoopControlPeelCountMask = 0x00000080,
-    LoopControlPartialCountMask = 0x00000100,
-    LoopControlInitiationIntervalINTELMask = 0x00010000,
-    LoopControlMaxConcurrencyINTELMask = 0x00020000,
-    LoopControlDependencyArrayINTELMask = 0x00040000,
-    LoopControlPipelineEnableINTELMask = 0x00080000,
-    LoopControlLoopCoalesceINTELMask = 0x00100000,
-    LoopControlMaxInterleavingINTELMask = 0x00200000,
-    LoopControlSpeculatedIterationsINTELMask = 0x00400000,
-    LoopControlNoFusionINTELMask = 0x00800000,
-};
-
-enum FunctionControlShift {
-    FunctionControlInlineShift = 0,
-    FunctionControlDontInlineShift = 1,
-    FunctionControlPureShift = 2,
-    FunctionControlConstShift = 3,
-    FunctionControlOptNoneINTELShift = 16,
-    FunctionControlMax = 0x7fffffff,
-};
-
-enum FunctionControlMask {
-    FunctionControlMaskNone = 0,
-    FunctionControlInlineMask = 0x00000001,
-    FunctionControlDontInlineMask = 0x00000002,
-    FunctionControlPureMask = 0x00000004,
-    FunctionControlConstMask = 0x00000008,
-    FunctionControlOptNoneINTELMask = 0x00010000,
-};
-
-enum MemorySemanticsShift {
-    MemorySemanticsAcquireShift = 1,
-    MemorySemanticsReleaseShift = 2,
-    MemorySemanticsAcquireReleaseShift = 3,
-    MemorySemanticsSequentiallyConsistentShift = 4,
-    MemorySemanticsUniformMemoryShift = 6,
-    MemorySemanticsSubgroupMemoryShift = 7,
-    MemorySemanticsWorkgroupMemoryShift = 8,
-    MemorySemanticsCrossWorkgroupMemoryShift = 9,
-    MemorySemanticsAtomicCounterMemoryShift = 10,
-    MemorySemanticsImageMemoryShift = 11,
-    MemorySemanticsOutputMemoryShift = 12,
-    MemorySemanticsOutputMemoryKHRShift = 12,
-    MemorySemanticsMakeAvailableShift = 13,
-    MemorySemanticsMakeAvailableKHRShift = 13,
-    MemorySemanticsMakeVisibleShift = 14,
-    MemorySemanticsMakeVisibleKHRShift = 14,
-    MemorySemanticsVolatileShift = 15,
-    MemorySemanticsMax = 0x7fffffff,
-};
-
-enum MemorySemanticsMask {
-    MemorySemanticsMaskNone = 0,
-    MemorySemanticsAcquireMask = 0x00000002,
-    MemorySemanticsReleaseMask = 0x00000004,
-    MemorySemanticsAcquireReleaseMask = 0x00000008,
-    MemorySemanticsSequentiallyConsistentMask = 0x00000010,
-    MemorySemanticsUniformMemoryMask = 0x00000040,
-    MemorySemanticsSubgroupMemoryMask = 0x00000080,
-    MemorySemanticsWorkgroupMemoryMask = 0x00000100,
-    MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
-    MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
-    MemorySemanticsImageMemoryMask = 0x00000800,
-    MemorySemanticsOutputMemoryMask = 0x00001000,
-    MemorySemanticsOutputMemoryKHRMask = 0x00001000,
-    MemorySemanticsMakeAvailableMask = 0x00002000,
-    MemorySemanticsMakeAvailableKHRMask = 0x00002000,
-    MemorySemanticsMakeVisibleMask = 0x00004000,
-    MemorySemanticsMakeVisibleKHRMask = 0x00004000,
-    MemorySemanticsVolatileMask = 0x00008000,
-};
-
-enum MemoryAccessShift {
-    MemoryAccessVolatileShift = 0,
-    MemoryAccessAlignedShift = 1,
-    MemoryAccessNontemporalShift = 2,
-    MemoryAccessMakePointerAvailableShift = 3,
-    MemoryAccessMakePointerAvailableKHRShift = 3,
-    MemoryAccessMakePointerVisibleShift = 4,
-    MemoryAccessMakePointerVisibleKHRShift = 4,
-    MemoryAccessNonPrivatePointerShift = 5,
-    MemoryAccessNonPrivatePointerKHRShift = 5,
-    MemoryAccessMax = 0x7fffffff,
-};
-
-enum MemoryAccessMask {
-    MemoryAccessMaskNone = 0,
-    MemoryAccessVolatileMask = 0x00000001,
-    MemoryAccessAlignedMask = 0x00000002,
-    MemoryAccessNontemporalMask = 0x00000004,
-    MemoryAccessMakePointerAvailableMask = 0x00000008,
-    MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
-    MemoryAccessMakePointerVisibleMask = 0x00000010,
-    MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
-    MemoryAccessNonPrivatePointerMask = 0x00000020,
-    MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
-};
-
-enum Scope {
-    ScopeCrossDevice = 0,
-    ScopeDevice = 1,
-    ScopeWorkgroup = 2,
-    ScopeSubgroup = 3,
-    ScopeInvocation = 4,
-    ScopeQueueFamily = 5,
-    ScopeQueueFamilyKHR = 5,
-    ScopeShaderCallKHR = 6,
-    ScopeMax = 0x7fffffff,
-};
-
-enum GroupOperation {
-    GroupOperationReduce = 0,
-    GroupOperationInclusiveScan = 1,
-    GroupOperationExclusiveScan = 2,
-    GroupOperationClusteredReduce = 3,
-    GroupOperationPartitionedReduceNV = 6,
-    GroupOperationPartitionedInclusiveScanNV = 7,
-    GroupOperationPartitionedExclusiveScanNV = 8,
-    GroupOperationMax = 0x7fffffff,
-};
-
-enum KernelEnqueueFlags {
-    KernelEnqueueFlagsNoWait = 0,
-    KernelEnqueueFlagsWaitKernel = 1,
-    KernelEnqueueFlagsWaitWorkGroup = 2,
-    KernelEnqueueFlagsMax = 0x7fffffff,
-};
-
-enum KernelProfilingInfoShift {
-    KernelProfilingInfoCmdExecTimeShift = 0,
-    KernelProfilingInfoMax = 0x7fffffff,
-};
-
-enum KernelProfilingInfoMask {
-    KernelProfilingInfoMaskNone = 0,
-    KernelProfilingInfoCmdExecTimeMask = 0x00000001,
-};
-
-enum Capability {
-    CapabilityMatrix = 0,
-    CapabilityShader = 1,
-    CapabilityGeometry = 2,
-    CapabilityTessellation = 3,
-    CapabilityAddresses = 4,
-    CapabilityLinkage = 5,
-    CapabilityKernel = 6,
-    CapabilityVector16 = 7,
-    CapabilityFloat16Buffer = 8,
-    CapabilityFloat16 = 9,
-    CapabilityFloat64 = 10,
-    CapabilityInt64 = 11,
-    CapabilityInt64Atomics = 12,
-    CapabilityImageBasic = 13,
-    CapabilityImageReadWrite = 14,
-    CapabilityImageMipmap = 15,
-    CapabilityPipes = 17,
-    CapabilityGroups = 18,
-    CapabilityDeviceEnqueue = 19,
-    CapabilityLiteralSampler = 20,
-    CapabilityAtomicStorage = 21,
-    CapabilityInt16 = 22,
-    CapabilityTessellationPointSize = 23,
-    CapabilityGeometryPointSize = 24,
-    CapabilityImageGatherExtended = 25,
-    CapabilityStorageImageMultisample = 27,
-    CapabilityUniformBufferArrayDynamicIndexing = 28,
-    CapabilitySampledImageArrayDynamicIndexing = 29,
-    CapabilityStorageBufferArrayDynamicIndexing = 30,
-    CapabilityStorageImageArrayDynamicIndexing = 31,
-    CapabilityClipDistance = 32,
-    CapabilityCullDistance = 33,
-    CapabilityImageCubeArray = 34,
-    CapabilitySampleRateShading = 35,
-    CapabilityImageRect = 36,
-    CapabilitySampledRect = 37,
-    CapabilityGenericPointer = 38,
-    CapabilityInt8 = 39,
-    CapabilityInputAttachment = 40,
-    CapabilitySparseResidency = 41,
-    CapabilityMinLod = 42,
-    CapabilitySampled1D = 43,
-    CapabilityImage1D = 44,
-    CapabilitySampledCubeArray = 45,
-    CapabilitySampledBuffer = 46,
-    CapabilityImageBuffer = 47,
-    CapabilityImageMSArray = 48,
-    CapabilityStorageImageExtendedFormats = 49,
-    CapabilityImageQuery = 50,
-    CapabilityDerivativeControl = 51,
-    CapabilityInterpolationFunction = 52,
-    CapabilityTransformFeedback = 53,
-    CapabilityGeometryStreams = 54,
-    CapabilityStorageImageReadWithoutFormat = 55,
-    CapabilityStorageImageWriteWithoutFormat = 56,
-    CapabilityMultiViewport = 57,
-    CapabilitySubgroupDispatch = 58,
-    CapabilityNamedBarrier = 59,
-    CapabilityPipeStorage = 60,
-    CapabilityGroupNonUniform = 61,
-    CapabilityGroupNonUniformVote = 62,
-    CapabilityGroupNonUniformArithmetic = 63,
-    CapabilityGroupNonUniformBallot = 64,
-    CapabilityGroupNonUniformShuffle = 65,
-    CapabilityGroupNonUniformShuffleRelative = 66,
-    CapabilityGroupNonUniformClustered = 67,
-    CapabilityGroupNonUniformQuad = 68,
-    CapabilityShaderLayer = 69,
-    CapabilityShaderViewportIndex = 70,
-    CapabilityUniformDecoration = 71,
-    CapabilityCoreBuiltinsARM = 4165,
-    CapabilityFragmentShadingRateKHR = 4422,
-    CapabilitySubgroupBallotKHR = 4423,
-    CapabilityDrawParameters = 4427,
-    CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
-    CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
-    CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
-    CapabilitySubgroupVoteKHR = 4431,
-    CapabilityStorageBuffer16BitAccess = 4433,
-    CapabilityStorageUniformBufferBlock16 = 4433,
-    CapabilityStorageUniform16 = 4434,
-    CapabilityUniformAndStorageBuffer16BitAccess = 4434,
-    CapabilityStoragePushConstant16 = 4435,
-    CapabilityStorageInputOutput16 = 4436,
-    CapabilityDeviceGroup = 4437,
-    CapabilityMultiView = 4439,
-    CapabilityVariablePointersStorageBuffer = 4441,
-    CapabilityVariablePointers = 4442,
-    CapabilityAtomicStorageOps = 4445,
-    CapabilitySampleMaskPostDepthCoverage = 4447,
-    CapabilityStorageBuffer8BitAccess = 4448,
-    CapabilityUniformAndStorageBuffer8BitAccess = 4449,
-    CapabilityStoragePushConstant8 = 4450,
-    CapabilityDenormPreserve = 4464,
-    CapabilityDenormFlushToZero = 4465,
-    CapabilitySignedZeroInfNanPreserve = 4466,
-    CapabilityRoundingModeRTE = 4467,
-    CapabilityRoundingModeRTZ = 4468,
-    CapabilityRayQueryProvisionalKHR = 4471,
-    CapabilityRayQueryKHR = 4472,
-    CapabilityRayTraversalPrimitiveCullingKHR = 4478,
-    CapabilityRayTracingKHR = 4479,
-    CapabilityFloat16ImageAMD = 5008,
-    CapabilityImageGatherBiasLodAMD = 5009,
-    CapabilityFragmentMaskAMD = 5010,
-    CapabilityStencilExportEXT = 5013,
-    CapabilityImageReadWriteLodAMD = 5015,
-    CapabilityInt64ImageEXT = 5016,
-    CapabilityShaderClockKHR = 5055,
-    CapabilitySampleMaskOverrideCoverageNV = 5249,
-    CapabilityGeometryShaderPassthroughNV = 5251,
-    CapabilityShaderViewportIndexLayerEXT = 5254,
-    CapabilityShaderViewportIndexLayerNV = 5254,
-    CapabilityShaderViewportMaskNV = 5255,
-    CapabilityShaderStereoViewNV = 5259,
-    CapabilityPerViewAttributesNV = 5260,
-    CapabilityFragmentFullyCoveredEXT = 5265,
-    CapabilityMeshShadingNV = 5266,
-    CapabilityImageFootprintNV = 5282,
-    CapabilityMeshShadingEXT = 5283,
-	CapabilityFragmentBarycentricKHR = 5284,
-    CapabilityFragmentBarycentricNV = 5284,
-    CapabilityComputeDerivativeGroupQuadsNV = 5288,
-    CapabilityFragmentDensityEXT = 5291,
-    CapabilityShadingRateNV = 5291,
-    CapabilityGroupNonUniformPartitionedNV = 5297,
-    CapabilityShaderNonUniform = 5301,
-    CapabilityShaderNonUniformEXT = 5301,
-    CapabilityRuntimeDescriptorArray = 5302,
-    CapabilityRuntimeDescriptorArrayEXT = 5302,
-    CapabilityInputAttachmentArrayDynamicIndexing = 5303,
-    CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
-    CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
-    CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
-    CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
-    CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
-    CapabilityUniformBufferArrayNonUniformIndexing = 5306,
-    CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
-    CapabilitySampledImageArrayNonUniformIndexing = 5307,
-    CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
-    CapabilityStorageBufferArrayNonUniformIndexing = 5308,
-    CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
-    CapabilityStorageImageArrayNonUniformIndexing = 5309,
-    CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
-    CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
-    CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
-    CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
-    CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
-    CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
-    CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
-    CapabilityRayTracingNV = 5340,
-    CapabilityRayTracingMotionBlurNV = 5341,
-    CapabilityVulkanMemoryModel = 5345,
-    CapabilityVulkanMemoryModelKHR = 5345,
-    CapabilityVulkanMemoryModelDeviceScope = 5346,
-    CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
-    CapabilityPhysicalStorageBufferAddresses = 5347,
-    CapabilityPhysicalStorageBufferAddressesEXT = 5347,
-    CapabilityComputeDerivativeGroupLinearNV = 5350,
-    CapabilityRayTracingProvisionalKHR = 5353,
-    CapabilityCooperativeMatrixNV = 5357,
-    CapabilityFragmentShaderSampleInterlockEXT = 5363,
-    CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
-    CapabilityShaderSMBuiltinsNV = 5373,
-    CapabilityFragmentShaderPixelInterlockEXT = 5378,
-    CapabilityDemoteToHelperInvocation = 5379,
-    CapabilityDemoteToHelperInvocationEXT = 5379,
-    CapabilityShaderInvocationReorderNV = 5383,
-    CapabilityBindlessTextureNV = 5390,
-    CapabilitySubgroupShuffleINTEL = 5568,
-    CapabilitySubgroupBufferBlockIOINTEL = 5569,
-    CapabilitySubgroupImageBlockIOINTEL = 5570,
-    CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
-    CapabilityRoundToInfinityINTEL = 5582,
-    CapabilityFloatingPointModeINTEL = 5583,
-    CapabilityIntegerFunctions2INTEL = 5584,
-    CapabilityFunctionPointersINTEL = 5603,
-    CapabilityIndirectReferencesINTEL = 5604,
-    CapabilityAsmINTEL = 5606,
-    CapabilityAtomicFloat32MinMaxEXT = 5612,
-    CapabilityAtomicFloat64MinMaxEXT = 5613,
-    CapabilityAtomicFloat16MinMaxEXT = 5616,
-    CapabilityVectorComputeINTEL = 5617,
-    CapabilityVectorAnyINTEL = 5619,
-    CapabilityExpectAssumeKHR = 5629,
-    CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
-    CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
-    CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
-    CapabilityVariableLengthArrayINTEL = 5817,
-    CapabilityFunctionFloatControlINTEL = 5821,
-    CapabilityFPGAMemoryAttributesINTEL = 5824,
-    CapabilityFPFastMathModeINTEL = 5837,
-    CapabilityArbitraryPrecisionIntegersINTEL = 5844,
-    CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
-    CapabilityUnstructuredLoopControlsINTEL = 5886,
-    CapabilityFPGALoopControlsINTEL = 5888,
-    CapabilityKernelAttributesINTEL = 5892,
-    CapabilityFPGAKernelAttributesINTEL = 5897,
-    CapabilityFPGAMemoryAccessesINTEL = 5898,
-    CapabilityFPGAClusterAttributesINTEL = 5904,
-    CapabilityLoopFuseINTEL = 5906,
-    CapabilityFPGABufferLocationINTEL = 5920,
-    CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
-    CapabilityUSMStorageClassesINTEL = 5935,
-    CapabilityIOPipesINTEL = 5943,
-    CapabilityBlockingPipesINTEL = 5945,
-    CapabilityFPGARegINTEL = 5948,
-    CapabilityDotProductInputAll = 6016,
-    CapabilityDotProductInputAllKHR = 6016,
-    CapabilityDotProductInput4x8Bit = 6017,
-    CapabilityDotProductInput4x8BitKHR = 6017,
-    CapabilityDotProductInput4x8BitPacked = 6018,
-    CapabilityDotProductInput4x8BitPackedKHR = 6018,
-    CapabilityDotProduct = 6019,
-    CapabilityDotProductKHR = 6019,
-    CapabilityRayCullMaskKHR = 6020,
-    CapabilityBitInstructions = 6025,
-    CapabilityAtomicFloat32AddEXT = 6033,
-    CapabilityAtomicFloat64AddEXT = 6034,
-    CapabilityLongConstantCompositeINTEL = 6089,
-    CapabilityOptNoneINTEL = 6094,
-    CapabilityAtomicFloat16AddEXT = 6095,
-    CapabilityDebugInfoModuleINTEL = 6114,
-    CapabilityMax = 0x7fffffff,
-};
-
-enum RayFlagsShift {
-    RayFlagsOpaqueKHRShift = 0,
-    RayFlagsNoOpaqueKHRShift = 1,
-    RayFlagsTerminateOnFirstHitKHRShift = 2,
-    RayFlagsSkipClosestHitShaderKHRShift = 3,
-    RayFlagsCullBackFacingTrianglesKHRShift = 4,
-    RayFlagsCullFrontFacingTrianglesKHRShift = 5,
-    RayFlagsCullOpaqueKHRShift = 6,
-    RayFlagsCullNoOpaqueKHRShift = 7,
-    RayFlagsSkipTrianglesKHRShift = 8,
-    RayFlagsSkipAABBsKHRShift = 9,
-    RayFlagsMax = 0x7fffffff,
-};
-
-enum RayFlagsMask {
-    RayFlagsMaskNone = 0,
-    RayFlagsOpaqueKHRMask = 0x00000001,
-    RayFlagsNoOpaqueKHRMask = 0x00000002,
-    RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
-    RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
-    RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
-    RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
-    RayFlagsCullOpaqueKHRMask = 0x00000040,
-    RayFlagsCullNoOpaqueKHRMask = 0x00000080,
-    RayFlagsSkipTrianglesKHRMask = 0x00000100,
-    RayFlagsSkipAABBsKHRMask = 0x00000200,
-};
-
-enum RayQueryIntersection {
-    RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
-    RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
-    RayQueryIntersectionMax = 0x7fffffff,
-};
-
-enum RayQueryCommittedIntersectionType {
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
-    RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
-};
-
-enum RayQueryCandidateIntersectionType {
-    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
-    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
-    RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
-};
-
-enum FragmentShadingRateShift {
-    FragmentShadingRateVertical2PixelsShift = 0,
-    FragmentShadingRateVertical4PixelsShift = 1,
-    FragmentShadingRateHorizontal2PixelsShift = 2,
-    FragmentShadingRateHorizontal4PixelsShift = 3,
-    FragmentShadingRateMax = 0x7fffffff,
-};
-
-enum FragmentShadingRateMask {
-    FragmentShadingRateMaskNone = 0,
-    FragmentShadingRateVertical2PixelsMask = 0x00000001,
-    FragmentShadingRateVertical4PixelsMask = 0x00000002,
-    FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
-    FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
-};
-
-enum FPDenormMode {
-    FPDenormModePreserve = 0,
-    FPDenormModeFlushToZero = 1,
-    FPDenormModeMax = 0x7fffffff,
-};
-
-enum FPOperationMode {
-    FPOperationModeIEEE = 0,
-    FPOperationModeALT = 1,
-    FPOperationModeMax = 0x7fffffff,
-};
-
-enum QuantizationModes {
-    QuantizationModesTRN = 0,
-    QuantizationModesTRN_ZERO = 1,
-    QuantizationModesRND = 2,
-    QuantizationModesRND_ZERO = 3,
-    QuantizationModesRND_INF = 4,
-    QuantizationModesRND_MIN_INF = 5,
-    QuantizationModesRND_CONV = 6,
-    QuantizationModesRND_CONV_ODD = 7,
-    QuantizationModesMax = 0x7fffffff,
-};
-
-enum OverflowModes {
-    OverflowModesWRAP = 0,
-    OverflowModesSAT = 1,
-    OverflowModesSAT_ZERO = 2,
-    OverflowModesSAT_SYM = 3,
-    OverflowModesMax = 0x7fffffff,
-};
-
-enum PackedVectorFormat {
-    PackedVectorFormatPackedVectorFormat4x8Bit = 0,
-    PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
-    PackedVectorFormatMax = 0x7fffffff,
-};
-
-enum Op {
-    OpNop = 0,
-    OpUndef = 1,
-    OpSourceContinued = 2,
-    OpSource = 3,
-    OpSourceExtension = 4,
-    OpName = 5,
-    OpMemberName = 6,
-    OpString = 7,
-    OpLine = 8,
-    OpExtension = 10,
-    OpExtInstImport = 11,
-    OpExtInst = 12,
-    OpMemoryModel = 14,
-    OpEntryPoint = 15,
-    OpExecutionMode = 16,
-    OpCapability = 17,
-    OpTypeVoid = 19,
-    OpTypeBool = 20,
-    OpTypeInt = 21,
-    OpTypeFloat = 22,
-    OpTypeVector = 23,
-    OpTypeMatrix = 24,
-    OpTypeImage = 25,
-    OpTypeSampler = 26,
-    OpTypeSampledImage = 27,
-    OpTypeArray = 28,
-    OpTypeRuntimeArray = 29,
-    OpTypeStruct = 30,
-    OpTypeOpaque = 31,
-    OpTypePointer = 32,
-    OpTypeFunction = 33,
-    OpTypeEvent = 34,
-    OpTypeDeviceEvent = 35,
-    OpTypeReserveId = 36,
-    OpTypeQueue = 37,
-    OpTypePipe = 38,
-    OpTypeForwardPointer = 39,
-    OpConstantTrue = 41,
-    OpConstantFalse = 42,
-    OpConstant = 43,
-    OpConstantComposite = 44,
-    OpConstantSampler = 45,
-    OpConstantNull = 46,
-    OpSpecConstantTrue = 48,
-    OpSpecConstantFalse = 49,
-    OpSpecConstant = 50,
-    OpSpecConstantComposite = 51,
-    OpSpecConstantOp = 52,
-    OpFunction = 54,
-    OpFunctionParameter = 55,
-    OpFunctionEnd = 56,
-    OpFunctionCall = 57,
-    OpVariable = 59,
-    OpImageTexelPointer = 60,
-    OpLoad = 61,
-    OpStore = 62,
-    OpCopyMemory = 63,
-    OpCopyMemorySized = 64,
-    OpAccessChain = 65,
-    OpInBoundsAccessChain = 66,
-    OpPtrAccessChain = 67,
-    OpArrayLength = 68,
-    OpGenericPtrMemSemantics = 69,
-    OpInBoundsPtrAccessChain = 70,
-    OpDecorate = 71,
-    OpMemberDecorate = 72,
-    OpDecorationGroup = 73,
-    OpGroupDecorate = 74,
-    OpGroupMemberDecorate = 75,
-    OpVectorExtractDynamic = 77,
-    OpVectorInsertDynamic = 78,
-    OpVectorShuffle = 79,
-    OpCompositeConstruct = 80,
-    OpCompositeExtract = 81,
-    OpCompositeInsert = 82,
-    OpCopyObject = 83,
-    OpTranspose = 84,
-    OpSampledImage = 86,
-    OpImageSampleImplicitLod = 87,
-    OpImageSampleExplicitLod = 88,
-    OpImageSampleDrefImplicitLod = 89,
-    OpImageSampleDrefExplicitLod = 90,
-    OpImageSampleProjImplicitLod = 91,
-    OpImageSampleProjExplicitLod = 92,
-    OpImageSampleProjDrefImplicitLod = 93,
-    OpImageSampleProjDrefExplicitLod = 94,
-    OpImageFetch = 95,
-    OpImageGather = 96,
-    OpImageDrefGather = 97,
-    OpImageRead = 98,
-    OpImageWrite = 99,
-    OpImage = 100,
-    OpImageQueryFormat = 101,
-    OpImageQueryOrder = 102,
-    OpImageQuerySizeLod = 103,
-    OpImageQuerySize = 104,
-    OpImageQueryLod = 105,
-    OpImageQueryLevels = 106,
-    OpImageQuerySamples = 107,
-    OpConvertFToU = 109,
-    OpConvertFToS = 110,
-    OpConvertSToF = 111,
-    OpConvertUToF = 112,
-    OpUConvert = 113,
-    OpSConvert = 114,
-    OpFConvert = 115,
-    OpQuantizeToF16 = 116,
-    OpConvertPtrToU = 117,
-    OpSatConvertSToU = 118,
-    OpSatConvertUToS = 119,
-    OpConvertUToPtr = 120,
-    OpPtrCastToGeneric = 121,
-    OpGenericCastToPtr = 122,
-    OpGenericCastToPtrExplicit = 123,
-    OpBitcast = 124,
-    OpSNegate = 126,
-    OpFNegate = 127,
-    OpIAdd = 128,
-    OpFAdd = 129,
-    OpISub = 130,
-    OpFSub = 131,
-    OpIMul = 132,
-    OpFMul = 133,
-    OpUDiv = 134,
-    OpSDiv = 135,
-    OpFDiv = 136,
-    OpUMod = 137,
-    OpSRem = 138,
-    OpSMod = 139,
-    OpFRem = 140,
-    OpFMod = 141,
-    OpVectorTimesScalar = 142,
-    OpMatrixTimesScalar = 143,
-    OpVectorTimesMatrix = 144,
-    OpMatrixTimesVector = 145,
-    OpMatrixTimesMatrix = 146,
-    OpOuterProduct = 147,
-    OpDot = 148,
-    OpIAddCarry = 149,
-    OpISubBorrow = 150,
-    OpUMulExtended = 151,
-    OpSMulExtended = 152,
-    OpAny = 154,
-    OpAll = 155,
-    OpIsNan = 156,
-    OpIsInf = 157,
-    OpIsFinite = 158,
-    OpIsNormal = 159,
-    OpSignBitSet = 160,
-    OpLessOrGreater = 161,
-    OpOrdered = 162,
-    OpUnordered = 163,
-    OpLogicalEqual = 164,
-    OpLogicalNotEqual = 165,
-    OpLogicalOr = 166,
-    OpLogicalAnd = 167,
-    OpLogicalNot = 168,
-    OpSelect = 169,
-    OpIEqual = 170,
-    OpINotEqual = 171,
-    OpUGreaterThan = 172,
-    OpSGreaterThan = 173,
-    OpUGreaterThanEqual = 174,
-    OpSGreaterThanEqual = 175,
-    OpULessThan = 176,
-    OpSLessThan = 177,
-    OpULessThanEqual = 178,
-    OpSLessThanEqual = 179,
-    OpFOrdEqual = 180,
-    OpFUnordEqual = 181,
-    OpFOrdNotEqual = 182,
-    OpFUnordNotEqual = 183,
-    OpFOrdLessThan = 184,
-    OpFUnordLessThan = 185,
-    OpFOrdGreaterThan = 186,
-    OpFUnordGreaterThan = 187,
-    OpFOrdLessThanEqual = 188,
-    OpFUnordLessThanEqual = 189,
-    OpFOrdGreaterThanEqual = 190,
-    OpFUnordGreaterThanEqual = 191,
-    OpShiftRightLogical = 194,
-    OpShiftRightArithmetic = 195,
-    OpShiftLeftLogical = 196,
-    OpBitwiseOr = 197,
-    OpBitwiseXor = 198,
-    OpBitwiseAnd = 199,
-    OpNot = 200,
-    OpBitFieldInsert = 201,
-    OpBitFieldSExtract = 202,
-    OpBitFieldUExtract = 203,
-    OpBitReverse = 204,
-    OpBitCount = 205,
-    OpDPdx = 207,
-    OpDPdy = 208,
-    OpFwidth = 209,
-    OpDPdxFine = 210,
-    OpDPdyFine = 211,
-    OpFwidthFine = 212,
-    OpDPdxCoarse = 213,
-    OpDPdyCoarse = 214,
-    OpFwidthCoarse = 215,
-    OpEmitVertex = 218,
-    OpEndPrimitive = 219,
-    OpEmitStreamVertex = 220,
-    OpEndStreamPrimitive = 221,
-    OpControlBarrier = 224,
-    OpMemoryBarrier = 225,
-    OpAtomicLoad = 227,
-    OpAtomicStore = 228,
-    OpAtomicExchange = 229,
-    OpAtomicCompareExchange = 230,
-    OpAtomicCompareExchangeWeak = 231,
-    OpAtomicIIncrement = 232,
-    OpAtomicIDecrement = 233,
-    OpAtomicIAdd = 234,
-    OpAtomicISub = 235,
-    OpAtomicSMin = 236,
-    OpAtomicUMin = 237,
-    OpAtomicSMax = 238,
-    OpAtomicUMax = 239,
-    OpAtomicAnd = 240,
-    OpAtomicOr = 241,
-    OpAtomicXor = 242,
-    OpPhi = 245,
-    OpLoopMerge = 246,
-    OpSelectionMerge = 247,
-    OpLabel = 248,
-    OpBranch = 249,
-    OpBranchConditional = 250,
-    OpSwitch = 251,
-    OpKill = 252,
-    OpReturn = 253,
-    OpReturnValue = 254,
-    OpUnreachable = 255,
-    OpLifetimeStart = 256,
-    OpLifetimeStop = 257,
-    OpGroupAsyncCopy = 259,
-    OpGroupWaitEvents = 260,
-    OpGroupAll = 261,
-    OpGroupAny = 262,
-    OpGroupBroadcast = 263,
-    OpGroupIAdd = 264,
-    OpGroupFAdd = 265,
-    OpGroupFMin = 266,
-    OpGroupUMin = 267,
-    OpGroupSMin = 268,
-    OpGroupFMax = 269,
-    OpGroupUMax = 270,
-    OpGroupSMax = 271,
-    OpReadPipe = 274,
-    OpWritePipe = 275,
-    OpReservedReadPipe = 276,
-    OpReservedWritePipe = 277,
-    OpReserveReadPipePackets = 278,
-    OpReserveWritePipePackets = 279,
-    OpCommitReadPipe = 280,
-    OpCommitWritePipe = 281,
-    OpIsValidReserveId = 282,
-    OpGetNumPipePackets = 283,
-    OpGetMaxPipePackets = 284,
-    OpGroupReserveReadPipePackets = 285,
-    OpGroupReserveWritePipePackets = 286,
-    OpGroupCommitReadPipe = 287,
-    OpGroupCommitWritePipe = 288,
-    OpEnqueueMarker = 291,
-    OpEnqueueKernel = 292,
-    OpGetKernelNDrangeSubGroupCount = 293,
-    OpGetKernelNDrangeMaxSubGroupSize = 294,
-    OpGetKernelWorkGroupSize = 295,
-    OpGetKernelPreferredWorkGroupSizeMultiple = 296,
-    OpRetainEvent = 297,
-    OpReleaseEvent = 298,
-    OpCreateUserEvent = 299,
-    OpIsValidEvent = 300,
-    OpSetUserEventStatus = 301,
-    OpCaptureEventProfilingInfo = 302,
-    OpGetDefaultQueue = 303,
-    OpBuildNDRange = 304,
-    OpImageSparseSampleImplicitLod = 305,
-    OpImageSparseSampleExplicitLod = 306,
-    OpImageSparseSampleDrefImplicitLod = 307,
-    OpImageSparseSampleDrefExplicitLod = 308,
-    OpImageSparseSampleProjImplicitLod = 309,
-    OpImageSparseSampleProjExplicitLod = 310,
-    OpImageSparseSampleProjDrefImplicitLod = 311,
-    OpImageSparseSampleProjDrefExplicitLod = 312,
-    OpImageSparseFetch = 313,
-    OpImageSparseGather = 314,
-    OpImageSparseDrefGather = 315,
-    OpImageSparseTexelsResident = 316,
-    OpNoLine = 317,
-    OpAtomicFlagTestAndSet = 318,
-    OpAtomicFlagClear = 319,
-    OpImageSparseRead = 320,
-    OpSizeOf = 321,
-    OpTypePipeStorage = 322,
-    OpConstantPipeStorage = 323,
-    OpCreatePipeFromPipeStorage = 324,
-    OpGetKernelLocalSizeForSubgroupCount = 325,
-    OpGetKernelMaxNumSubgroups = 326,
-    OpTypeNamedBarrier = 327,
-    OpNamedBarrierInitialize = 328,
-    OpMemoryNamedBarrier = 329,
-    OpModuleProcessed = 330,
-    OpExecutionModeId = 331,
-    OpDecorateId = 332,
-    OpGroupNonUniformElect = 333,
-    OpGroupNonUniformAll = 334,
-    OpGroupNonUniformAny = 335,
-    OpGroupNonUniformAllEqual = 336,
-    OpGroupNonUniformBroadcast = 337,
-    OpGroupNonUniformBroadcastFirst = 338,
-    OpGroupNonUniformBallot = 339,
-    OpGroupNonUniformInverseBallot = 340,
-    OpGroupNonUniformBallotBitExtract = 341,
-    OpGroupNonUniformBallotBitCount = 342,
-    OpGroupNonUniformBallotFindLSB = 343,
-    OpGroupNonUniformBallotFindMSB = 344,
-    OpGroupNonUniformShuffle = 345,
-    OpGroupNonUniformShuffleXor = 346,
-    OpGroupNonUniformShuffleUp = 347,
-    OpGroupNonUniformShuffleDown = 348,
-    OpGroupNonUniformIAdd = 349,
-    OpGroupNonUniformFAdd = 350,
-    OpGroupNonUniformIMul = 351,
-    OpGroupNonUniformFMul = 352,
-    OpGroupNonUniformSMin = 353,
-    OpGroupNonUniformUMin = 354,
-    OpGroupNonUniformFMin = 355,
-    OpGroupNonUniformSMax = 356,
-    OpGroupNonUniformUMax = 357,
-    OpGroupNonUniformFMax = 358,
-    OpGroupNonUniformBitwiseAnd = 359,
-    OpGroupNonUniformBitwiseOr = 360,
-    OpGroupNonUniformBitwiseXor = 361,
-    OpGroupNonUniformLogicalAnd = 362,
-    OpGroupNonUniformLogicalOr = 363,
-    OpGroupNonUniformLogicalXor = 364,
-    OpGroupNonUniformQuadBroadcast = 365,
-    OpGroupNonUniformQuadSwap = 366,
-    OpCopyLogical = 400,
-    OpPtrEqual = 401,
-    OpPtrNotEqual = 402,
-    OpPtrDiff = 403,
-    OpTerminateInvocation = 4416,
-    OpSubgroupBallotKHR = 4421,
-    OpSubgroupFirstInvocationKHR = 4422,
-    OpSubgroupAllKHR = 4428,
-    OpSubgroupAnyKHR = 4429,
-    OpSubgroupAllEqualKHR = 4430,
-    OpSubgroupReadInvocationKHR = 4432,
-    OpTraceRayKHR = 4445,
-    OpExecuteCallableKHR = 4446,
-    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,
-    OpRayQueryTerminateKHR = 4474,
-    OpRayQueryGenerateIntersectionKHR = 4475,
-    OpRayQueryConfirmIntersectionKHR = 4476,
-    OpRayQueryProceedKHR = 4477,
-    OpRayQueryGetIntersectionTypeKHR = 4479,
-    OpGroupIAddNonUniformAMD = 5000,
-    OpGroupFAddNonUniformAMD = 5001,
-    OpGroupFMinNonUniformAMD = 5002,
-    OpGroupUMinNonUniformAMD = 5003,
-    OpGroupSMinNonUniformAMD = 5004,
-    OpGroupFMaxNonUniformAMD = 5005,
-    OpGroupUMaxNonUniformAMD = 5006,
-    OpGroupSMaxNonUniformAMD = 5007,
-    OpFragmentMaskFetchAMD = 5011,
-    OpFragmentFetchAMD = 5012,
-    OpReadClockKHR = 5056,
-    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,
-    OpReportIntersectionKHR = 5334,
-    OpReportIntersectionNV = 5334,
-    OpIgnoreIntersectionNV = 5335,
-    OpTerminateRayNV = 5336,
-    OpTraceNV = 5337,
-    OpTraceMotionNV = 5338,
-    OpTraceRayMotionNV = 5339,
-    OpTypeAccelerationStructureKHR = 5341,
-    OpTypeAccelerationStructureNV = 5341,
-    OpExecuteCallableNV = 5344,
-    OpTypeCooperativeMatrixNV = 5358,
-    OpCooperativeMatrixLoadNV = 5359,
-    OpCooperativeMatrixStoreNV = 5360,
-    OpCooperativeMatrixMulAddNV = 5361,
-    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,
-    OpSubgroupShuffleXorINTEL = 5574,
-    OpSubgroupBlockReadINTEL = 5575,
-    OpSubgroupBlockWriteINTEL = 5576,
-    OpSubgroupImageBlockReadINTEL = 5577,
-    OpSubgroupImageBlockWriteINTEL = 5578,
-    OpSubgroupImageMediaBlockReadINTEL = 5580,
-    OpSubgroupImageMediaBlockWriteINTEL = 5581,
-    OpUCountLeadingZerosINTEL = 5585,
-    OpUCountTrailingZerosINTEL = 5586,
-    OpAbsISubINTEL = 5587,
-    OpAbsUSubINTEL = 5588,
-    OpIAddSatINTEL = 5589,
-    OpUAddSatINTEL = 5590,
-    OpIAverageINTEL = 5591,
-    OpUAverageINTEL = 5592,
-    OpIAverageRoundedINTEL = 5593,
-    OpUAverageRoundedINTEL = 5594,
-    OpISubSatINTEL = 5595,
-    OpUSubSatINTEL = 5596,
-    OpIMul32x16INTEL = 5597,
-    OpUMul32x16INTEL = 5598,
-    OpConstantFunctionPointerINTEL = 5600,
-    OpFunctionPointerCallINTEL = 5601,
-    OpAsmTargetINTEL = 5609,
-    OpAsmINTEL = 5610,
-    OpAsmCallINTEL = 5611,
-    OpAtomicFMinEXT = 5614,
-    OpAtomicFMaxEXT = 5615,
-    OpAssumeTrueKHR = 5630,
-    OpExpectKHR = 5631,
-    OpDecorateString = 5632,
-    OpDecorateStringGOOGLE = 5632,
-    OpMemberDecorateString = 5633,
-    OpMemberDecorateStringGOOGLE = 5633,
-    OpVmeImageINTEL = 5699,
-    OpTypeVmeImageINTEL = 5700,
-    OpTypeAvcImePayloadINTEL = 5701,
-    OpTypeAvcRefPayloadINTEL = 5702,
-    OpTypeAvcSicPayloadINTEL = 5703,
-    OpTypeAvcMcePayloadINTEL = 5704,
-    OpTypeAvcMceResultINTEL = 5705,
-    OpTypeAvcImeResultINTEL = 5706,
-    OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
-    OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
-    OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
-    OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
-    OpTypeAvcRefResultINTEL = 5711,
-    OpTypeAvcSicResultINTEL = 5712,
-    OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
-    OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
-    OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
-    OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
-    OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
-    OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
-    OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
-    OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
-    OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
-    OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
-    OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
-    OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
-    OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
-    OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
-    OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
-    OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
-    OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
-    OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
-    OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
-    OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
-    OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
-    OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
-    OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
-    OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
-    OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
-    OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
-    OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
-    OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
-    OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
-    OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
-    OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
-    OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
-    OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
-    OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
-    OpSubgroupAvcImeInitializeINTEL = 5747,
-    OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
-    OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
-    OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
-    OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
-    OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
-    OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
-    OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
-    OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
-    OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
-    OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
-    OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
-    OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
-    OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
-    OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
-    OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
-    OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
-    OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
-    OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
-    OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
-    OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
-    OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
-    OpSubgroupAvcFmeInitializeINTEL = 5781,
-    OpSubgroupAvcBmeInitializeINTEL = 5782,
-    OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
-    OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
-    OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
-    OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
-    OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
-    OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
-    OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
-    OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
-    OpSubgroupAvcSicInitializeINTEL = 5791,
-    OpSubgroupAvcSicConfigureSkcINTEL = 5792,
-    OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
-    OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
-    OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
-    OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
-    OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
-    OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
-    OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
-    OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
-    OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
-    OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
-    OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
-    OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
-    OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
-    OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
-    OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
-    OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
-    OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
-    OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
-    OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
-    OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
-    OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
-    OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
-    OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
-    OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
-    OpVariableLengthArrayINTEL = 5818,
-    OpSaveMemoryINTEL = 5819,
-    OpRestoreMemoryINTEL = 5820,
-    OpArbitraryFloatSinCosPiINTEL = 5840,
-    OpArbitraryFloatCastINTEL = 5841,
-    OpArbitraryFloatCastFromIntINTEL = 5842,
-    OpArbitraryFloatCastToIntINTEL = 5843,
-    OpArbitraryFloatAddINTEL = 5846,
-    OpArbitraryFloatSubINTEL = 5847,
-    OpArbitraryFloatMulINTEL = 5848,
-    OpArbitraryFloatDivINTEL = 5849,
-    OpArbitraryFloatGTINTEL = 5850,
-    OpArbitraryFloatGEINTEL = 5851,
-    OpArbitraryFloatLTINTEL = 5852,
-    OpArbitraryFloatLEINTEL = 5853,
-    OpArbitraryFloatEQINTEL = 5854,
-    OpArbitraryFloatRecipINTEL = 5855,
-    OpArbitraryFloatRSqrtINTEL = 5856,
-    OpArbitraryFloatCbrtINTEL = 5857,
-    OpArbitraryFloatHypotINTEL = 5858,
-    OpArbitraryFloatSqrtINTEL = 5859,
-    OpArbitraryFloatLogINTEL = 5860,
-    OpArbitraryFloatLog2INTEL = 5861,
-    OpArbitraryFloatLog10INTEL = 5862,
-    OpArbitraryFloatLog1pINTEL = 5863,
-    OpArbitraryFloatExpINTEL = 5864,
-    OpArbitraryFloatExp2INTEL = 5865,
-    OpArbitraryFloatExp10INTEL = 5866,
-    OpArbitraryFloatExpm1INTEL = 5867,
-    OpArbitraryFloatSinINTEL = 5868,
-    OpArbitraryFloatCosINTEL = 5869,
-    OpArbitraryFloatSinCosINTEL = 5870,
-    OpArbitraryFloatSinPiINTEL = 5871,
-    OpArbitraryFloatCosPiINTEL = 5872,
-    OpArbitraryFloatASinINTEL = 5873,
-    OpArbitraryFloatASinPiINTEL = 5874,
-    OpArbitraryFloatACosINTEL = 5875,
-    OpArbitraryFloatACosPiINTEL = 5876,
-    OpArbitraryFloatATanINTEL = 5877,
-    OpArbitraryFloatATanPiINTEL = 5878,
-    OpArbitraryFloatATan2INTEL = 5879,
-    OpArbitraryFloatPowINTEL = 5880,
-    OpArbitraryFloatPowRINTEL = 5881,
-    OpArbitraryFloatPowNINTEL = 5882,
-    OpLoopControlINTEL = 5887,
-    OpFixedSqrtINTEL = 5923,
-    OpFixedRecipINTEL = 5924,
-    OpFixedRsqrtINTEL = 5925,
-    OpFixedSinINTEL = 5926,
-    OpFixedCosINTEL = 5927,
-    OpFixedSinCosINTEL = 5928,
-    OpFixedSinPiINTEL = 5929,
-    OpFixedCosPiINTEL = 5930,
-    OpFixedSinCosPiINTEL = 5931,
-    OpFixedLogINTEL = 5932,
-    OpFixedExpINTEL = 5933,
-    OpPtrCastToCrossWorkgroupINTEL = 5934,
-    OpCrossWorkgroupCastToPtrINTEL = 5938,
-    OpReadPipeBlockingINTEL = 5946,
-    OpWritePipeBlockingINTEL = 5947,
-    OpFPGARegINTEL = 5949,
-    OpRayQueryGetRayTMinKHR = 6016,
-    OpRayQueryGetRayFlagsKHR = 6017,
-    OpRayQueryGetIntersectionTKHR = 6018,
-    OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
-    OpRayQueryGetIntersectionInstanceIdKHR = 6020,
-    OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
-    OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
-    OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
-    OpRayQueryGetIntersectionBarycentricsKHR = 6024,
-    OpRayQueryGetIntersectionFrontFaceKHR = 6025,
-    OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
-    OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
-    OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
-    OpRayQueryGetWorldRayDirectionKHR = 6029,
-    OpRayQueryGetWorldRayOriginKHR = 6030,
-    OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
-    OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
-    OpAtomicFAddEXT = 6035,
-    OpTypeBufferSurfaceINTEL = 6086,
-    OpTypeStructContinuedINTEL = 6090,
-    OpConstantCompositeContinuedINTEL = 6091,
-    OpSpecConstantCompositeContinuedINTEL = 6092,
-    OpMax = 0x7fffffff,
-};
-
-#ifdef SPV_ENABLE_UTILITY_CODE
-inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
-    *hasResult = *hasResultType = false;
-    switch (opcode) {
-    default: /* unknown opcode */ break;
-    case OpNop: *hasResult = false; *hasResultType = false; break;
-    case OpUndef: *hasResult = true; *hasResultType = true; break;
-    case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
-    case OpSource: *hasResult = false; *hasResultType = false; break;
-    case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
-    case OpName: *hasResult = false; *hasResultType = false; break;
-    case OpMemberName: *hasResult = false; *hasResultType = false; break;
-    case OpString: *hasResult = true; *hasResultType = false; break;
-    case OpLine: *hasResult = false; *hasResultType = false; break;
-    case OpExtension: *hasResult = false; *hasResultType = false; break;
-    case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
-    case OpExtInst: *hasResult = true; *hasResultType = true; break;
-    case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
-    case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
-    case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
-    case OpCapability: *hasResult = false; *hasResultType = false; break;
-    case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
-    case OpTypeBool: *hasResult = true; *hasResultType = false; break;
-    case OpTypeInt: *hasResult = true; *hasResultType = false; break;
-    case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
-    case OpTypeVector: *hasResult = true; *hasResultType = false; break;
-    case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
-    case OpTypeImage: *hasResult = true; *hasResultType = false; break;
-    case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
-    case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
-    case OpTypeArray: *hasResult = true; *hasResultType = false; break;
-    case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
-    case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
-    case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
-    case OpTypePointer: *hasResult = true; *hasResultType = false; break;
-    case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
-    case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
-    case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
-    case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
-    case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
-    case OpTypePipe: *hasResult = true; *hasResultType = false; break;
-    case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
-    case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
-    case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
-    case OpConstant: *hasResult = true; *hasResultType = true; break;
-    case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
-    case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
-    case OpConstantNull: *hasResult = true; *hasResultType = true; break;
-    case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
-    case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
-    case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
-    case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
-    case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
-    case OpFunction: *hasResult = true; *hasResultType = true; break;
-    case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
-    case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
-    case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
-    case OpVariable: *hasResult = true; *hasResultType = true; break;
-    case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
-    case OpLoad: *hasResult = true; *hasResultType = true; break;
-    case OpStore: *hasResult = false; *hasResultType = false; break;
-    case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
-    case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
-    case OpAccessChain: *hasResult = true; *hasResultType = true; break;
-    case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
-    case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
-    case OpArrayLength: *hasResult = true; *hasResultType = true; break;
-    case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
-    case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
-    case OpDecorate: *hasResult = false; *hasResultType = false; break;
-    case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
-    case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
-    case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
-    case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
-    case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
-    case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
-    case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
-    case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
-    case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
-    case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
-    case OpCopyObject: *hasResult = true; *hasResultType = true; break;
-    case OpTranspose: *hasResult = true; *hasResultType = true; break;
-    case OpSampledImage: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageFetch: *hasResult = true; *hasResultType = true; break;
-    case OpImageGather: *hasResult = true; *hasResultType = true; break;
-    case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
-    case OpImageRead: *hasResult = true; *hasResultType = true; break;
-    case OpImageWrite: *hasResult = false; *hasResultType = false; break;
-    case OpImage: *hasResult = true; *hasResultType = true; break;
-    case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
-    case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
-    case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
-    case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
-    case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
-    case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
-    case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
-    case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
-    case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
-    case OpUConvert: *hasResult = true; *hasResultType = true; break;
-    case OpSConvert: *hasResult = true; *hasResultType = true; break;
-    case OpFConvert: *hasResult = true; *hasResultType = true; break;
-    case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
-    case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
-    case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
-    case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
-    case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
-    case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
-    case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
-    case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
-    case OpBitcast: *hasResult = true; *hasResultType = true; break;
-    case OpSNegate: *hasResult = true; *hasResultType = true; break;
-    case OpFNegate: *hasResult = true; *hasResultType = true; break;
-    case OpIAdd: *hasResult = true; *hasResultType = true; break;
-    case OpFAdd: *hasResult = true; *hasResultType = true; break;
-    case OpISub: *hasResult = true; *hasResultType = true; break;
-    case OpFSub: *hasResult = true; *hasResultType = true; break;
-    case OpIMul: *hasResult = true; *hasResultType = true; break;
-    case OpFMul: *hasResult = true; *hasResultType = true; break;
-    case OpUDiv: *hasResult = true; *hasResultType = true; break;
-    case OpSDiv: *hasResult = true; *hasResultType = true; break;
-    case OpFDiv: *hasResult = true; *hasResultType = true; break;
-    case OpUMod: *hasResult = true; *hasResultType = true; break;
-    case OpSRem: *hasResult = true; *hasResultType = true; break;
-    case OpSMod: *hasResult = true; *hasResultType = true; break;
-    case OpFRem: *hasResult = true; *hasResultType = true; break;
-    case OpFMod: *hasResult = true; *hasResultType = true; break;
-    case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
-    case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
-    case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
-    case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
-    case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
-    case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
-    case OpDot: *hasResult = true; *hasResultType = true; break;
-    case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
-    case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
-    case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
-    case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
-    case OpAny: *hasResult = true; *hasResultType = true; break;
-    case OpAll: *hasResult = true; *hasResultType = true; break;
-    case OpIsNan: *hasResult = true; *hasResultType = true; break;
-    case OpIsInf: *hasResult = true; *hasResultType = true; break;
-    case OpIsFinite: *hasResult = true; *hasResultType = true; break;
-    case OpIsNormal: *hasResult = true; *hasResultType = true; break;
-    case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
-    case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
-    case OpOrdered: *hasResult = true; *hasResultType = true; break;
-    case OpUnordered: *hasResult = true; *hasResultType = true; break;
-    case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
-    case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
-    case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
-    case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
-    case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
-    case OpSelect: *hasResult = true; *hasResultType = true; break;
-    case OpIEqual: *hasResult = true; *hasResultType = true; break;
-    case OpINotEqual: *hasResult = true; *hasResultType = true; break;
-    case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
-    case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
-    case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpULessThan: *hasResult = true; *hasResultType = true; break;
-    case OpSLessThan: *hasResult = true; *hasResultType = true; break;
-    case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
-    case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
-    case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
-    case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
-    case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
-    case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
-    case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
-    case OpNot: *hasResult = true; *hasResultType = true; break;
-    case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
-    case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
-    case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
-    case OpBitReverse: *hasResult = true; *hasResultType = true; break;
-    case OpBitCount: *hasResult = true; *hasResultType = true; break;
-    case OpDPdx: *hasResult = true; *hasResultType = true; break;
-    case OpDPdy: *hasResult = true; *hasResultType = true; break;
-    case OpFwidth: *hasResult = true; *hasResultType = true; break;
-    case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
-    case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
-    case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
-    case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
-    case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
-    case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
-    case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
-    case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
-    case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
-    case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
-    case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
-    case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
-    case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
-    case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
-    case OpPhi: *hasResult = true; *hasResultType = true; break;
-    case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
-    case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
-    case OpLabel: *hasResult = true; *hasResultType = false; break;
-    case OpBranch: *hasResult = false; *hasResultType = false; break;
-    case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
-    case OpSwitch: *hasResult = false; *hasResultType = false; break;
-    case OpKill: *hasResult = false; *hasResultType = false; break;
-    case OpReturn: *hasResult = false; *hasResultType = false; break;
-    case OpReturnValue: *hasResult = false; *hasResultType = false; break;
-    case OpUnreachable: *hasResult = false; *hasResultType = false; break;
-    case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
-    case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
-    case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
-    case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
-    case OpGroupAll: *hasResult = true; *hasResultType = true; break;
-    case OpGroupAny: *hasResult = true; *hasResultType = true; break;
-    case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
-    case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
-    case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
-    case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
-    case OpReadPipe: *hasResult = true; *hasResultType = true; break;
-    case OpWritePipe: *hasResult = true; *hasResultType = true; break;
-    case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
-    case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
-    case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
-    case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
-    case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
-    case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
-    case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
-    case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
-    case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
-    case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
-    case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
-    case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
-    case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
-    case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
-    case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
-    case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
-    case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
-    case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
-    case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
-    case OpNoLine: *hasResult = false; *hasResultType = false; break;
-    case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
-    case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
-    case OpSizeOf: *hasResult = true; *hasResultType = true; break;
-    case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
-    case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
-    case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
-    case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
-    case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
-    case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
-    case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
-    case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
-    case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
-    case OpDecorateId: *hasResult = false; *hasResultType = false; break;
-    case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
-    case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
-    case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
-    case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
-    case OpPtrDiff: *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;
-    case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
-    case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
-    case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
-    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 OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
-    case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
-    case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
-    case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
-    case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
-    case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionTypeKHR: *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;
-    case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
-    case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
-    case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
-    case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
-    case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
-    case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
-    case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
-    case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
-    case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
-    case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
-    case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
-    case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
-    case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; 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 OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
-    case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
-    case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
-    case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
-    case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
-    case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
-    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 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;
-    case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
-    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 OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
-    case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
-    case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
-    case OpDecorateString: *hasResult = false; *hasResultType = false; break;
-    case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
-    case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
-    case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
-    case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
-    case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
-    case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
-    case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
-    }
-}
-#endif /* SPV_ENABLE_UTILITY_CODE */
-
-// Overload operator| 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)); }
-
-}  // end namespace spv
-
-#endif  // #ifndef spirv_HPP
+// Copyright (c) 2014-2020 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.

+

+// This header is automatically generated by the same tool that creates

+// the Binary Section of the SPIR-V specification.

+

+// Enumeration tokens for SPIR-V, in various styles:

+//   C, C++, C++11, JSON, Lua, Python, C#, D

+//

+// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL

+// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL

+// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL

+// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL

+// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']

+// - C# will use enum classes in the Specification class located in the "Spv" namespace,

+//     e.g.: Spv.Specification.SourceLanguage.GLSL

+// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL

+//

+// Some tokens act like mask values, which can be OR'd together,

+// while others are mutually exclusive.  The mask-like ones have

+// "Mask" in their name, and a parallel enum that has the shift

+// amount (1 << x) for each corresponding enumerant.

+

+#ifndef spirv_HPP

+#define spirv_HPP

+

+namespace spv {

+

+typedef unsigned int Id;

+

+#define SPV_VERSION 0x10600

+#define SPV_REVISION 1

+

+static const unsigned int MagicNumber = 0x07230203;

+static const unsigned int Version = 0x00010600;

+static const unsigned int Revision = 1;

+static const unsigned int OpCodeMask = 0xffff;

+static const unsigned int WordCountShift = 16;

+

+enum SourceLanguage {

+    SourceLanguageUnknown = 0,

+    SourceLanguageESSL = 1,

+    SourceLanguageGLSL = 2,

+    SourceLanguageOpenCL_C = 3,

+    SourceLanguageOpenCL_CPP = 4,

+    SourceLanguageHLSL = 5,

+    SourceLanguageCPP_for_OpenCL = 6,

+    SourceLanguageMax = 0x7fffffff,

+};

+

+enum ExecutionModel {

+    ExecutionModelVertex = 0,

+    ExecutionModelTessellationControl = 1,

+    ExecutionModelTessellationEvaluation = 2,

+    ExecutionModelGeometry = 3,

+    ExecutionModelFragment = 4,

+    ExecutionModelGLCompute = 5,

+    ExecutionModelKernel = 6,

+    ExecutionModelTaskNV = 5267,

+    ExecutionModelMeshNV = 5268,

+    ExecutionModelRayGenerationKHR = 5313,

+    ExecutionModelRayGenerationNV = 5313,

+    ExecutionModelIntersectionKHR = 5314,

+    ExecutionModelIntersectionNV = 5314,

+    ExecutionModelAnyHitKHR = 5315,

+    ExecutionModelAnyHitNV = 5315,

+    ExecutionModelClosestHitKHR = 5316,

+    ExecutionModelClosestHitNV = 5316,

+    ExecutionModelMissKHR = 5317,

+    ExecutionModelMissNV = 5317,

+    ExecutionModelCallableKHR = 5318,

+    ExecutionModelCallableNV = 5318,

+    ExecutionModelTaskEXT = 5364,

+    ExecutionModelMeshEXT = 5365,

+    ExecutionModelMax = 0x7fffffff,

+};

+

+enum AddressingModel {

+    AddressingModelLogical = 0,

+    AddressingModelPhysical32 = 1,

+    AddressingModelPhysical64 = 2,

+    AddressingModelPhysicalStorageBuffer64 = 5348,

+    AddressingModelPhysicalStorageBuffer64EXT = 5348,

+    AddressingModelMax = 0x7fffffff,

+};

+

+enum MemoryModel {

+    MemoryModelSimple = 0,

+    MemoryModelGLSL450 = 1,

+    MemoryModelOpenCL = 2,

+    MemoryModelVulkan = 3,

+    MemoryModelVulkanKHR = 3,

+    MemoryModelMax = 0x7fffffff,

+};

+

+enum ExecutionMode {

+    ExecutionModeInvocations = 0,

+    ExecutionModeSpacingEqual = 1,

+    ExecutionModeSpacingFractionalEven = 2,

+    ExecutionModeSpacingFractionalOdd = 3,

+    ExecutionModeVertexOrderCw = 4,

+    ExecutionModeVertexOrderCcw = 5,

+    ExecutionModePixelCenterInteger = 6,

+    ExecutionModeOriginUpperLeft = 7,

+    ExecutionModeOriginLowerLeft = 8,

+    ExecutionModeEarlyFragmentTests = 9,

+    ExecutionModePointMode = 10,

+    ExecutionModeXfb = 11,

+    ExecutionModeDepthReplacing = 12,

+    ExecutionModeDepthGreater = 14,

+    ExecutionModeDepthLess = 15,

+    ExecutionModeDepthUnchanged = 16,

+    ExecutionModeLocalSize = 17,

+    ExecutionModeLocalSizeHint = 18,

+    ExecutionModeInputPoints = 19,

+    ExecutionModeInputLines = 20,

+    ExecutionModeInputLinesAdjacency = 21,

+    ExecutionModeTriangles = 22,

+    ExecutionModeInputTrianglesAdjacency = 23,

+    ExecutionModeQuads = 24,

+    ExecutionModeIsolines = 25,

+    ExecutionModeOutputVertices = 26,

+    ExecutionModeOutputPoints = 27,

+    ExecutionModeOutputLineStrip = 28,

+    ExecutionModeOutputTriangleStrip = 29,

+    ExecutionModeVecTypeHint = 30,

+    ExecutionModeContractionOff = 31,

+    ExecutionModeInitializer = 33,

+    ExecutionModeFinalizer = 34,

+    ExecutionModeSubgroupSize = 35,

+    ExecutionModeSubgroupsPerWorkgroup = 36,

+    ExecutionModeSubgroupsPerWorkgroupId = 37,

+    ExecutionModeLocalSizeId = 38,

+    ExecutionModeLocalSizeHintId = 39,

+    ExecutionModeSubgroupUniformControlFlowKHR = 4421,

+    ExecutionModePostDepthCoverage = 4446,

+    ExecutionModeDenormPreserve = 4459,

+    ExecutionModeDenormFlushToZero = 4460,

+    ExecutionModeSignedZeroInfNanPreserve = 4461,

+    ExecutionModeRoundingModeRTE = 4462,

+    ExecutionModeRoundingModeRTZ = 4463,

+    ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,

+    ExecutionModeStencilRefReplacingEXT = 5027,

+    ExecutionModeStencilRefUnchangedFrontAMD = 5079,

+    ExecutionModeStencilRefGreaterFrontAMD = 5080,

+    ExecutionModeStencilRefLessFrontAMD = 5081,

+    ExecutionModeStencilRefUnchangedBackAMD = 5082,

+    ExecutionModeStencilRefGreaterBackAMD = 5083,

+    ExecutionModeStencilRefLessBackAMD = 5084,

+    ExecutionModeOutputLinesEXT = 5269,

+    ExecutionModeOutputLinesNV = 5269,

+    ExecutionModeOutputPrimitivesEXT = 5270,

+    ExecutionModeOutputPrimitivesNV = 5270,

+    ExecutionModeDerivativeGroupQuadsNV = 5289,

+    ExecutionModeDerivativeGroupLinearNV = 5290,

+    ExecutionModeOutputTrianglesEXT = 5298,

+    ExecutionModeOutputTrianglesNV = 5298,

+    ExecutionModePixelInterlockOrderedEXT = 5366,

+    ExecutionModePixelInterlockUnorderedEXT = 5367,

+    ExecutionModeSampleInterlockOrderedEXT = 5368,

+    ExecutionModeSampleInterlockUnorderedEXT = 5369,

+    ExecutionModeShadingRateInterlockOrderedEXT = 5370,

+    ExecutionModeShadingRateInterlockUnorderedEXT = 5371,

+    ExecutionModeSharedLocalMemorySizeINTEL = 5618,

+    ExecutionModeRoundingModeRTPINTEL = 5620,

+    ExecutionModeRoundingModeRTNINTEL = 5621,

+    ExecutionModeFloatingPointModeALTINTEL = 5622,

+    ExecutionModeFloatingPointModeIEEEINTEL = 5623,

+    ExecutionModeMaxWorkgroupSizeINTEL = 5893,

+    ExecutionModeMaxWorkDimINTEL = 5894,

+    ExecutionModeNoGlobalOffsetINTEL = 5895,

+    ExecutionModeNumSIMDWorkitemsINTEL = 5896,

+    ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,

+    ExecutionModeMax = 0x7fffffff,

+};

+

+enum StorageClass {

+    StorageClassUniformConstant = 0,

+    StorageClassInput = 1,

+    StorageClassUniform = 2,

+    StorageClassOutput = 3,

+    StorageClassWorkgroup = 4,

+    StorageClassCrossWorkgroup = 5,

+    StorageClassPrivate = 6,

+    StorageClassFunction = 7,

+    StorageClassGeneric = 8,

+    StorageClassPushConstant = 9,

+    StorageClassAtomicCounter = 10,

+    StorageClassImage = 11,

+    StorageClassStorageBuffer = 12,

+    StorageClassCallableDataKHR = 5328,

+    StorageClassCallableDataNV = 5328,

+    StorageClassIncomingCallableDataKHR = 5329,

+    StorageClassIncomingCallableDataNV = 5329,

+    StorageClassRayPayloadKHR = 5338,

+    StorageClassRayPayloadNV = 5338,

+    StorageClassHitAttributeKHR = 5339,

+    StorageClassHitAttributeNV = 5339,

+    StorageClassIncomingRayPayloadKHR = 5342,

+    StorageClassIncomingRayPayloadNV = 5342,

+    StorageClassShaderRecordBufferKHR = 5343,

+    StorageClassShaderRecordBufferNV = 5343,

+    StorageClassPhysicalStorageBuffer = 5349,

+    StorageClassPhysicalStorageBufferEXT = 5349,

+    StorageClassTaskPayloadWorkgroupEXT = 5402,

+    StorageClassCodeSectionINTEL = 5605,

+    StorageClassDeviceOnlyINTEL = 5936,

+    StorageClassHostOnlyINTEL = 5937,

+    StorageClassMax = 0x7fffffff,

+};

+

+enum Dim {

+    Dim1D = 0,

+    Dim2D = 1,

+    Dim3D = 2,

+    DimCube = 3,

+    DimRect = 4,

+    DimBuffer = 5,

+    DimSubpassData = 6,

+    DimMax = 0x7fffffff,

+};

+

+enum SamplerAddressingMode {

+    SamplerAddressingModeNone = 0,

+    SamplerAddressingModeClampToEdge = 1,

+    SamplerAddressingModeClamp = 2,

+    SamplerAddressingModeRepeat = 3,

+    SamplerAddressingModeRepeatMirrored = 4,

+    SamplerAddressingModeMax = 0x7fffffff,

+};

+

+enum SamplerFilterMode {

+    SamplerFilterModeNearest = 0,

+    SamplerFilterModeLinear = 1,

+    SamplerFilterModeMax = 0x7fffffff,

+};

+

+enum ImageFormat {

+    ImageFormatUnknown = 0,

+    ImageFormatRgba32f = 1,

+    ImageFormatRgba16f = 2,

+    ImageFormatR32f = 3,

+    ImageFormatRgba8 = 4,

+    ImageFormatRgba8Snorm = 5,

+    ImageFormatRg32f = 6,

+    ImageFormatRg16f = 7,

+    ImageFormatR11fG11fB10f = 8,

+    ImageFormatR16f = 9,

+    ImageFormatRgba16 = 10,

+    ImageFormatRgb10A2 = 11,

+    ImageFormatRg16 = 12,

+    ImageFormatRg8 = 13,

+    ImageFormatR16 = 14,

+    ImageFormatR8 = 15,

+    ImageFormatRgba16Snorm = 16,

+    ImageFormatRg16Snorm = 17,

+    ImageFormatRg8Snorm = 18,

+    ImageFormatR16Snorm = 19,

+    ImageFormatR8Snorm = 20,

+    ImageFormatRgba32i = 21,

+    ImageFormatRgba16i = 22,

+    ImageFormatRgba8i = 23,

+    ImageFormatR32i = 24,

+    ImageFormatRg32i = 25,

+    ImageFormatRg16i = 26,

+    ImageFormatRg8i = 27,

+    ImageFormatR16i = 28,

+    ImageFormatR8i = 29,

+    ImageFormatRgba32ui = 30,

+    ImageFormatRgba16ui = 31,

+    ImageFormatRgba8ui = 32,

+    ImageFormatR32ui = 33,

+    ImageFormatRgb10a2ui = 34,

+    ImageFormatRg32ui = 35,

+    ImageFormatRg16ui = 36,

+    ImageFormatRg8ui = 37,

+    ImageFormatR16ui = 38,

+    ImageFormatR8ui = 39,

+    ImageFormatR64ui = 40,

+    ImageFormatR64i = 41,

+    ImageFormatMax = 0x7fffffff,

+};

+

+enum ImageChannelOrder {

+    ImageChannelOrderR = 0,

+    ImageChannelOrderA = 1,

+    ImageChannelOrderRG = 2,

+    ImageChannelOrderRA = 3,

+    ImageChannelOrderRGB = 4,

+    ImageChannelOrderRGBA = 5,

+    ImageChannelOrderBGRA = 6,

+    ImageChannelOrderARGB = 7,

+    ImageChannelOrderIntensity = 8,

+    ImageChannelOrderLuminance = 9,

+    ImageChannelOrderRx = 10,

+    ImageChannelOrderRGx = 11,

+    ImageChannelOrderRGBx = 12,

+    ImageChannelOrderDepth = 13,

+    ImageChannelOrderDepthStencil = 14,

+    ImageChannelOrdersRGB = 15,

+    ImageChannelOrdersRGBx = 16,

+    ImageChannelOrdersRGBA = 17,

+    ImageChannelOrdersBGRA = 18,

+    ImageChannelOrderABGR = 19,

+    ImageChannelOrderMax = 0x7fffffff,

+};

+

+enum ImageChannelDataType {

+    ImageChannelDataTypeSnormInt8 = 0,

+    ImageChannelDataTypeSnormInt16 = 1,

+    ImageChannelDataTypeUnormInt8 = 2,

+    ImageChannelDataTypeUnormInt16 = 3,

+    ImageChannelDataTypeUnormShort565 = 4,

+    ImageChannelDataTypeUnormShort555 = 5,

+    ImageChannelDataTypeUnormInt101010 = 6,

+    ImageChannelDataTypeSignedInt8 = 7,

+    ImageChannelDataTypeSignedInt16 = 8,

+    ImageChannelDataTypeSignedInt32 = 9,

+    ImageChannelDataTypeUnsignedInt8 = 10,

+    ImageChannelDataTypeUnsignedInt16 = 11,

+    ImageChannelDataTypeUnsignedInt32 = 12,

+    ImageChannelDataTypeHalfFloat = 13,

+    ImageChannelDataTypeFloat = 14,

+    ImageChannelDataTypeUnormInt24 = 15,

+    ImageChannelDataTypeUnormInt101010_2 = 16,

+    ImageChannelDataTypeMax = 0x7fffffff,

+};

+

+enum ImageOperandsShift {

+    ImageOperandsBiasShift = 0,

+    ImageOperandsLodShift = 1,

+    ImageOperandsGradShift = 2,

+    ImageOperandsConstOffsetShift = 3,

+    ImageOperandsOffsetShift = 4,

+    ImageOperandsConstOffsetsShift = 5,

+    ImageOperandsSampleShift = 6,

+    ImageOperandsMinLodShift = 7,

+    ImageOperandsMakeTexelAvailableShift = 8,

+    ImageOperandsMakeTexelAvailableKHRShift = 8,

+    ImageOperandsMakeTexelVisibleShift = 9,

+    ImageOperandsMakeTexelVisibleKHRShift = 9,

+    ImageOperandsNonPrivateTexelShift = 10,

+    ImageOperandsNonPrivateTexelKHRShift = 10,

+    ImageOperandsVolatileTexelShift = 11,

+    ImageOperandsVolatileTexelKHRShift = 11,

+    ImageOperandsSignExtendShift = 12,

+    ImageOperandsZeroExtendShift = 13,

+    ImageOperandsNontemporalShift = 14,

+    ImageOperandsOffsetsShift = 16,

+    ImageOperandsMax = 0x7fffffff,

+};

+

+enum ImageOperandsMask {

+    ImageOperandsMaskNone = 0,

+    ImageOperandsBiasMask = 0x00000001,

+    ImageOperandsLodMask = 0x00000002,

+    ImageOperandsGradMask = 0x00000004,

+    ImageOperandsConstOffsetMask = 0x00000008,

+    ImageOperandsOffsetMask = 0x00000010,

+    ImageOperandsConstOffsetsMask = 0x00000020,

+    ImageOperandsSampleMask = 0x00000040,

+    ImageOperandsMinLodMask = 0x00000080,

+    ImageOperandsMakeTexelAvailableMask = 0x00000100,

+    ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,

+    ImageOperandsMakeTexelVisibleMask = 0x00000200,

+    ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,

+    ImageOperandsNonPrivateTexelMask = 0x00000400,

+    ImageOperandsNonPrivateTexelKHRMask = 0x00000400,

+    ImageOperandsVolatileTexelMask = 0x00000800,

+    ImageOperandsVolatileTexelKHRMask = 0x00000800,

+    ImageOperandsSignExtendMask = 0x00001000,

+    ImageOperandsZeroExtendMask = 0x00002000,

+    ImageOperandsNontemporalMask = 0x00004000,

+    ImageOperandsOffsetsMask = 0x00010000,

+};

+

+enum FPFastMathModeShift {

+    FPFastMathModeNotNaNShift = 0,

+    FPFastMathModeNotInfShift = 1,

+    FPFastMathModeNSZShift = 2,

+    FPFastMathModeAllowRecipShift = 3,

+    FPFastMathModeFastShift = 4,

+    FPFastMathModeAllowContractFastINTELShift = 16,

+    FPFastMathModeAllowReassocINTELShift = 17,

+    FPFastMathModeMax = 0x7fffffff,

+};

+

+enum FPFastMathModeMask {

+    FPFastMathModeMaskNone = 0,

+    FPFastMathModeNotNaNMask = 0x00000001,

+    FPFastMathModeNotInfMask = 0x00000002,

+    FPFastMathModeNSZMask = 0x00000004,

+    FPFastMathModeAllowRecipMask = 0x00000008,

+    FPFastMathModeFastMask = 0x00000010,

+    FPFastMathModeAllowContractFastINTELMask = 0x00010000,

+    FPFastMathModeAllowReassocINTELMask = 0x00020000,

+};

+

+enum FPRoundingMode {

+    FPRoundingModeRTE = 0,

+    FPRoundingModeRTZ = 1,

+    FPRoundingModeRTP = 2,

+    FPRoundingModeRTN = 3,

+    FPRoundingModeMax = 0x7fffffff,

+};

+

+enum LinkageType {

+    LinkageTypeExport = 0,

+    LinkageTypeImport = 1,

+    LinkageTypeLinkOnceODR = 2,

+    LinkageTypeMax = 0x7fffffff,

+};

+

+enum AccessQualifier {

+    AccessQualifierReadOnly = 0,

+    AccessQualifierWriteOnly = 1,

+    AccessQualifierReadWrite = 2,

+    AccessQualifierMax = 0x7fffffff,

+};

+

+enum FunctionParameterAttribute {

+    FunctionParameterAttributeZext = 0,

+    FunctionParameterAttributeSext = 1,

+    FunctionParameterAttributeByVal = 2,

+    FunctionParameterAttributeSret = 3,

+    FunctionParameterAttributeNoAlias = 4,

+    FunctionParameterAttributeNoCapture = 5,

+    FunctionParameterAttributeNoWrite = 6,

+    FunctionParameterAttributeNoReadWrite = 7,

+    FunctionParameterAttributeMax = 0x7fffffff,

+};

+

+enum Decoration {

+    DecorationRelaxedPrecision = 0,

+    DecorationSpecId = 1,

+    DecorationBlock = 2,

+    DecorationBufferBlock = 3,

+    DecorationRowMajor = 4,

+    DecorationColMajor = 5,

+    DecorationArrayStride = 6,

+    DecorationMatrixStride = 7,

+    DecorationGLSLShared = 8,

+    DecorationGLSLPacked = 9,

+    DecorationCPacked = 10,

+    DecorationBuiltIn = 11,

+    DecorationNoPerspective = 13,

+    DecorationFlat = 14,

+    DecorationPatch = 15,

+    DecorationCentroid = 16,

+    DecorationSample = 17,

+    DecorationInvariant = 18,

+    DecorationRestrict = 19,

+    DecorationAliased = 20,

+    DecorationVolatile = 21,

+    DecorationConstant = 22,

+    DecorationCoherent = 23,

+    DecorationNonWritable = 24,

+    DecorationNonReadable = 25,

+    DecorationUniform = 26,

+    DecorationUniformId = 27,

+    DecorationSaturatedConversion = 28,

+    DecorationStream = 29,

+    DecorationLocation = 30,

+    DecorationComponent = 31,

+    DecorationIndex = 32,

+    DecorationBinding = 33,

+    DecorationDescriptorSet = 34,

+    DecorationOffset = 35,

+    DecorationXfbBuffer = 36,

+    DecorationXfbStride = 37,

+    DecorationFuncParamAttr = 38,

+    DecorationFPRoundingMode = 39,

+    DecorationFPFastMathMode = 40,

+    DecorationLinkageAttributes = 41,

+    DecorationNoContraction = 42,

+    DecorationInputAttachmentIndex = 43,

+    DecorationAlignment = 44,

+    DecorationMaxByteOffset = 45,

+    DecorationAlignmentId = 46,

+    DecorationMaxByteOffsetId = 47,

+    DecorationNoSignedWrap = 4469,

+    DecorationNoUnsignedWrap = 4470,

+    DecorationExplicitInterpAMD = 4999,

+    DecorationOverrideCoverageNV = 5248,

+    DecorationPassthroughNV = 5250,

+    DecorationViewportRelativeNV = 5252,

+    DecorationSecondaryViewportRelativeNV = 5256,

+    DecorationPerPrimitiveEXT = 5271,

+    DecorationPerPrimitiveNV = 5271,

+    DecorationPerViewNV = 5272,

+    DecorationPerTaskNV = 5273,

+    DecorationPerVertexKHR = 5285,

+    DecorationPerVertexNV = 5285,

+    DecorationNonUniform = 5300,

+    DecorationNonUniformEXT = 5300,

+    DecorationRestrictPointer = 5355,

+    DecorationRestrictPointerEXT = 5355,

+    DecorationAliasedPointer = 5356,

+    DecorationAliasedPointerEXT = 5356,

+    DecorationBindlessSamplerNV = 5398,

+    DecorationBindlessImageNV = 5399,

+    DecorationBoundSamplerNV = 5400,

+    DecorationBoundImageNV = 5401,

+    DecorationSIMTCallINTEL = 5599,

+    DecorationReferencedIndirectlyINTEL = 5602,

+    DecorationClobberINTEL = 5607,

+    DecorationSideEffectsINTEL = 5608,

+    DecorationVectorComputeVariableINTEL = 5624,

+    DecorationFuncParamIOKindINTEL = 5625,

+    DecorationVectorComputeFunctionINTEL = 5626,

+    DecorationStackCallINTEL = 5627,

+    DecorationGlobalVariableOffsetINTEL = 5628,

+    DecorationCounterBuffer = 5634,

+    DecorationHlslCounterBufferGOOGLE = 5634,

+    DecorationHlslSemanticGOOGLE = 5635,

+    DecorationUserSemantic = 5635,

+    DecorationUserTypeGOOGLE = 5636,

+    DecorationFunctionRoundingModeINTEL = 5822,

+    DecorationFunctionDenormModeINTEL = 5823,

+    DecorationRegisterINTEL = 5825,

+    DecorationMemoryINTEL = 5826,

+    DecorationNumbanksINTEL = 5827,

+    DecorationBankwidthINTEL = 5828,

+    DecorationMaxPrivateCopiesINTEL = 5829,

+    DecorationSinglepumpINTEL = 5830,

+    DecorationDoublepumpINTEL = 5831,

+    DecorationMaxReplicatesINTEL = 5832,

+    DecorationSimpleDualPortINTEL = 5833,

+    DecorationMergeINTEL = 5834,

+    DecorationBankBitsINTEL = 5835,

+    DecorationForcePow2DepthINTEL = 5836,

+    DecorationBurstCoalesceINTEL = 5899,

+    DecorationCacheSizeINTEL = 5900,

+    DecorationDontStaticallyCoalesceINTEL = 5901,

+    DecorationPrefetchINTEL = 5902,

+    DecorationStallEnableINTEL = 5905,

+    DecorationFuseLoopsInFunctionINTEL = 5907,

+    DecorationBufferLocationINTEL = 5921,

+    DecorationIOPipeStorageINTEL = 5944,

+    DecorationFunctionFloatingPointModeINTEL = 6080,

+    DecorationSingleElementVectorINTEL = 6085,

+    DecorationVectorComputeCallableFunctionINTEL = 6087,

+    DecorationMediaBlockIOINTEL = 6140,

+    DecorationMax = 0x7fffffff,

+};

+

+enum BuiltIn {

+    BuiltInPosition = 0,

+    BuiltInPointSize = 1,

+    BuiltInClipDistance = 3,

+    BuiltInCullDistance = 4,

+    BuiltInVertexId = 5,

+    BuiltInInstanceId = 6,

+    BuiltInPrimitiveId = 7,

+    BuiltInInvocationId = 8,

+    BuiltInLayer = 9,

+    BuiltInViewportIndex = 10,

+    BuiltInTessLevelOuter = 11,

+    BuiltInTessLevelInner = 12,

+    BuiltInTessCoord = 13,

+    BuiltInPatchVertices = 14,

+    BuiltInFragCoord = 15,

+    BuiltInPointCoord = 16,

+    BuiltInFrontFacing = 17,

+    BuiltInSampleId = 18,

+    BuiltInSamplePosition = 19,

+    BuiltInSampleMask = 20,

+    BuiltInFragDepth = 22,

+    BuiltInHelperInvocation = 23,

+    BuiltInNumWorkgroups = 24,

+    BuiltInWorkgroupSize = 25,

+    BuiltInWorkgroupId = 26,

+    BuiltInLocalInvocationId = 27,

+    BuiltInGlobalInvocationId = 28,

+    BuiltInLocalInvocationIndex = 29,

+    BuiltInWorkDim = 30,

+    BuiltInGlobalSize = 31,

+    BuiltInEnqueuedWorkgroupSize = 32,

+    BuiltInGlobalOffset = 33,

+    BuiltInGlobalLinearId = 34,

+    BuiltInSubgroupSize = 36,

+    BuiltInSubgroupMaxSize = 37,

+    BuiltInNumSubgroups = 38,

+    BuiltInNumEnqueuedSubgroups = 39,

+    BuiltInSubgroupId = 40,

+    BuiltInSubgroupLocalInvocationId = 41,

+    BuiltInVertexIndex = 42,

+    BuiltInInstanceIndex = 43,

+    BuiltInSubgroupEqMask = 4416,

+    BuiltInSubgroupEqMaskKHR = 4416,

+    BuiltInSubgroupGeMask = 4417,

+    BuiltInSubgroupGeMaskKHR = 4417,

+    BuiltInSubgroupGtMask = 4418,

+    BuiltInSubgroupGtMaskKHR = 4418,

+    BuiltInSubgroupLeMask = 4419,

+    BuiltInSubgroupLeMaskKHR = 4419,

+    BuiltInSubgroupLtMask = 4420,

+    BuiltInSubgroupLtMaskKHR = 4420,

+    BuiltInBaseVertex = 4424,

+    BuiltInBaseInstance = 4425,

+    BuiltInDrawIndex = 4426,

+    BuiltInPrimitiveShadingRateKHR = 4432,

+    BuiltInDeviceIndex = 4438,

+    BuiltInViewIndex = 4440,

+    BuiltInShadingRateKHR = 4444,

+    BuiltInBaryCoordNoPerspAMD = 4992,

+    BuiltInBaryCoordNoPerspCentroidAMD = 4993,

+    BuiltInBaryCoordNoPerspSampleAMD = 4994,

+    BuiltInBaryCoordSmoothAMD = 4995,

+    BuiltInBaryCoordSmoothCentroidAMD = 4996,

+    BuiltInBaryCoordSmoothSampleAMD = 4997,

+    BuiltInBaryCoordPullModelAMD = 4998,

+    BuiltInFragStencilRefEXT = 5014,

+    BuiltInViewportMaskNV = 5253,

+    BuiltInSecondaryPositionNV = 5257,

+    BuiltInSecondaryViewportMaskNV = 5258,

+    BuiltInPositionPerViewNV = 5261,

+    BuiltInViewportMaskPerViewNV = 5262,

+    BuiltInFullyCoveredEXT = 5264,

+    BuiltInTaskCountNV = 5274,

+    BuiltInPrimitiveCountNV = 5275,

+    BuiltInPrimitiveIndicesNV = 5276,

+    BuiltInClipDistancePerViewNV = 5277,

+    BuiltInCullDistancePerViewNV = 5278,

+    BuiltInLayerPerViewNV = 5279,

+    BuiltInMeshViewCountNV = 5280,

+    BuiltInMeshViewIndicesNV = 5281,

+    BuiltInBaryCoordKHR = 5286,

+    BuiltInBaryCoordNV = 5286,

+    BuiltInBaryCoordNoPerspKHR = 5287,

+    BuiltInBaryCoordNoPerspNV = 5287,

+    BuiltInFragSizeEXT = 5292,

+    BuiltInFragmentSizeNV = 5292,

+    BuiltInFragInvocationCountEXT = 5293,

+    BuiltInInvocationsPerPixelNV = 5293,

+    BuiltInPrimitivePointIndicesEXT = 5294,

+    BuiltInPrimitiveLineIndicesEXT = 5295,

+    BuiltInPrimitiveTriangleIndicesEXT = 5296,

+    BuiltInCullPrimitiveEXT = 5299,

+    BuiltInLaunchIdKHR = 5319,

+    BuiltInLaunchIdNV = 5319,

+    BuiltInLaunchSizeKHR = 5320,

+    BuiltInLaunchSizeNV = 5320,

+    BuiltInWorldRayOriginKHR = 5321,

+    BuiltInWorldRayOriginNV = 5321,

+    BuiltInWorldRayDirectionKHR = 5322,

+    BuiltInWorldRayDirectionNV = 5322,

+    BuiltInObjectRayOriginKHR = 5323,

+    BuiltInObjectRayOriginNV = 5323,

+    BuiltInObjectRayDirectionKHR = 5324,

+    BuiltInObjectRayDirectionNV = 5324,

+    BuiltInRayTminKHR = 5325,

+    BuiltInRayTminNV = 5325,

+    BuiltInRayTmaxKHR = 5326,

+    BuiltInRayTmaxNV = 5326,

+    BuiltInInstanceCustomIndexKHR = 5327,

+    BuiltInInstanceCustomIndexNV = 5327,

+    BuiltInObjectToWorldKHR = 5330,

+    BuiltInObjectToWorldNV = 5330,

+    BuiltInWorldToObjectKHR = 5331,

+    BuiltInWorldToObjectNV = 5331,

+    BuiltInHitTNV = 5332,

+    BuiltInHitKindKHR = 5333,

+    BuiltInHitKindNV = 5333,

+    BuiltInCurrentRayTimeNV = 5334,

+    BuiltInIncomingRayFlagsKHR = 5351,

+    BuiltInIncomingRayFlagsNV = 5351,

+    BuiltInRayGeometryIndexKHR = 5352,

+    BuiltInWarpsPerSMNV = 5374,

+    BuiltInSMCountNV = 5375,

+    BuiltInWarpIDNV = 5376,

+    BuiltInSMIDNV = 5377,

+    BuiltInCullMaskKHR = 6021,

+    BuiltInMax = 0x7fffffff,

+};

+

+enum SelectionControlShift {

+    SelectionControlFlattenShift = 0,

+    SelectionControlDontFlattenShift = 1,

+    SelectionControlMax = 0x7fffffff,

+};

+

+enum SelectionControlMask {

+    SelectionControlMaskNone = 0,

+    SelectionControlFlattenMask = 0x00000001,

+    SelectionControlDontFlattenMask = 0x00000002,

+};

+

+enum LoopControlShift {

+    LoopControlUnrollShift = 0,

+    LoopControlDontUnrollShift = 1,

+    LoopControlDependencyInfiniteShift = 2,

+    LoopControlDependencyLengthShift = 3,

+    LoopControlMinIterationsShift = 4,

+    LoopControlMaxIterationsShift = 5,

+    LoopControlIterationMultipleShift = 6,

+    LoopControlPeelCountShift = 7,

+    LoopControlPartialCountShift = 8,

+    LoopControlInitiationIntervalINTELShift = 16,

+    LoopControlMaxConcurrencyINTELShift = 17,

+    LoopControlDependencyArrayINTELShift = 18,

+    LoopControlPipelineEnableINTELShift = 19,

+    LoopControlLoopCoalesceINTELShift = 20,

+    LoopControlMaxInterleavingINTELShift = 21,

+    LoopControlSpeculatedIterationsINTELShift = 22,

+    LoopControlNoFusionINTELShift = 23,

+    LoopControlMax = 0x7fffffff,

+};

+

+enum LoopControlMask {

+    LoopControlMaskNone = 0,

+    LoopControlUnrollMask = 0x00000001,

+    LoopControlDontUnrollMask = 0x00000002,

+    LoopControlDependencyInfiniteMask = 0x00000004,

+    LoopControlDependencyLengthMask = 0x00000008,

+    LoopControlMinIterationsMask = 0x00000010,

+    LoopControlMaxIterationsMask = 0x00000020,

+    LoopControlIterationMultipleMask = 0x00000040,

+    LoopControlPeelCountMask = 0x00000080,

+    LoopControlPartialCountMask = 0x00000100,

+    LoopControlInitiationIntervalINTELMask = 0x00010000,

+    LoopControlMaxConcurrencyINTELMask = 0x00020000,

+    LoopControlDependencyArrayINTELMask = 0x00040000,

+    LoopControlPipelineEnableINTELMask = 0x00080000,

+    LoopControlLoopCoalesceINTELMask = 0x00100000,

+    LoopControlMaxInterleavingINTELMask = 0x00200000,

+    LoopControlSpeculatedIterationsINTELMask = 0x00400000,

+    LoopControlNoFusionINTELMask = 0x00800000,

+};

+

+enum FunctionControlShift {

+    FunctionControlInlineShift = 0,

+    FunctionControlDontInlineShift = 1,

+    FunctionControlPureShift = 2,

+    FunctionControlConstShift = 3,

+    FunctionControlOptNoneINTELShift = 16,

+    FunctionControlMax = 0x7fffffff,

+};

+

+enum FunctionControlMask {

+    FunctionControlMaskNone = 0,

+    FunctionControlInlineMask = 0x00000001,

+    FunctionControlDontInlineMask = 0x00000002,

+    FunctionControlPureMask = 0x00000004,

+    FunctionControlConstMask = 0x00000008,

+    FunctionControlOptNoneINTELMask = 0x00010000,

+};

+

+enum MemorySemanticsShift {

+    MemorySemanticsAcquireShift = 1,

+    MemorySemanticsReleaseShift = 2,

+    MemorySemanticsAcquireReleaseShift = 3,

+    MemorySemanticsSequentiallyConsistentShift = 4,

+    MemorySemanticsUniformMemoryShift = 6,

+    MemorySemanticsSubgroupMemoryShift = 7,

+    MemorySemanticsWorkgroupMemoryShift = 8,

+    MemorySemanticsCrossWorkgroupMemoryShift = 9,

+    MemorySemanticsAtomicCounterMemoryShift = 10,

+    MemorySemanticsImageMemoryShift = 11,

+    MemorySemanticsOutputMemoryShift = 12,

+    MemorySemanticsOutputMemoryKHRShift = 12,

+    MemorySemanticsMakeAvailableShift = 13,

+    MemorySemanticsMakeAvailableKHRShift = 13,

+    MemorySemanticsMakeVisibleShift = 14,

+    MemorySemanticsMakeVisibleKHRShift = 14,

+    MemorySemanticsVolatileShift = 15,

+    MemorySemanticsMax = 0x7fffffff,

+};

+

+enum MemorySemanticsMask {

+    MemorySemanticsMaskNone = 0,

+    MemorySemanticsAcquireMask = 0x00000002,

+    MemorySemanticsReleaseMask = 0x00000004,

+    MemorySemanticsAcquireReleaseMask = 0x00000008,

+    MemorySemanticsSequentiallyConsistentMask = 0x00000010,

+    MemorySemanticsUniformMemoryMask = 0x00000040,

+    MemorySemanticsSubgroupMemoryMask = 0x00000080,

+    MemorySemanticsWorkgroupMemoryMask = 0x00000100,

+    MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,

+    MemorySemanticsAtomicCounterMemoryMask = 0x00000400,

+    MemorySemanticsImageMemoryMask = 0x00000800,

+    MemorySemanticsOutputMemoryMask = 0x00001000,

+    MemorySemanticsOutputMemoryKHRMask = 0x00001000,

+    MemorySemanticsMakeAvailableMask = 0x00002000,

+    MemorySemanticsMakeAvailableKHRMask = 0x00002000,

+    MemorySemanticsMakeVisibleMask = 0x00004000,

+    MemorySemanticsMakeVisibleKHRMask = 0x00004000,

+    MemorySemanticsVolatileMask = 0x00008000,

+};

+

+enum MemoryAccessShift {

+    MemoryAccessVolatileShift = 0,

+    MemoryAccessAlignedShift = 1,

+    MemoryAccessNontemporalShift = 2,

+    MemoryAccessMakePointerAvailableShift = 3,

+    MemoryAccessMakePointerAvailableKHRShift = 3,

+    MemoryAccessMakePointerVisibleShift = 4,

+    MemoryAccessMakePointerVisibleKHRShift = 4,

+    MemoryAccessNonPrivatePointerShift = 5,

+    MemoryAccessNonPrivatePointerKHRShift = 5,

+    MemoryAccessMax = 0x7fffffff,

+};

+

+enum MemoryAccessMask {

+    MemoryAccessMaskNone = 0,

+    MemoryAccessVolatileMask = 0x00000001,

+    MemoryAccessAlignedMask = 0x00000002,

+    MemoryAccessNontemporalMask = 0x00000004,

+    MemoryAccessMakePointerAvailableMask = 0x00000008,

+    MemoryAccessMakePointerAvailableKHRMask = 0x00000008,

+    MemoryAccessMakePointerVisibleMask = 0x00000010,

+    MemoryAccessMakePointerVisibleKHRMask = 0x00000010,

+    MemoryAccessNonPrivatePointerMask = 0x00000020,

+    MemoryAccessNonPrivatePointerKHRMask = 0x00000020,

+};

+

+enum Scope {

+    ScopeCrossDevice = 0,

+    ScopeDevice = 1,

+    ScopeWorkgroup = 2,

+    ScopeSubgroup = 3,

+    ScopeInvocation = 4,

+    ScopeQueueFamily = 5,

+    ScopeQueueFamilyKHR = 5,

+    ScopeShaderCallKHR = 6,

+    ScopeMax = 0x7fffffff,

+};

+

+enum GroupOperation {

+    GroupOperationReduce = 0,

+    GroupOperationInclusiveScan = 1,

+    GroupOperationExclusiveScan = 2,

+    GroupOperationClusteredReduce = 3,

+    GroupOperationPartitionedReduceNV = 6,

+    GroupOperationPartitionedInclusiveScanNV = 7,

+    GroupOperationPartitionedExclusiveScanNV = 8,

+    GroupOperationMax = 0x7fffffff,

+};

+

+enum KernelEnqueueFlags {

+    KernelEnqueueFlagsNoWait = 0,

+    KernelEnqueueFlagsWaitKernel = 1,

+    KernelEnqueueFlagsWaitWorkGroup = 2,

+    KernelEnqueueFlagsMax = 0x7fffffff,

+};

+

+enum KernelProfilingInfoShift {

+    KernelProfilingInfoCmdExecTimeShift = 0,

+    KernelProfilingInfoMax = 0x7fffffff,

+};

+

+enum KernelProfilingInfoMask {

+    KernelProfilingInfoMaskNone = 0,

+    KernelProfilingInfoCmdExecTimeMask = 0x00000001,

+};

+

+enum Capability {

+    CapabilityMatrix = 0,

+    CapabilityShader = 1,

+    CapabilityGeometry = 2,

+    CapabilityTessellation = 3,

+    CapabilityAddresses = 4,

+    CapabilityLinkage = 5,

+    CapabilityKernel = 6,

+    CapabilityVector16 = 7,

+    CapabilityFloat16Buffer = 8,

+    CapabilityFloat16 = 9,

+    CapabilityFloat64 = 10,

+    CapabilityInt64 = 11,

+    CapabilityInt64Atomics = 12,

+    CapabilityImageBasic = 13,

+    CapabilityImageReadWrite = 14,

+    CapabilityImageMipmap = 15,

+    CapabilityPipes = 17,

+    CapabilityGroups = 18,

+    CapabilityDeviceEnqueue = 19,

+    CapabilityLiteralSampler = 20,

+    CapabilityAtomicStorage = 21,

+    CapabilityInt16 = 22,

+    CapabilityTessellationPointSize = 23,

+    CapabilityGeometryPointSize = 24,

+    CapabilityImageGatherExtended = 25,

+    CapabilityStorageImageMultisample = 27,

+    CapabilityUniformBufferArrayDynamicIndexing = 28,

+    CapabilitySampledImageArrayDynamicIndexing = 29,

+    CapabilityStorageBufferArrayDynamicIndexing = 30,

+    CapabilityStorageImageArrayDynamicIndexing = 31,

+    CapabilityClipDistance = 32,

+    CapabilityCullDistance = 33,

+    CapabilityImageCubeArray = 34,

+    CapabilitySampleRateShading = 35,

+    CapabilityImageRect = 36,

+    CapabilitySampledRect = 37,

+    CapabilityGenericPointer = 38,

+    CapabilityInt8 = 39,

+    CapabilityInputAttachment = 40,

+    CapabilitySparseResidency = 41,

+    CapabilityMinLod = 42,

+    CapabilitySampled1D = 43,

+    CapabilityImage1D = 44,

+    CapabilitySampledCubeArray = 45,

+    CapabilitySampledBuffer = 46,

+    CapabilityImageBuffer = 47,

+    CapabilityImageMSArray = 48,

+    CapabilityStorageImageExtendedFormats = 49,

+    CapabilityImageQuery = 50,

+    CapabilityDerivativeControl = 51,

+    CapabilityInterpolationFunction = 52,

+    CapabilityTransformFeedback = 53,

+    CapabilityGeometryStreams = 54,

+    CapabilityStorageImageReadWithoutFormat = 55,

+    CapabilityStorageImageWriteWithoutFormat = 56,

+    CapabilityMultiViewport = 57,

+    CapabilitySubgroupDispatch = 58,

+    CapabilityNamedBarrier = 59,

+    CapabilityPipeStorage = 60,

+    CapabilityGroupNonUniform = 61,

+    CapabilityGroupNonUniformVote = 62,

+    CapabilityGroupNonUniformArithmetic = 63,

+    CapabilityGroupNonUniformBallot = 64,

+    CapabilityGroupNonUniformShuffle = 65,

+    CapabilityGroupNonUniformShuffleRelative = 66,

+    CapabilityGroupNonUniformClustered = 67,

+    CapabilityGroupNonUniformQuad = 68,

+    CapabilityShaderLayer = 69,

+    CapabilityShaderViewportIndex = 70,

+    CapabilityUniformDecoration = 71,

+    CapabilityFragmentShadingRateKHR = 4422,

+    CapabilitySubgroupBallotKHR = 4423,

+    CapabilityDrawParameters = 4427,

+    CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,

+    CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,

+    CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,

+    CapabilitySubgroupVoteKHR = 4431,

+    CapabilityStorageBuffer16BitAccess = 4433,

+    CapabilityStorageUniformBufferBlock16 = 4433,

+    CapabilityStorageUniform16 = 4434,

+    CapabilityUniformAndStorageBuffer16BitAccess = 4434,

+    CapabilityStoragePushConstant16 = 4435,

+    CapabilityStorageInputOutput16 = 4436,

+    CapabilityDeviceGroup = 4437,

+    CapabilityMultiView = 4439,

+    CapabilityVariablePointersStorageBuffer = 4441,

+    CapabilityVariablePointers = 4442,

+    CapabilityAtomicStorageOps = 4445,

+    CapabilitySampleMaskPostDepthCoverage = 4447,

+    CapabilityStorageBuffer8BitAccess = 4448,

+    CapabilityUniformAndStorageBuffer8BitAccess = 4449,

+    CapabilityStoragePushConstant8 = 4450,

+    CapabilityDenormPreserve = 4464,

+    CapabilityDenormFlushToZero = 4465,

+    CapabilitySignedZeroInfNanPreserve = 4466,

+    CapabilityRoundingModeRTE = 4467,

+    CapabilityRoundingModeRTZ = 4468,

+    CapabilityRayQueryProvisionalKHR = 4471,

+    CapabilityRayQueryKHR = 4472,

+    CapabilityRayTraversalPrimitiveCullingKHR = 4478,

+    CapabilityRayTracingKHR = 4479,

+    CapabilityFloat16ImageAMD = 5008,

+    CapabilityImageGatherBiasLodAMD = 5009,

+    CapabilityFragmentMaskAMD = 5010,

+    CapabilityStencilExportEXT = 5013,

+    CapabilityImageReadWriteLodAMD = 5015,

+    CapabilityInt64ImageEXT = 5016,

+    CapabilityShaderClockKHR = 5055,

+    CapabilitySampleMaskOverrideCoverageNV = 5249,

+    CapabilityGeometryShaderPassthroughNV = 5251,

+    CapabilityShaderViewportIndexLayerEXT = 5254,

+    CapabilityShaderViewportIndexLayerNV = 5254,

+    CapabilityShaderViewportMaskNV = 5255,

+    CapabilityShaderStereoViewNV = 5259,

+    CapabilityPerViewAttributesNV = 5260,

+    CapabilityFragmentFullyCoveredEXT = 5265,

+    CapabilityMeshShadingNV = 5266,

+    CapabilityImageFootprintNV = 5282,

+    CapabilityMeshShadingEXT = 5283,

+	CapabilityFragmentBarycentricKHR = 5284,

+    CapabilityFragmentBarycentricNV = 5284,

+    CapabilityComputeDerivativeGroupQuadsNV = 5288,

+    CapabilityFragmentDensityEXT = 5291,

+    CapabilityShadingRateNV = 5291,

+    CapabilityGroupNonUniformPartitionedNV = 5297,

+    CapabilityShaderNonUniform = 5301,

+    CapabilityShaderNonUniformEXT = 5301,

+    CapabilityRuntimeDescriptorArray = 5302,

+    CapabilityRuntimeDescriptorArrayEXT = 5302,

+    CapabilityInputAttachmentArrayDynamicIndexing = 5303,

+    CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,

+    CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,

+    CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,

+    CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,

+    CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,

+    CapabilityUniformBufferArrayNonUniformIndexing = 5306,

+    CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,

+    CapabilitySampledImageArrayNonUniformIndexing = 5307,

+    CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,

+    CapabilityStorageBufferArrayNonUniformIndexing = 5308,

+    CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,

+    CapabilityStorageImageArrayNonUniformIndexing = 5309,

+    CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,

+    CapabilityInputAttachmentArrayNonUniformIndexing = 5310,

+    CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,

+    CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,

+    CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,

+    CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,

+    CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,

+    CapabilityRayTracingNV = 5340,

+    CapabilityRayTracingMotionBlurNV = 5341,

+    CapabilityVulkanMemoryModel = 5345,

+    CapabilityVulkanMemoryModelKHR = 5345,

+    CapabilityVulkanMemoryModelDeviceScope = 5346,

+    CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,

+    CapabilityPhysicalStorageBufferAddresses = 5347,

+    CapabilityPhysicalStorageBufferAddressesEXT = 5347,

+    CapabilityComputeDerivativeGroupLinearNV = 5350,

+    CapabilityRayTracingProvisionalKHR = 5353,

+    CapabilityCooperativeMatrixNV = 5357,

+    CapabilityFragmentShaderSampleInterlockEXT = 5363,

+    CapabilityFragmentShaderShadingRateInterlockEXT = 5372,

+    CapabilityShaderSMBuiltinsNV = 5373,

+    CapabilityFragmentShaderPixelInterlockEXT = 5378,

+    CapabilityDemoteToHelperInvocation = 5379,

+    CapabilityDemoteToHelperInvocationEXT = 5379,

+    CapabilityBindlessTextureNV = 5390,

+    CapabilitySubgroupShuffleINTEL = 5568,

+    CapabilitySubgroupBufferBlockIOINTEL = 5569,

+    CapabilitySubgroupImageBlockIOINTEL = 5570,

+    CapabilitySubgroupImageMediaBlockIOINTEL = 5579,

+    CapabilityRoundToInfinityINTEL = 5582,

+    CapabilityFloatingPointModeINTEL = 5583,

+    CapabilityIntegerFunctions2INTEL = 5584,

+    CapabilityFunctionPointersINTEL = 5603,

+    CapabilityIndirectReferencesINTEL = 5604,

+    CapabilityAsmINTEL = 5606,

+    CapabilityAtomicFloat32MinMaxEXT = 5612,

+    CapabilityAtomicFloat64MinMaxEXT = 5613,

+    CapabilityAtomicFloat16MinMaxEXT = 5616,

+    CapabilityVectorComputeINTEL = 5617,

+    CapabilityVectorAnyINTEL = 5619,

+    CapabilityExpectAssumeKHR = 5629,

+    CapabilitySubgroupAvcMotionEstimationINTEL = 5696,

+    CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,

+    CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,

+    CapabilityVariableLengthArrayINTEL = 5817,

+    CapabilityFunctionFloatControlINTEL = 5821,

+    CapabilityFPGAMemoryAttributesINTEL = 5824,

+    CapabilityFPFastMathModeINTEL = 5837,

+    CapabilityArbitraryPrecisionIntegersINTEL = 5844,

+    CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,

+    CapabilityUnstructuredLoopControlsINTEL = 5886,

+    CapabilityFPGALoopControlsINTEL = 5888,

+    CapabilityKernelAttributesINTEL = 5892,

+    CapabilityFPGAKernelAttributesINTEL = 5897,

+    CapabilityFPGAMemoryAccessesINTEL = 5898,

+    CapabilityFPGAClusterAttributesINTEL = 5904,

+    CapabilityLoopFuseINTEL = 5906,

+    CapabilityFPGABufferLocationINTEL = 5920,

+    CapabilityArbitraryPrecisionFixedPointINTEL = 5922,

+    CapabilityUSMStorageClassesINTEL = 5935,

+    CapabilityIOPipesINTEL = 5943,

+    CapabilityBlockingPipesINTEL = 5945,

+    CapabilityFPGARegINTEL = 5948,

+    CapabilityDotProductInputAll = 6016,

+    CapabilityDotProductInputAllKHR = 6016,

+    CapabilityDotProductInput4x8Bit = 6017,

+    CapabilityDotProductInput4x8BitKHR = 6017,

+    CapabilityDotProductInput4x8BitPacked = 6018,

+    CapabilityDotProductInput4x8BitPackedKHR = 6018,

+    CapabilityDotProduct = 6019,

+    CapabilityDotProductKHR = 6019,

+    CapabilityRayCullMaskKHR = 6020,

+    CapabilityBitInstructions = 6025,

+    CapabilityAtomicFloat32AddEXT = 6033,

+    CapabilityAtomicFloat64AddEXT = 6034,

+    CapabilityLongConstantCompositeINTEL = 6089,

+    CapabilityOptNoneINTEL = 6094,

+    CapabilityAtomicFloat16AddEXT = 6095,

+    CapabilityDebugInfoModuleINTEL = 6114,

+    CapabilityMax = 0x7fffffff,

+};

+

+enum RayFlagsShift {

+    RayFlagsOpaqueKHRShift = 0,

+    RayFlagsNoOpaqueKHRShift = 1,

+    RayFlagsTerminateOnFirstHitKHRShift = 2,

+    RayFlagsSkipClosestHitShaderKHRShift = 3,

+    RayFlagsCullBackFacingTrianglesKHRShift = 4,

+    RayFlagsCullFrontFacingTrianglesKHRShift = 5,

+    RayFlagsCullOpaqueKHRShift = 6,

+    RayFlagsCullNoOpaqueKHRShift = 7,

+    RayFlagsSkipTrianglesKHRShift = 8,

+    RayFlagsSkipAABBsKHRShift = 9,

+    RayFlagsMax = 0x7fffffff,

+};

+

+enum RayFlagsMask {

+    RayFlagsMaskNone = 0,

+    RayFlagsOpaqueKHRMask = 0x00000001,

+    RayFlagsNoOpaqueKHRMask = 0x00000002,

+    RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,

+    RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,

+    RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,

+    RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,

+    RayFlagsCullOpaqueKHRMask = 0x00000040,

+    RayFlagsCullNoOpaqueKHRMask = 0x00000080,

+    RayFlagsSkipTrianglesKHRMask = 0x00000100,

+    RayFlagsSkipAABBsKHRMask = 0x00000200,

+};

+

+enum RayQueryIntersection {

+    RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,

+    RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,

+    RayQueryIntersectionMax = 0x7fffffff,

+};

+

+enum RayQueryCommittedIntersectionType {

+    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,

+    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,

+    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,

+    RayQueryCommittedIntersectionTypeMax = 0x7fffffff,

+};

+

+enum RayQueryCandidateIntersectionType {

+    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,

+    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,

+    RayQueryCandidateIntersectionTypeMax = 0x7fffffff,

+};

+

+enum FragmentShadingRateShift {

+    FragmentShadingRateVertical2PixelsShift = 0,

+    FragmentShadingRateVertical4PixelsShift = 1,

+    FragmentShadingRateHorizontal2PixelsShift = 2,

+    FragmentShadingRateHorizontal4PixelsShift = 3,

+    FragmentShadingRateMax = 0x7fffffff,

+};

+

+enum FragmentShadingRateMask {

+    FragmentShadingRateMaskNone = 0,

+    FragmentShadingRateVertical2PixelsMask = 0x00000001,

+    FragmentShadingRateVertical4PixelsMask = 0x00000002,

+    FragmentShadingRateHorizontal2PixelsMask = 0x00000004,

+    FragmentShadingRateHorizontal4PixelsMask = 0x00000008,

+};

+

+enum FPDenormMode {

+    FPDenormModePreserve = 0,

+    FPDenormModeFlushToZero = 1,

+    FPDenormModeMax = 0x7fffffff,

+};

+

+enum FPOperationMode {

+    FPOperationModeIEEE = 0,

+    FPOperationModeALT = 1,

+    FPOperationModeMax = 0x7fffffff,

+};

+

+enum QuantizationModes {

+    QuantizationModesTRN = 0,

+    QuantizationModesTRN_ZERO = 1,

+    QuantizationModesRND = 2,

+    QuantizationModesRND_ZERO = 3,

+    QuantizationModesRND_INF = 4,

+    QuantizationModesRND_MIN_INF = 5,

+    QuantizationModesRND_CONV = 6,

+    QuantizationModesRND_CONV_ODD = 7,

+    QuantizationModesMax = 0x7fffffff,

+};

+

+enum OverflowModes {

+    OverflowModesWRAP = 0,

+    OverflowModesSAT = 1,

+    OverflowModesSAT_ZERO = 2,

+    OverflowModesSAT_SYM = 3,

+    OverflowModesMax = 0x7fffffff,

+};

+

+enum PackedVectorFormat {

+    PackedVectorFormatPackedVectorFormat4x8Bit = 0,

+    PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,

+    PackedVectorFormatMax = 0x7fffffff,

+};

+

+enum Op {

+    OpNop = 0,

+    OpUndef = 1,

+    OpSourceContinued = 2,

+    OpSource = 3,

+    OpSourceExtension = 4,

+    OpName = 5,

+    OpMemberName = 6,

+    OpString = 7,

+    OpLine = 8,

+    OpExtension = 10,

+    OpExtInstImport = 11,

+    OpExtInst = 12,

+    OpMemoryModel = 14,

+    OpEntryPoint = 15,

+    OpExecutionMode = 16,

+    OpCapability = 17,

+    OpTypeVoid = 19,

+    OpTypeBool = 20,

+    OpTypeInt = 21,

+    OpTypeFloat = 22,

+    OpTypeVector = 23,

+    OpTypeMatrix = 24,

+    OpTypeImage = 25,

+    OpTypeSampler = 26,

+    OpTypeSampledImage = 27,

+    OpTypeArray = 28,

+    OpTypeRuntimeArray = 29,

+    OpTypeStruct = 30,

+    OpTypeOpaque = 31,

+    OpTypePointer = 32,

+    OpTypeFunction = 33,

+    OpTypeEvent = 34,

+    OpTypeDeviceEvent = 35,

+    OpTypeReserveId = 36,

+    OpTypeQueue = 37,

+    OpTypePipe = 38,

+    OpTypeForwardPointer = 39,

+    OpConstantTrue = 41,

+    OpConstantFalse = 42,

+    OpConstant = 43,

+    OpConstantComposite = 44,

+    OpConstantSampler = 45,

+    OpConstantNull = 46,

+    OpSpecConstantTrue = 48,

+    OpSpecConstantFalse = 49,

+    OpSpecConstant = 50,

+    OpSpecConstantComposite = 51,

+    OpSpecConstantOp = 52,

+    OpFunction = 54,

+    OpFunctionParameter = 55,

+    OpFunctionEnd = 56,

+    OpFunctionCall = 57,

+    OpVariable = 59,

+    OpImageTexelPointer = 60,

+    OpLoad = 61,

+    OpStore = 62,

+    OpCopyMemory = 63,

+    OpCopyMemorySized = 64,

+    OpAccessChain = 65,

+    OpInBoundsAccessChain = 66,

+    OpPtrAccessChain = 67,

+    OpArrayLength = 68,

+    OpGenericPtrMemSemantics = 69,

+    OpInBoundsPtrAccessChain = 70,

+    OpDecorate = 71,

+    OpMemberDecorate = 72,

+    OpDecorationGroup = 73,

+    OpGroupDecorate = 74,

+    OpGroupMemberDecorate = 75,

+    OpVectorExtractDynamic = 77,

+    OpVectorInsertDynamic = 78,

+    OpVectorShuffle = 79,

+    OpCompositeConstruct = 80,

+    OpCompositeExtract = 81,

+    OpCompositeInsert = 82,

+    OpCopyObject = 83,

+    OpTranspose = 84,

+    OpSampledImage = 86,

+    OpImageSampleImplicitLod = 87,

+    OpImageSampleExplicitLod = 88,

+    OpImageSampleDrefImplicitLod = 89,

+    OpImageSampleDrefExplicitLod = 90,

+    OpImageSampleProjImplicitLod = 91,

+    OpImageSampleProjExplicitLod = 92,

+    OpImageSampleProjDrefImplicitLod = 93,

+    OpImageSampleProjDrefExplicitLod = 94,

+    OpImageFetch = 95,

+    OpImageGather = 96,

+    OpImageDrefGather = 97,

+    OpImageRead = 98,

+    OpImageWrite = 99,

+    OpImage = 100,

+    OpImageQueryFormat = 101,

+    OpImageQueryOrder = 102,

+    OpImageQuerySizeLod = 103,

+    OpImageQuerySize = 104,

+    OpImageQueryLod = 105,

+    OpImageQueryLevels = 106,

+    OpImageQuerySamples = 107,

+    OpConvertFToU = 109,

+    OpConvertFToS = 110,

+    OpConvertSToF = 111,

+    OpConvertUToF = 112,

+    OpUConvert = 113,

+    OpSConvert = 114,

+    OpFConvert = 115,

+    OpQuantizeToF16 = 116,

+    OpConvertPtrToU = 117,

+    OpSatConvertSToU = 118,

+    OpSatConvertUToS = 119,

+    OpConvertUToPtr = 120,

+    OpPtrCastToGeneric = 121,

+    OpGenericCastToPtr = 122,

+    OpGenericCastToPtrExplicit = 123,

+    OpBitcast = 124,

+    OpSNegate = 126,

+    OpFNegate = 127,

+    OpIAdd = 128,

+    OpFAdd = 129,

+    OpISub = 130,

+    OpFSub = 131,

+    OpIMul = 132,

+    OpFMul = 133,

+    OpUDiv = 134,

+    OpSDiv = 135,

+    OpFDiv = 136,

+    OpUMod = 137,

+    OpSRem = 138,

+    OpSMod = 139,

+    OpFRem = 140,

+    OpFMod = 141,

+    OpVectorTimesScalar = 142,

+    OpMatrixTimesScalar = 143,

+    OpVectorTimesMatrix = 144,

+    OpMatrixTimesVector = 145,

+    OpMatrixTimesMatrix = 146,

+    OpOuterProduct = 147,

+    OpDot = 148,

+    OpIAddCarry = 149,

+    OpISubBorrow = 150,

+    OpUMulExtended = 151,

+    OpSMulExtended = 152,

+    OpAny = 154,

+    OpAll = 155,

+    OpIsNan = 156,

+    OpIsInf = 157,

+    OpIsFinite = 158,

+    OpIsNormal = 159,

+    OpSignBitSet = 160,

+    OpLessOrGreater = 161,

+    OpOrdered = 162,

+    OpUnordered = 163,

+    OpLogicalEqual = 164,

+    OpLogicalNotEqual = 165,

+    OpLogicalOr = 166,

+    OpLogicalAnd = 167,

+    OpLogicalNot = 168,

+    OpSelect = 169,

+    OpIEqual = 170,

+    OpINotEqual = 171,

+    OpUGreaterThan = 172,

+    OpSGreaterThan = 173,

+    OpUGreaterThanEqual = 174,

+    OpSGreaterThanEqual = 175,

+    OpULessThan = 176,

+    OpSLessThan = 177,

+    OpULessThanEqual = 178,

+    OpSLessThanEqual = 179,

+    OpFOrdEqual = 180,

+    OpFUnordEqual = 181,

+    OpFOrdNotEqual = 182,

+    OpFUnordNotEqual = 183,

+    OpFOrdLessThan = 184,

+    OpFUnordLessThan = 185,

+    OpFOrdGreaterThan = 186,

+    OpFUnordGreaterThan = 187,

+    OpFOrdLessThanEqual = 188,

+    OpFUnordLessThanEqual = 189,

+    OpFOrdGreaterThanEqual = 190,

+    OpFUnordGreaterThanEqual = 191,

+    OpShiftRightLogical = 194,

+    OpShiftRightArithmetic = 195,

+    OpShiftLeftLogical = 196,

+    OpBitwiseOr = 197,

+    OpBitwiseXor = 198,

+    OpBitwiseAnd = 199,

+    OpNot = 200,

+    OpBitFieldInsert = 201,

+    OpBitFieldSExtract = 202,

+    OpBitFieldUExtract = 203,

+    OpBitReverse = 204,

+    OpBitCount = 205,

+    OpDPdx = 207,

+    OpDPdy = 208,

+    OpFwidth = 209,

+    OpDPdxFine = 210,

+    OpDPdyFine = 211,

+    OpFwidthFine = 212,

+    OpDPdxCoarse = 213,

+    OpDPdyCoarse = 214,

+    OpFwidthCoarse = 215,

+    OpEmitVertex = 218,

+    OpEndPrimitive = 219,

+    OpEmitStreamVertex = 220,

+    OpEndStreamPrimitive = 221,

+    OpControlBarrier = 224,

+    OpMemoryBarrier = 225,

+    OpAtomicLoad = 227,

+    OpAtomicStore = 228,

+    OpAtomicExchange = 229,

+    OpAtomicCompareExchange = 230,

+    OpAtomicCompareExchangeWeak = 231,

+    OpAtomicIIncrement = 232,

+    OpAtomicIDecrement = 233,

+    OpAtomicIAdd = 234,

+    OpAtomicISub = 235,

+    OpAtomicSMin = 236,

+    OpAtomicUMin = 237,

+    OpAtomicSMax = 238,

+    OpAtomicUMax = 239,

+    OpAtomicAnd = 240,

+    OpAtomicOr = 241,

+    OpAtomicXor = 242,

+    OpPhi = 245,

+    OpLoopMerge = 246,

+    OpSelectionMerge = 247,

+    OpLabel = 248,

+    OpBranch = 249,

+    OpBranchConditional = 250,

+    OpSwitch = 251,

+    OpKill = 252,

+    OpReturn = 253,

+    OpReturnValue = 254,

+    OpUnreachable = 255,

+    OpLifetimeStart = 256,

+    OpLifetimeStop = 257,

+    OpGroupAsyncCopy = 259,

+    OpGroupWaitEvents = 260,

+    OpGroupAll = 261,

+    OpGroupAny = 262,

+    OpGroupBroadcast = 263,

+    OpGroupIAdd = 264,

+    OpGroupFAdd = 265,

+    OpGroupFMin = 266,

+    OpGroupUMin = 267,

+    OpGroupSMin = 268,

+    OpGroupFMax = 269,

+    OpGroupUMax = 270,

+    OpGroupSMax = 271,

+    OpReadPipe = 274,

+    OpWritePipe = 275,

+    OpReservedReadPipe = 276,

+    OpReservedWritePipe = 277,

+    OpReserveReadPipePackets = 278,

+    OpReserveWritePipePackets = 279,

+    OpCommitReadPipe = 280,

+    OpCommitWritePipe = 281,

+    OpIsValidReserveId = 282,

+    OpGetNumPipePackets = 283,

+    OpGetMaxPipePackets = 284,

+    OpGroupReserveReadPipePackets = 285,

+    OpGroupReserveWritePipePackets = 286,

+    OpGroupCommitReadPipe = 287,

+    OpGroupCommitWritePipe = 288,

+    OpEnqueueMarker = 291,

+    OpEnqueueKernel = 292,

+    OpGetKernelNDrangeSubGroupCount = 293,

+    OpGetKernelNDrangeMaxSubGroupSize = 294,

+    OpGetKernelWorkGroupSize = 295,

+    OpGetKernelPreferredWorkGroupSizeMultiple = 296,

+    OpRetainEvent = 297,

+    OpReleaseEvent = 298,

+    OpCreateUserEvent = 299,

+    OpIsValidEvent = 300,

+    OpSetUserEventStatus = 301,

+    OpCaptureEventProfilingInfo = 302,

+    OpGetDefaultQueue = 303,

+    OpBuildNDRange = 304,

+    OpImageSparseSampleImplicitLod = 305,

+    OpImageSparseSampleExplicitLod = 306,

+    OpImageSparseSampleDrefImplicitLod = 307,

+    OpImageSparseSampleDrefExplicitLod = 308,

+    OpImageSparseSampleProjImplicitLod = 309,

+    OpImageSparseSampleProjExplicitLod = 310,

+    OpImageSparseSampleProjDrefImplicitLod = 311,

+    OpImageSparseSampleProjDrefExplicitLod = 312,

+    OpImageSparseFetch = 313,

+    OpImageSparseGather = 314,

+    OpImageSparseDrefGather = 315,

+    OpImageSparseTexelsResident = 316,

+    OpNoLine = 317,

+    OpAtomicFlagTestAndSet = 318,

+    OpAtomicFlagClear = 319,

+    OpImageSparseRead = 320,

+    OpSizeOf = 321,

+    OpTypePipeStorage = 322,

+    OpConstantPipeStorage = 323,

+    OpCreatePipeFromPipeStorage = 324,

+    OpGetKernelLocalSizeForSubgroupCount = 325,

+    OpGetKernelMaxNumSubgroups = 326,

+    OpTypeNamedBarrier = 327,

+    OpNamedBarrierInitialize = 328,

+    OpMemoryNamedBarrier = 329,

+    OpModuleProcessed = 330,

+    OpExecutionModeId = 331,

+    OpDecorateId = 332,

+    OpGroupNonUniformElect = 333,

+    OpGroupNonUniformAll = 334,

+    OpGroupNonUniformAny = 335,

+    OpGroupNonUniformAllEqual = 336,

+    OpGroupNonUniformBroadcast = 337,

+    OpGroupNonUniformBroadcastFirst = 338,

+    OpGroupNonUniformBallot = 339,

+    OpGroupNonUniformInverseBallot = 340,

+    OpGroupNonUniformBallotBitExtract = 341,

+    OpGroupNonUniformBallotBitCount = 342,

+    OpGroupNonUniformBallotFindLSB = 343,

+    OpGroupNonUniformBallotFindMSB = 344,

+    OpGroupNonUniformShuffle = 345,

+    OpGroupNonUniformShuffleXor = 346,

+    OpGroupNonUniformShuffleUp = 347,

+    OpGroupNonUniformShuffleDown = 348,

+    OpGroupNonUniformIAdd = 349,

+    OpGroupNonUniformFAdd = 350,

+    OpGroupNonUniformIMul = 351,

+    OpGroupNonUniformFMul = 352,

+    OpGroupNonUniformSMin = 353,

+    OpGroupNonUniformUMin = 354,

+    OpGroupNonUniformFMin = 355,

+    OpGroupNonUniformSMax = 356,

+    OpGroupNonUniformUMax = 357,

+    OpGroupNonUniformFMax = 358,

+    OpGroupNonUniformBitwiseAnd = 359,

+    OpGroupNonUniformBitwiseOr = 360,

+    OpGroupNonUniformBitwiseXor = 361,

+    OpGroupNonUniformLogicalAnd = 362,

+    OpGroupNonUniformLogicalOr = 363,

+    OpGroupNonUniformLogicalXor = 364,

+    OpGroupNonUniformQuadBroadcast = 365,

+    OpGroupNonUniformQuadSwap = 366,

+    OpCopyLogical = 400,

+    OpPtrEqual = 401,

+    OpPtrNotEqual = 402,

+    OpPtrDiff = 403,

+    OpTerminateInvocation = 4416,

+    OpSubgroupBallotKHR = 4421,

+    OpSubgroupFirstInvocationKHR = 4422,

+    OpSubgroupAllKHR = 4428,

+    OpSubgroupAnyKHR = 4429,

+    OpSubgroupAllEqualKHR = 4430,

+    OpSubgroupReadInvocationKHR = 4432,

+    OpTraceRayKHR = 4445,

+    OpExecuteCallableKHR = 4446,

+    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,

+    OpRayQueryTerminateKHR = 4474,

+    OpRayQueryGenerateIntersectionKHR = 4475,

+    OpRayQueryConfirmIntersectionKHR = 4476,

+    OpRayQueryProceedKHR = 4477,

+    OpRayQueryGetIntersectionTypeKHR = 4479,

+    OpGroupIAddNonUniformAMD = 5000,

+    OpGroupFAddNonUniformAMD = 5001,

+    OpGroupFMinNonUniformAMD = 5002,

+    OpGroupUMinNonUniformAMD = 5003,

+    OpGroupSMinNonUniformAMD = 5004,

+    OpGroupFMaxNonUniformAMD = 5005,

+    OpGroupUMaxNonUniformAMD = 5006,

+    OpGroupSMaxNonUniformAMD = 5007,

+    OpFragmentMaskFetchAMD = 5011,

+    OpFragmentFetchAMD = 5012,

+    OpReadClockKHR = 5056,

+    OpImageSampleFootprintNV = 5283,

+    OpEmitMeshTasksEXT = 5294,

+    OpSetMeshOutputsEXT = 5295,

+    OpGroupNonUniformPartitionNV = 5296,

+    OpWritePackedPrimitiveIndices4x8NV = 5299,

+    OpReportIntersectionKHR = 5334,

+    OpReportIntersectionNV = 5334,

+    OpIgnoreIntersectionNV = 5335,

+    OpTerminateRayNV = 5336,

+    OpTraceNV = 5337,

+    OpTraceMotionNV = 5338,

+    OpTraceRayMotionNV = 5339,

+    OpTypeAccelerationStructureKHR = 5341,

+    OpTypeAccelerationStructureNV = 5341,

+    OpExecuteCallableNV = 5344,

+    OpTypeCooperativeMatrixNV = 5358,

+    OpCooperativeMatrixLoadNV = 5359,

+    OpCooperativeMatrixStoreNV = 5360,

+    OpCooperativeMatrixMulAddNV = 5361,

+    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,

+    OpSubgroupShuffleXorINTEL = 5574,

+    OpSubgroupBlockReadINTEL = 5575,

+    OpSubgroupBlockWriteINTEL = 5576,

+    OpSubgroupImageBlockReadINTEL = 5577,

+    OpSubgroupImageBlockWriteINTEL = 5578,

+    OpSubgroupImageMediaBlockReadINTEL = 5580,

+    OpSubgroupImageMediaBlockWriteINTEL = 5581,

+    OpUCountLeadingZerosINTEL = 5585,

+    OpUCountTrailingZerosINTEL = 5586,

+    OpAbsISubINTEL = 5587,

+    OpAbsUSubINTEL = 5588,

+    OpIAddSatINTEL = 5589,

+    OpUAddSatINTEL = 5590,

+    OpIAverageINTEL = 5591,

+    OpUAverageINTEL = 5592,

+    OpIAverageRoundedINTEL = 5593,

+    OpUAverageRoundedINTEL = 5594,

+    OpISubSatINTEL = 5595,

+    OpUSubSatINTEL = 5596,

+    OpIMul32x16INTEL = 5597,

+    OpUMul32x16INTEL = 5598,

+    OpConstantFunctionPointerINTEL = 5600,

+    OpFunctionPointerCallINTEL = 5601,

+    OpAsmTargetINTEL = 5609,

+    OpAsmINTEL = 5610,

+    OpAsmCallINTEL = 5611,

+    OpAtomicFMinEXT = 5614,

+    OpAtomicFMaxEXT = 5615,

+    OpAssumeTrueKHR = 5630,

+    OpExpectKHR = 5631,

+    OpDecorateString = 5632,

+    OpDecorateStringGOOGLE = 5632,

+    OpMemberDecorateString = 5633,

+    OpMemberDecorateStringGOOGLE = 5633,

+    OpVmeImageINTEL = 5699,

+    OpTypeVmeImageINTEL = 5700,

+    OpTypeAvcImePayloadINTEL = 5701,

+    OpTypeAvcRefPayloadINTEL = 5702,

+    OpTypeAvcSicPayloadINTEL = 5703,

+    OpTypeAvcMcePayloadINTEL = 5704,

+    OpTypeAvcMceResultINTEL = 5705,

+    OpTypeAvcImeResultINTEL = 5706,

+    OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,

+    OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,

+    OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,

+    OpTypeAvcImeDualReferenceStreaminINTEL = 5710,

+    OpTypeAvcRefResultINTEL = 5711,

+    OpTypeAvcSicResultINTEL = 5712,

+    OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,

+    OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,

+    OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,

+    OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,

+    OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,

+    OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,

+    OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,

+    OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,

+    OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,

+    OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,

+    OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,

+    OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,

+    OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,

+    OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,

+    OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,

+    OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,

+    OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,

+    OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,

+    OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,

+    OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,

+    OpSubgroupAvcMceConvertToImeResultINTEL = 5733,

+    OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,

+    OpSubgroupAvcMceConvertToRefResultINTEL = 5735,

+    OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,

+    OpSubgroupAvcMceConvertToSicResultINTEL = 5737,

+    OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,

+    OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,

+    OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,

+    OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,

+    OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,

+    OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,

+    OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,

+    OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,

+    OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,

+    OpSubgroupAvcImeInitializeINTEL = 5747,

+    OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,

+    OpSubgroupAvcImeSetDualReferenceINTEL = 5749,

+    OpSubgroupAvcImeRefWindowSizeINTEL = 5750,

+    OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,

+    OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,

+    OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,

+    OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,

+    OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,

+    OpSubgroupAvcImeSetWeightedSadINTEL = 5756,

+    OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,

+    OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,

+    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,

+    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,

+    OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,

+    OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,

+    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,

+    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,

+    OpSubgroupAvcImeConvertToMceResultINTEL = 5765,

+    OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,

+    OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,

+    OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,

+    OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,

+    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,

+    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,

+    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,

+    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,

+    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,

+    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,

+    OpSubgroupAvcImeGetBorderReachedINTEL = 5776,

+    OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,

+    OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,

+    OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,

+    OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,

+    OpSubgroupAvcFmeInitializeINTEL = 5781,

+    OpSubgroupAvcBmeInitializeINTEL = 5782,

+    OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,

+    OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,

+    OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,

+    OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,

+    OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,

+    OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,

+    OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,

+    OpSubgroupAvcRefConvertToMceResultINTEL = 5790,

+    OpSubgroupAvcSicInitializeINTEL = 5791,

+    OpSubgroupAvcSicConfigureSkcINTEL = 5792,

+    OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,

+    OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,

+    OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,

+    OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,

+    OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,

+    OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,

+    OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,

+    OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,

+    OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,

+    OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,

+    OpSubgroupAvcSicEvaluateIpeINTEL = 5803,

+    OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,

+    OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,

+    OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,

+    OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,

+    OpSubgroupAvcSicConvertToMceResultINTEL = 5808,

+    OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,

+    OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,

+    OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,

+    OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,

+    OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,

+    OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,

+    OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,

+    OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,

+    OpVariableLengthArrayINTEL = 5818,

+    OpSaveMemoryINTEL = 5819,

+    OpRestoreMemoryINTEL = 5820,

+    OpArbitraryFloatSinCosPiINTEL = 5840,

+    OpArbitraryFloatCastINTEL = 5841,

+    OpArbitraryFloatCastFromIntINTEL = 5842,

+    OpArbitraryFloatCastToIntINTEL = 5843,

+    OpArbitraryFloatAddINTEL = 5846,

+    OpArbitraryFloatSubINTEL = 5847,

+    OpArbitraryFloatMulINTEL = 5848,

+    OpArbitraryFloatDivINTEL = 5849,

+    OpArbitraryFloatGTINTEL = 5850,

+    OpArbitraryFloatGEINTEL = 5851,

+    OpArbitraryFloatLTINTEL = 5852,

+    OpArbitraryFloatLEINTEL = 5853,

+    OpArbitraryFloatEQINTEL = 5854,

+    OpArbitraryFloatRecipINTEL = 5855,

+    OpArbitraryFloatRSqrtINTEL = 5856,

+    OpArbitraryFloatCbrtINTEL = 5857,

+    OpArbitraryFloatHypotINTEL = 5858,

+    OpArbitraryFloatSqrtINTEL = 5859,

+    OpArbitraryFloatLogINTEL = 5860,

+    OpArbitraryFloatLog2INTEL = 5861,

+    OpArbitraryFloatLog10INTEL = 5862,

+    OpArbitraryFloatLog1pINTEL = 5863,

+    OpArbitraryFloatExpINTEL = 5864,

+    OpArbitraryFloatExp2INTEL = 5865,

+    OpArbitraryFloatExp10INTEL = 5866,

+    OpArbitraryFloatExpm1INTEL = 5867,

+    OpArbitraryFloatSinINTEL = 5868,

+    OpArbitraryFloatCosINTEL = 5869,

+    OpArbitraryFloatSinCosINTEL = 5870,

+    OpArbitraryFloatSinPiINTEL = 5871,

+    OpArbitraryFloatCosPiINTEL = 5872,

+    OpArbitraryFloatASinINTEL = 5873,

+    OpArbitraryFloatASinPiINTEL = 5874,

+    OpArbitraryFloatACosINTEL = 5875,

+    OpArbitraryFloatACosPiINTEL = 5876,

+    OpArbitraryFloatATanINTEL = 5877,

+    OpArbitraryFloatATanPiINTEL = 5878,

+    OpArbitraryFloatATan2INTEL = 5879,

+    OpArbitraryFloatPowINTEL = 5880,

+    OpArbitraryFloatPowRINTEL = 5881,

+    OpArbitraryFloatPowNINTEL = 5882,

+    OpLoopControlINTEL = 5887,

+    OpFixedSqrtINTEL = 5923,

+    OpFixedRecipINTEL = 5924,

+    OpFixedRsqrtINTEL = 5925,

+    OpFixedSinINTEL = 5926,

+    OpFixedCosINTEL = 5927,

+    OpFixedSinCosINTEL = 5928,

+    OpFixedSinPiINTEL = 5929,

+    OpFixedCosPiINTEL = 5930,

+    OpFixedSinCosPiINTEL = 5931,

+    OpFixedLogINTEL = 5932,

+    OpFixedExpINTEL = 5933,

+    OpPtrCastToCrossWorkgroupINTEL = 5934,

+    OpCrossWorkgroupCastToPtrINTEL = 5938,

+    OpReadPipeBlockingINTEL = 5946,

+    OpWritePipeBlockingINTEL = 5947,

+    OpFPGARegINTEL = 5949,

+    OpRayQueryGetRayTMinKHR = 6016,

+    OpRayQueryGetRayFlagsKHR = 6017,

+    OpRayQueryGetIntersectionTKHR = 6018,

+    OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,

+    OpRayQueryGetIntersectionInstanceIdKHR = 6020,

+    OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,

+    OpRayQueryGetIntersectionGeometryIndexKHR = 6022,

+    OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,

+    OpRayQueryGetIntersectionBarycentricsKHR = 6024,

+    OpRayQueryGetIntersectionFrontFaceKHR = 6025,

+    OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,

+    OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,

+    OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,

+    OpRayQueryGetWorldRayDirectionKHR = 6029,

+    OpRayQueryGetWorldRayOriginKHR = 6030,

+    OpRayQueryGetIntersectionObjectToWorldKHR = 6031,

+    OpRayQueryGetIntersectionWorldToObjectKHR = 6032,

+    OpAtomicFAddEXT = 6035,

+    OpTypeBufferSurfaceINTEL = 6086,

+    OpTypeStructContinuedINTEL = 6090,

+    OpConstantCompositeContinuedINTEL = 6091,

+    OpSpecConstantCompositeContinuedINTEL = 6092,

+    OpMax = 0x7fffffff,

+};

+

+#ifdef SPV_ENABLE_UTILITY_CODE

+inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {

+    *hasResult = *hasResultType = false;

+    switch (opcode) {

+    default: /* unknown opcode */ break;

+    case OpNop: *hasResult = false; *hasResultType = false; break;

+    case OpUndef: *hasResult = true; *hasResultType = true; break;

+    case OpSourceContinued: *hasResult = false; *hasResultType = false; break;

+    case OpSource: *hasResult = false; *hasResultType = false; break;

+    case OpSourceExtension: *hasResult = false; *hasResultType = false; break;

+    case OpName: *hasResult = false; *hasResultType = false; break;

+    case OpMemberName: *hasResult = false; *hasResultType = false; break;

+    case OpString: *hasResult = true; *hasResultType = false; break;

+    case OpLine: *hasResult = false; *hasResultType = false; break;

+    case OpExtension: *hasResult = false; *hasResultType = false; break;

+    case OpExtInstImport: *hasResult = true; *hasResultType = false; break;

+    case OpExtInst: *hasResult = true; *hasResultType = true; break;

+    case OpMemoryModel: *hasResult = false; *hasResultType = false; break;

+    case OpEntryPoint: *hasResult = false; *hasResultType = false; break;

+    case OpExecutionMode: *hasResult = false; *hasResultType = false; break;

+    case OpCapability: *hasResult = false; *hasResultType = false; break;

+    case OpTypeVoid: *hasResult = true; *hasResultType = false; break;

+    case OpTypeBool: *hasResult = true; *hasResultType = false; break;

+    case OpTypeInt: *hasResult = true; *hasResultType = false; break;

+    case OpTypeFloat: *hasResult = true; *hasResultType = false; break;

+    case OpTypeVector: *hasResult = true; *hasResultType = false; break;

+    case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;

+    case OpTypeImage: *hasResult = true; *hasResultType = false; break;

+    case OpTypeSampler: *hasResult = true; *hasResultType = false; break;

+    case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;

+    case OpTypeArray: *hasResult = true; *hasResultType = false; break;

+    case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;

+    case OpTypeStruct: *hasResult = true; *hasResultType = false; break;

+    case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;

+    case OpTypePointer: *hasResult = true; *hasResultType = false; break;

+    case OpTypeFunction: *hasResult = true; *hasResultType = false; break;

+    case OpTypeEvent: *hasResult = true; *hasResultType = false; break;

+    case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;

+    case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;

+    case OpTypeQueue: *hasResult = true; *hasResultType = false; break;

+    case OpTypePipe: *hasResult = true; *hasResultType = false; break;

+    case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;

+    case OpConstantTrue: *hasResult = true; *hasResultType = true; break;

+    case OpConstantFalse: *hasResult = true; *hasResultType = true; break;

+    case OpConstant: *hasResult = true; *hasResultType = true; break;

+    case OpConstantComposite: *hasResult = true; *hasResultType = true; break;

+    case OpConstantSampler: *hasResult = true; *hasResultType = true; break;

+    case OpConstantNull: *hasResult = true; *hasResultType = true; break;

+    case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;

+    case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;

+    case OpSpecConstant: *hasResult = true; *hasResultType = true; break;

+    case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;

+    case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;

+    case OpFunction: *hasResult = true; *hasResultType = true; break;

+    case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;

+    case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;

+    case OpFunctionCall: *hasResult = true; *hasResultType = true; break;

+    case OpVariable: *hasResult = true; *hasResultType = true; break;

+    case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;

+    case OpLoad: *hasResult = true; *hasResultType = true; break;

+    case OpStore: *hasResult = false; *hasResultType = false; break;

+    case OpCopyMemory: *hasResult = false; *hasResultType = false; break;

+    case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;

+    case OpAccessChain: *hasResult = true; *hasResultType = true; break;

+    case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;

+    case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;

+    case OpArrayLength: *hasResult = true; *hasResultType = true; break;

+    case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;

+    case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;

+    case OpDecorate: *hasResult = false; *hasResultType = false; break;

+    case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;

+    case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;

+    case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;

+    case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;

+    case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;

+    case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;

+    case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;

+    case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;

+    case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;

+    case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;

+    case OpCopyObject: *hasResult = true; *hasResultType = true; break;

+    case OpTranspose: *hasResult = true; *hasResultType = true; break;

+    case OpSampledImage: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageFetch: *hasResult = true; *hasResultType = true; break;

+    case OpImageGather: *hasResult = true; *hasResultType = true; break;

+    case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;

+    case OpImageRead: *hasResult = true; *hasResultType = true; break;

+    case OpImageWrite: *hasResult = false; *hasResultType = false; break;

+    case OpImage: *hasResult = true; *hasResultType = true; break;

+    case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;

+    case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;

+    case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;

+    case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;

+    case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;

+    case OpConvertFToU: *hasResult = true; *hasResultType = true; break;

+    case OpConvertFToS: *hasResult = true; *hasResultType = true; break;

+    case OpConvertSToF: *hasResult = true; *hasResultType = true; break;

+    case OpConvertUToF: *hasResult = true; *hasResultType = true; break;

+    case OpUConvert: *hasResult = true; *hasResultType = true; break;

+    case OpSConvert: *hasResult = true; *hasResultType = true; break;

+    case OpFConvert: *hasResult = true; *hasResultType = true; break;

+    case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;

+    case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;

+    case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;

+    case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;

+    case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;

+    case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;

+    case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;

+    case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;

+    case OpBitcast: *hasResult = true; *hasResultType = true; break;

+    case OpSNegate: *hasResult = true; *hasResultType = true; break;

+    case OpFNegate: *hasResult = true; *hasResultType = true; break;

+    case OpIAdd: *hasResult = true; *hasResultType = true; break;

+    case OpFAdd: *hasResult = true; *hasResultType = true; break;

+    case OpISub: *hasResult = true; *hasResultType = true; break;

+    case OpFSub: *hasResult = true; *hasResultType = true; break;

+    case OpIMul: *hasResult = true; *hasResultType = true; break;

+    case OpFMul: *hasResult = true; *hasResultType = true; break;

+    case OpUDiv: *hasResult = true; *hasResultType = true; break;

+    case OpSDiv: *hasResult = true; *hasResultType = true; break;

+    case OpFDiv: *hasResult = true; *hasResultType = true; break;

+    case OpUMod: *hasResult = true; *hasResultType = true; break;

+    case OpSRem: *hasResult = true; *hasResultType = true; break;

+    case OpSMod: *hasResult = true; *hasResultType = true; break;

+    case OpFRem: *hasResult = true; *hasResultType = true; break;

+    case OpFMod: *hasResult = true; *hasResultType = true; break;

+    case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;

+    case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;

+    case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;

+    case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;

+    case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;

+    case OpOuterProduct: *hasResult = true; *hasResultType = true; break;

+    case OpDot: *hasResult = true; *hasResultType = true; break;

+    case OpIAddCarry: *hasResult = true; *hasResultType = true; break;

+    case OpISubBorrow: *hasResult = true; *hasResultType = true; break;

+    case OpUMulExtended: *hasResult = true; *hasResultType = true; break;

+    case OpSMulExtended: *hasResult = true; *hasResultType = true; break;

+    case OpAny: *hasResult = true; *hasResultType = true; break;

+    case OpAll: *hasResult = true; *hasResultType = true; break;

+    case OpIsNan: *hasResult = true; *hasResultType = true; break;

+    case OpIsInf: *hasResult = true; *hasResultType = true; break;

+    case OpIsFinite: *hasResult = true; *hasResultType = true; break;

+    case OpIsNormal: *hasResult = true; *hasResultType = true; break;

+    case OpSignBitSet: *hasResult = true; *hasResultType = true; break;

+    case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;

+    case OpOrdered: *hasResult = true; *hasResultType = true; break;

+    case OpUnordered: *hasResult = true; *hasResultType = true; break;

+    case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;

+    case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;

+    case OpLogicalOr: *hasResult = true; *hasResultType = true; break;

+    case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;

+    case OpLogicalNot: *hasResult = true; *hasResultType = true; break;

+    case OpSelect: *hasResult = true; *hasResultType = true; break;

+    case OpIEqual: *hasResult = true; *hasResultType = true; break;

+    case OpINotEqual: *hasResult = true; *hasResultType = true; break;

+    case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;

+    case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;

+    case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpULessThan: *hasResult = true; *hasResultType = true; break;

+    case OpSLessThan: *hasResult = true; *hasResultType = true; break;

+    case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;

+    case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;

+    case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;

+    case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;

+    case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;

+    case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;

+    case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;

+    case OpNot: *hasResult = true; *hasResultType = true; break;

+    case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;

+    case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;

+    case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;

+    case OpBitReverse: *hasResult = true; *hasResultType = true; break;

+    case OpBitCount: *hasResult = true; *hasResultType = true; break;

+    case OpDPdx: *hasResult = true; *hasResultType = true; break;

+    case OpDPdy: *hasResult = true; *hasResultType = true; break;

+    case OpFwidth: *hasResult = true; *hasResultType = true; break;

+    case OpDPdxFine: *hasResult = true; *hasResultType = true; break;

+    case OpDPdyFine: *hasResult = true; *hasResultType = true; break;

+    case OpFwidthFine: *hasResult = true; *hasResultType = true; break;

+    case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;

+    case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;

+    case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;

+    case OpEmitVertex: *hasResult = false; *hasResultType = false; break;

+    case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;

+    case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;

+    case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;

+    case OpControlBarrier: *hasResult = false; *hasResultType = false; break;

+    case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;

+    case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicStore: *hasResult = false; *hasResultType = false; break;

+    case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicISub: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicOr: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicXor: *hasResult = true; *hasResultType = true; break;

+    case OpPhi: *hasResult = true; *hasResultType = true; break;

+    case OpLoopMerge: *hasResult = false; *hasResultType = false; break;

+    case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;

+    case OpLabel: *hasResult = true; *hasResultType = false; break;

+    case OpBranch: *hasResult = false; *hasResultType = false; break;

+    case OpBranchConditional: *hasResult = false; *hasResultType = false; break;

+    case OpSwitch: *hasResult = false; *hasResultType = false; break;

+    case OpKill: *hasResult = false; *hasResultType = false; break;

+    case OpReturn: *hasResult = false; *hasResultType = false; break;

+    case OpReturnValue: *hasResult = false; *hasResultType = false; break;

+    case OpUnreachable: *hasResult = false; *hasResultType = false; break;

+    case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;

+    case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;

+    case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;

+    case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;

+    case OpGroupAll: *hasResult = true; *hasResultType = true; break;

+    case OpGroupAny: *hasResult = true; *hasResultType = true; break;

+    case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;

+    case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupFMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupUMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupSMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupFMax: *hasResult = true; *hasResultType = true; break;

+    case OpGroupUMax: *hasResult = true; *hasResultType = true; break;

+    case OpGroupSMax: *hasResult = true; *hasResultType = true; break;

+    case OpReadPipe: *hasResult = true; *hasResultType = true; break;

+    case OpWritePipe: *hasResult = true; *hasResultType = true; break;

+    case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;

+    case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;

+    case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;

+    case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;

+    case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;

+    case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;

+    case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;

+    case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;

+    case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;

+    case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;

+    case OpRetainEvent: *hasResult = false; *hasResultType = false; break;

+    case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;

+    case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;

+    case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;

+    case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;

+    case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;

+    case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;

+    case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;

+    case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;

+    case OpNoLine: *hasResult = false; *hasResultType = false; break;

+    case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;

+    case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;

+    case OpSizeOf: *hasResult = true; *hasResultType = true; break;

+    case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;

+    case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;

+    case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;

+    case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;

+    case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;

+    case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;

+    case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;

+    case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;

+    case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;

+    case OpDecorateId: *hasResult = false; *hasResultType = false; break;

+    case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;

+    case OpCopyLogical: *hasResult = true; *hasResultType = true; break;

+    case OpPtrEqual: *hasResult = true; *hasResultType = true; break;

+    case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;

+    case OpPtrDiff: *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;

+    case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;

+    case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;

+    case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;

+    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 OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;

+    case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;

+    case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;

+    case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;

+    case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;

+    case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionTypeKHR: *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;

+    case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;

+    case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;

+    case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;

+    case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;

+    case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;

+    case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;

+    case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;

+    case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;

+    case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;

+    case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;

+    case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;

+    case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;

+    case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; 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 OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;

+    case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;

+    case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;

+    case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;

+    case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;

+    case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;

+    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 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;

+    case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;

+    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 OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;

+    case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;

+    case OpExpectKHR: *hasResult = true; *hasResultType = true; break;

+    case OpDecorateString: *hasResult = false; *hasResultType = false; break;

+    case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;

+    case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;

+    case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;

+    case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;

+    case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;

+    case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;

+    case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;

+    }

+}

+#endif /* SPV_ENABLE_UTILITY_CODE */

+

+// Overload operator| 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)); }

+

+}  // end namespace spv

+

+#endif  // #ifndef spirv_HPP

diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt
index b9bac80..d54a1df 100644
--- a/StandAlone/CMakeLists.txt
+++ b/StandAlone/CMakeLists.txt
@@ -111,7 +111,7 @@
         message(WARNING \"Using `glslangValidatorTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::glslangValidator)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(glslangValidator ALIAS glslang::glslangValidator)
@@ -126,7 +126,7 @@
             message(WARNING \"Using `spirv-remapTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
             if (NOT TARGET glslang::spirv-remap)
-                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
             endif()
 
             add_library(spirv-remap ALIAS glslang::spirv-remap)
@@ -141,7 +141,7 @@
         message(WARNING \"Using `glslang-default-resource-limitsTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::glslang-default-resource-limits)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(glslang-default-resource-limits ALIAS glslang::glslang-default-resource-limits)
diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp
index 0e9d1b5..1a76bf6 100644
--- a/StandAlone/ResourceLimits.cpp
+++ b/StandAlone/ResourceLimits.cpp
@@ -37,9 +37,9 @@
 #include <sstream>
 #include <cctype>
 
-#include "glslang/Public/ResourceLimits.h"
+#include "ResourceLimits.h"
 
-TBuiltInResource Resources;
+namespace glslang {
 
 const TBuiltInResource DefaultTBuiltInResource = {
     /* .MaxLights = */ 32,
@@ -505,8 +505,6 @@
             resources->maxTaskWorkGroupSizeZ_EXT = value;
         else if (tokenStr == "MaxMeshViewCountEXT")
             resources->maxMeshViewCountEXT = value;
-        else if (tokenStr == "MaxDualSourceDrawBuffersEXT")
-            resources->maxDualSourceDrawBuffersEXT = value;
         else if (tokenStr == "nonInductiveForLoops")
             resources->limits.nonInductiveForLoops = (value != 0);
         else if (tokenStr == "whileLoops")
@@ -531,12 +529,4 @@
     }
 }
 
-TBuiltInResource* GetResources()
-{
-   return &Resources;
-}
-
-const TBuiltInResource* GetDefaultResources()
-{
-    return &DefaultTBuiltInResource;
-}
+}  // end namespace glslang
diff --git a/glslang/Public/ResourceLimits.h b/StandAlone/ResourceLimits.h
similarity index 90%
rename from glslang/Public/ResourceLimits.h
rename to StandAlone/ResourceLimits.h
index f70be81..736248e 100644
--- a/glslang/Public/ResourceLimits.h
+++ b/StandAlone/ResourceLimits.h
@@ -37,16 +37,14 @@
 
 #include <string>
 
-#include "../Include/ResourceLimits.h"
+#include "../glslang/Include/ResourceLimits.h"
 
-// Return pointer to user-writable Resource to pass through API in
-// future-proof way.
-extern TBuiltInResource* GetResources();
+namespace glslang {
 
 // These are the default resources for TBuiltInResources, used for both
 //  - parsing this string for the case where the user didn't supply one,
 //  - dumping out a template for user construction of a config file.
-extern const TBuiltInResource* GetDefaultResources();
+extern const TBuiltInResource DefaultTBuiltInResource;
 
 // Returns the DefaultTBuiltInResource as a human-readable string.
 std::string GetDefaultTBuiltInResourceString();
@@ -54,4 +52,6 @@
 // Decodes the resource limits from |config| to |resources|.
 void DecodeResourceLimits(TBuiltInResource* resources, char* config);
 
+}  // end namespace glslang
+
 #endif  // _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index e026285..edde81e 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -41,7 +41,7 @@
 #define _CRT_SECURE_NO_WARNINGS
 #endif
 
-#include "glslang/Public/ResourceLimits.h"
+#include "ResourceLimits.h"
 #include "Worklist.h"
 #include "DirStackFileIncluder.h"
 #include "./../glslang/Include/ShHandle.h"
@@ -149,6 +149,7 @@
 // array of unique places to leave the shader names and infologs for the asynchronous compiles
 std::vector<std::unique_ptr<glslang::TWorkItem>> WorkItems;
 
+TBuiltInResource Resources;
 std::string ConfigFile;
 
 //
@@ -157,11 +158,11 @@
 void ProcessConfigFile()
 {
     if (ConfigFile.size() == 0)
-        *GetResources() = *GetDefaultResources();
+        Resources = glslang::DefaultTBuiltInResource;
 #ifndef GLSLANG_WEB
     else {
         char* configString = ReadFileData(ConfigFile.c_str());
-        DecodeResourceLimits(GetResources(),  configString);
+        glslang::DecodeResourceLimits(&Resources,  configString);
         FreeFileData(configString);
     }
 #endif
@@ -504,7 +505,7 @@
 
     if (set) {
         errno = 0;
-        int setVal = ::strtol(argv[curArg], nullptr, 10);
+        int setVal = ::strtol(argv[curArg], NULL, 10);
         if (errno || setVal < 0) {
             printf("%s: invalid set\n", argv[curArg]);
             usage();
@@ -516,7 +517,7 @@
 
     if (binding) {
         errno = 0;
-        int bindingVal = ::strtol(argv[curArg], nullptr, 10);
+        int bindingVal = ::strtol(argv[curArg], NULL, 10);
         if (errno || bindingVal < 0) {
             printf("%s: invalid binding\n", argv[curArg]);
             usage();
@@ -594,12 +595,12 @@
     const auto getUniformOverride = [getStringOperand]() {
         const char *arg = getStringOperand("-u<name>:<location>");
         const char *split = strchr(arg, ':');
-        if (split == nullptr) {
+        if (split == NULL) {
             printf("%s: missing location\n", arg);
             exit(EFailUsage);
         }
         errno = 0;
-        int location = ::strtol(split + 1, nullptr, 10);
+        int location = ::strtol(split + 1, NULL, 10);
         if (errno) {
             printf("%s: invalid location\n", arg);
             exit(EFailUsage);
@@ -626,7 +627,7 @@
                     } else if (lowerword == "uniform-base") {
                         if (argc <= 1)
                             Error("no <base> provided", lowerword.c_str());
-                        uniformBase = ::strtol(argv[1], nullptr, 10);
+                        uniformBase = ::strtol(argv[1], NULL, 10);
                         bumpArg();
                         break;
                     } else if (lowerword == "client") {
@@ -1161,7 +1162,7 @@
     } else {
         while (worklist.remove(workItem)) {
             ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options);
-            if (compiler == nullptr)
+            if (compiler == 0)
                 return;
 
             CompileFile(workItem->name.c_str(), compiler);
@@ -1297,7 +1298,7 @@
             sources.push_back(compUnit.fileNameList[i]);
         }
         glslang::TShader* shader = new glslang::TShader(compUnit.stage);
-        shader->setStringsWithLengthsAndNames(compUnit.text, nullptr, compUnit.fileNameList, compUnit.count);
+        shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count);
         if (entryPointName)
             shader->setEntryPoint(entryPointName);
         if (sourceEntryPointName) {
@@ -1416,7 +1417,7 @@
 #ifndef GLSLANG_WEB
         if (Options & EOptionOutputPreprocessed) {
             std::string str;
-            if (shader->preprocess(GetResources(), defaultVersion, ENoProfile, false, false, messages, &str, includer)) {
+            if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false, messages, &str, includer)) {
                 PutsIfNonEmpty(str.c_str());
             } else {
                 CompileFailed = true;
@@ -1427,7 +1428,7 @@
         }
 #endif
 
-        if (! shader->parse(GetResources(), defaultVersion, false, messages, includer))
+        if (! shader->parse(&Resources, defaultVersion, false, messages, includer))
             CompileFailed = true;
 
         program.addShader(shader);
@@ -1611,7 +1612,7 @@
 
 #ifndef GLSLANG_WEB
     if (Options & EOptionDumpConfig) {
-        printf("%s", GetDefaultTBuiltInResourceString().c_str());
+        printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str());
         if (workList.empty())
             return ESuccess;
     }
@@ -1837,7 +1838,7 @@
     for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) {
         for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j) {
             // ret = ShCompile(compiler, shaderStrings, NumShaderStrings, lengths, EShOptNone, &Resources, Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages);
-            ret = ShCompile(compiler, &shaderString, 1, nullptr, EShOptNone, GetResources(), Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages);
+            ret = ShCompile(compiler, &shaderString, 1, nullptr, EShOptNone, &Resources, Options, (Options & EOptionDefaultDesktop) ? 110 : 100, false, messages);
             // const char* multi[12] = { "# ve", "rsion", " 300 e", "s", "\n#err",
             //                         "or should be l", "ine 1", "string 5\n", "float glo", "bal",
             //                         ";\n#error should be line 2\n void main() {", "global = 2.3;}" };
diff --git a/StandAlone/resource_limits_c.cpp b/StandAlone/resource_limits_c.cpp
index 0eeac23..a1f681c 100644
--- a/StandAlone/resource_limits_c.cpp
+++ b/StandAlone/resource_limits_c.cpp
@@ -26,20 +26,15 @@
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 **/
 
-#include "glslang/Public/resource_limits_c.h"
-#include "glslang/Public/ResourceLimits.h"
+#include "resource_limits_c.h"
+#include "ResourceLimits.h"
 #include <stdlib.h>
 #include <string.h>
 #include <string>
 
-glslang_resource_t* glslang_resource(void)
-{
-    return reinterpret_cast<glslang_resource_t*>(GetResources());
-}
-
 const glslang_resource_t* glslang_default_resource(void)
 {
-    return reinterpret_cast<const glslang_resource_t*>(GetDefaultResources());
+    return reinterpret_cast<const glslang_resource_t*>(&glslang::DefaultTBuiltInResource);
 }
 
 #if defined(__clang__) || defined(__GNUC__)
@@ -52,7 +47,7 @@
 
 const char* glslang_default_resource_string()
 {
-    std::string cpp_str = GetDefaultTBuiltInResourceString();
+    std::string cpp_str = glslang::GetDefaultTBuiltInResourceString();
     char* c_str = (char*)malloc(cpp_str.length() + 1);
     strcpy(c_str, cpp_str.c_str());
     return c_str;
@@ -66,5 +61,5 @@
 
 void glslang_decode_resource_limits(glslang_resource_t* resources, char* config)
 {
-    DecodeResourceLimits(reinterpret_cast<TBuiltInResource*>(resources), config);
+    glslang::DecodeResourceLimits(reinterpret_cast<TBuiltInResource*>(resources), config);
 }
diff --git a/glslang/Public/resource_limits_c.h b/StandAlone/resource_limits_c.h
similarity index 92%
rename from glslang/Public/resource_limits_c.h
rename to StandAlone/resource_limits_c.h
index 05aa8eb..108fd5e 100644
--- a/glslang/Public/resource_limits_c.h
+++ b/StandAlone/resource_limits_c.h
@@ -29,15 +29,12 @@
 #ifndef _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_
 #define _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_
 
-#include "../Include/glslang_c_interface.h"
+#include "../glslang/Include/glslang_c_interface.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-// Returns a struct that can be use to create custom resource values.
-glslang_resource_t* glslang_resource(void);
-
 // These are the default resources for TBuiltInResources, used for both
 //  - parsing this string for the case where the user didn't supply one,
 //  - dumping out a template for user construction of a config file.
diff --git a/StandAlone/spirv-remap.cpp b/StandAlone/spirv-remap.cpp
index 301bb0c..15c3ac5 100644
--- a/StandAlone/spirv-remap.cpp
+++ b/StandAlone/spirv-remap.cpp
@@ -157,7 +157,7 @@
     }
 
     // Print helpful usage message to stdout, and exit
-    void usage(const char* const name, const char* const msg = nullptr)
+    void usage(const char* const name, const char* const msg = 0)
     {
         if (msg)
             std::cout << msg << std::endl << std::endl;
@@ -245,7 +245,7 @@
                 verbosity = 1;
 
                 if (a < argc) {
-                    char* end_ptr = nullptr;
+                    char* end_ptr = 0;
                     int verb = ::strtol(argv[a], &end_ptr, 10);
                     // If we have not read to the end of the string or
                     // the string contained no elements, then we do not want to
diff --git a/Test/GL_ARB_bindless_texture.frag b/Test/GL_ARB_bindless_texture.frag
deleted file mode 100644
index 58c8359..0000000
--- a/Test/GL_ARB_bindless_texture.frag
+++ /dev/null
@@ -1,50 +0,0 @@
-#version 460 compatibility
-
-#extension GL_ARB_bindless_texture: require
-
-#if !defined GL_ARB_bindless_texture
-#  error GL_ARB_bindless_texture is not defined
-#elif GL_ARB_bindless_texture != 1
-#  error GL_ARB_bindless_texture is not equal to 1
-#endif
-
-// Valid usage cases
-layout(bindless_sampler) uniform sampler2D s0;      //  case0:  bindless layout
-in sampler2D s1;                                    //  case1:  sampler as an input
-uniform uvec2 s2;                                   //  case2:  uvec2 as sampler constructor
-uniform ivec2 s3;                                   //  case3:  ivec2 as sampler constructor
-uniform int index;
-in sampler2D s4[2][3];                              //  case4:  sampler arrays of arrays
-uniform BB {sampler2D s5;} bbs5[2];                 //  case5:  uniform block member as a sampler
-in samplerBuffer s6;                                //  case6:  samplerBuffer input
-uniform UBO9 {samplerBuffer s7;};                   //  case7:  samplerBuffer as an uniform block member
-buffer SSBO10 {samplerBuffer s8;};                  //  case8:  samplerBuffer as an ssbo member
-layout(rgba8, bindless_image) in image2D i9;        //  case9:  bindless image as an input
-
-
-uniform vec2 coord;                                 //  bindless coord 2-D
-uniform int icoord;                                 //  bindless coord 1-D
-out vec4 color0;
-out vec4 color1;
-out vec4 color2;
-out vec4 color3;
-out vec4 color4;
-out vec4 color5;
-out vec4 color6;
-out vec4 color7;
-out vec4 color8;
-out vec4 color9;
-
-void main()
-{
-    color0 = texture(s0, coord);
-    color1 = texture(s1, coord);
-    color2 = texture(sampler2D(s2), coord);
-    color3 = texture(sampler2D(s3), coord);
-    color4 = texture(s4[index][index], coord);
-    color5 = texture(bbs5[index].s5, coord);
-    color6 = texelFetch(s6, icoord);
-    color7 = texelFetch(s7, icoord);
-    color8 = texelFetch(s8, icoord);
-    color9 = imageLoad(i9, ivec2(0,0));
-}
\ No newline at end of file
diff --git a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
index 100f6d7..2afdb10 100644
--- a/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.aliasOpaque.frag.out
@@ -1,6 +1,6 @@
 hlsl.aliasOpaque.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 89
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
index be1637f..7bb33e6 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaque.frag.out
@@ -1,6 +1,6 @@
 hlsl.flattenOpaque.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 190
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
index 18d7694..0e8583f 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out
@@ -1,6 +1,6 @@
 hlsl.flattenOpaqueInit.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 139
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
index 914d9b5..fe858ef 100644
--- a/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseLegalResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -1,6 +1,6 @@
 hlsl.flattenOpaqueInitMix.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 99
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.flattenSubset.frag.out b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
index 2be41f0..46d3afb 100644
--- a/Test/baseLegalResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenSubset.frag.out
@@ -1,6 +1,6 @@
 hlsl.flattenSubset.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
index 656ff73..408c0ea 100644
--- a/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
+++ b/Test/baseLegalResults/hlsl.flattenSubset2.frag.out
@@ -1,6 +1,6 @@
 hlsl.flattenSubset2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out
index 936df71..564f0f4 100644
--- a/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out
+++ b/Test/baseLegalResults/hlsl.intrinsics.evalfns.frag.out
@@ -1,6 +1,6 @@
 hlsl.intrinsics.evalfns.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 274
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
index b664098..f45a768 100644
--- a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
@@ -1,6 +1,6 @@
 hlsl.partialFlattenLocal.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 164
 
                               Capability Shader
diff --git a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
index 8f3ac26..8975ed2 100644
--- a/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
+++ b/Test/baseLegalResults/hlsl.partialFlattenMixed.vert.out
@@ -1,6 +1,6 @@
 hlsl.partialFlattenMixed.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/GL_ARB_bindless_texture.frag.out b/Test/baseResults/GL_ARB_bindless_texture.frag.out
deleted file mode 100644
index 3f902c9..0000000
--- a/Test/baseResults/GL_ARB_bindless_texture.frag.out
+++ /dev/null
@@ -1,205 +0,0 @@
-GL_ARB_bindless_texture.frag
-Shader version: 460
-Requested GL_ARB_bindless_texture
-0:? Sequence
-0:38  Function Definition: main( ( global void)
-0:38    Function Parameters: 
-0:40    Sequence
-0:40      move second child to first child ( temp 4-component vector of float)
-0:40        'color0' ( out 4-component vector of float)
-0:40        texture ( global 4-component vector of float)
-0:40          's0' ( uniform sampler2D)
-0:40          'coord' ( uniform 2-component vector of float)
-0:41      move second child to first child ( temp 4-component vector of float)
-0:41        'color1' ( out 4-component vector of float)
-0:41        texture ( global 4-component vector of float)
-0:41          's1' ( smooth in sampler2D)
-0:41          'coord' ( uniform 2-component vector of float)
-0:42      move second child to first child ( temp 4-component vector of float)
-0:42        'color2' ( out 4-component vector of float)
-0:42        texture ( global 4-component vector of float)
-0:42          packUint2x32 ( temp sampler2D)
-0:42            's2' ( uniform 2-component vector of uint)
-0:42          'coord' ( uniform 2-component vector of float)
-0:43      move second child to first child ( temp 4-component vector of float)
-0:43        'color3' ( out 4-component vector of float)
-0:43        texture ( global 4-component vector of float)
-0:43          packUint2x32 ( temp sampler2D)
-0:43            's3' ( uniform 2-component vector of int)
-0:43          'coord' ( uniform 2-component vector of float)
-0:44      move second child to first child ( temp 4-component vector of float)
-0:44        'color4' ( out 4-component vector of float)
-0:44        texture ( global 4-component vector of float)
-0:44          indirect index ( smooth temp sampler2D)
-0:44            indirect index ( smooth temp 3-element array of sampler2D)
-0:44              's4' ( smooth in 2-element array of 3-element array of sampler2D)
-0:44              'index' ( uniform int)
-0:44            'index' ( uniform int)
-0:44          'coord' ( uniform 2-component vector of float)
-0:45      move second child to first child ( temp 4-component vector of float)
-0:45        'color5' ( out 4-component vector of float)
-0:45        texture ( global 4-component vector of float)
-0:45          s5: direct index for structure (layout( column_major shared layoutBindlessSampler) uniform sampler2D)
-0:45            indirect index (layout( column_major shared) temp block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:45              'bbs5' (layout( column_major shared) uniform 2-element array of block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:45              'index' ( uniform int)
-0:45            Constant:
-0:45              0 (const int)
-0:45          'coord' ( uniform 2-component vector of float)
-0:46      move second child to first child ( temp 4-component vector of float)
-0:46        'color6' ( out 4-component vector of float)
-0:46        textureFetch ( global 4-component vector of float)
-0:46          's6' ( smooth in samplerBuffer)
-0:46          'icoord' ( uniform int)
-0:47      move second child to first child ( temp 4-component vector of float)
-0:47        'color7' ( out 4-component vector of float)
-0:47        textureFetch ( global 4-component vector of float)
-0:47          s7: direct index for structure (layout( column_major shared layoutBindlessSampler) uniform samplerBuffer)
-0:47            'anon@0' (layout( column_major shared) uniform block{layout( column_major shared layoutBindlessSampler) uniform samplerBuffer s7})
-0:47            Constant:
-0:47              0 (const uint)
-0:47          'icoord' ( uniform int)
-0:48      move second child to first child ( temp 4-component vector of float)
-0:48        'color8' ( out 4-component vector of float)
-0:48        textureFetch ( global 4-component vector of float)
-0:48          s8: direct index for structure (layout( column_major shared layoutBindlessSampler) buffer samplerBuffer)
-0:48            'anon@1' (layout( column_major shared) buffer block{layout( column_major shared layoutBindlessSampler) buffer samplerBuffer s8})
-0:48            Constant:
-0:48              0 (const uint)
-0:48          'icoord' ( uniform int)
-0:49      move second child to first child ( temp 4-component vector of float)
-0:49        'color9' ( out 4-component vector of float)
-0:49        imageLoad ( global 4-component vector of float)
-0:49          'i9' (layout( rgba8 layoutBindlessImage) smooth in image2D)
-0:49          Constant:
-0:49            0 (const int)
-0:49            0 (const int)
-0:?   Linker Objects
-0:?     's0' ( uniform sampler2D)
-0:?     's1' ( smooth in sampler2D)
-0:?     's2' ( uniform 2-component vector of uint)
-0:?     's3' ( uniform 2-component vector of int)
-0:?     'index' ( uniform int)
-0:?     's4' ( smooth in 2-element array of 3-element array of sampler2D)
-0:?     'bbs5' (layout( column_major shared) uniform 2-element array of block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:?     's6' ( smooth in samplerBuffer)
-0:?     'anon@0' (layout( column_major shared) uniform block{layout( column_major shared layoutBindlessSampler) uniform samplerBuffer s7})
-0:?     'anon@1' (layout( column_major shared) buffer block{layout( column_major shared layoutBindlessSampler) buffer samplerBuffer s8})
-0:?     'i9' (layout( rgba8 layoutBindlessImage) smooth in image2D)
-0:?     'coord' ( uniform 2-component vector of float)
-0:?     'icoord' ( uniform int)
-0:?     'color0' ( out 4-component vector of float)
-0:?     'color1' ( out 4-component vector of float)
-0:?     'color2' ( out 4-component vector of float)
-0:?     'color3' ( out 4-component vector of float)
-0:?     'color4' ( out 4-component vector of float)
-0:?     'color5' ( out 4-component vector of float)
-0:?     'color6' ( out 4-component vector of float)
-0:?     'color7' ( out 4-component vector of float)
-0:?     'color8' ( out 4-component vector of float)
-0:?     'color9' ( out 4-component vector of float)
-
-
-Linked fragment stage:
-
-
-Shader version: 460
-Requested GL_ARB_bindless_texture
-0:? Sequence
-0:38  Function Definition: main( ( global void)
-0:38    Function Parameters: 
-0:40    Sequence
-0:40      move second child to first child ( temp 4-component vector of float)
-0:40        'color0' ( out 4-component vector of float)
-0:40        texture ( global 4-component vector of float)
-0:40          's0' ( uniform sampler2D)
-0:40          'coord' ( uniform 2-component vector of float)
-0:41      move second child to first child ( temp 4-component vector of float)
-0:41        'color1' ( out 4-component vector of float)
-0:41        texture ( global 4-component vector of float)
-0:41          's1' ( smooth in sampler2D)
-0:41          'coord' ( uniform 2-component vector of float)
-0:42      move second child to first child ( temp 4-component vector of float)
-0:42        'color2' ( out 4-component vector of float)
-0:42        texture ( global 4-component vector of float)
-0:42          packUint2x32 ( temp sampler2D)
-0:42            's2' ( uniform 2-component vector of uint)
-0:42          'coord' ( uniform 2-component vector of float)
-0:43      move second child to first child ( temp 4-component vector of float)
-0:43        'color3' ( out 4-component vector of float)
-0:43        texture ( global 4-component vector of float)
-0:43          packUint2x32 ( temp sampler2D)
-0:43            's3' ( uniform 2-component vector of int)
-0:43          'coord' ( uniform 2-component vector of float)
-0:44      move second child to first child ( temp 4-component vector of float)
-0:44        'color4' ( out 4-component vector of float)
-0:44        texture ( global 4-component vector of float)
-0:44          indirect index ( smooth temp sampler2D)
-0:44            indirect index ( smooth temp 3-element array of sampler2D)
-0:44              's4' ( smooth in 2-element array of 3-element array of sampler2D)
-0:44              'index' ( uniform int)
-0:44            'index' ( uniform int)
-0:44          'coord' ( uniform 2-component vector of float)
-0:45      move second child to first child ( temp 4-component vector of float)
-0:45        'color5' ( out 4-component vector of float)
-0:45        texture ( global 4-component vector of float)
-0:45          s5: direct index for structure (layout( column_major shared layoutBindlessSampler) uniform sampler2D)
-0:45            indirect index (layout( column_major shared) temp block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:45              'bbs5' (layout( column_major shared) uniform 2-element array of block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:45              'index' ( uniform int)
-0:45            Constant:
-0:45              0 (const int)
-0:45          'coord' ( uniform 2-component vector of float)
-0:46      move second child to first child ( temp 4-component vector of float)
-0:46        'color6' ( out 4-component vector of float)
-0:46        textureFetch ( global 4-component vector of float)
-0:46          's6' ( smooth in samplerBuffer)
-0:46          'icoord' ( uniform int)
-0:47      move second child to first child ( temp 4-component vector of float)
-0:47        'color7' ( out 4-component vector of float)
-0:47        textureFetch ( global 4-component vector of float)
-0:47          s7: direct index for structure (layout( column_major shared layoutBindlessSampler) uniform samplerBuffer)
-0:47            'anon@0' (layout( column_major shared) uniform block{layout( column_major shared layoutBindlessSampler) uniform samplerBuffer s7})
-0:47            Constant:
-0:47              0 (const uint)
-0:47          'icoord' ( uniform int)
-0:48      move second child to first child ( temp 4-component vector of float)
-0:48        'color8' ( out 4-component vector of float)
-0:48        textureFetch ( global 4-component vector of float)
-0:48          s8: direct index for structure (layout( column_major shared layoutBindlessSampler) buffer samplerBuffer)
-0:48            'anon@1' (layout( column_major shared) buffer block{layout( column_major shared layoutBindlessSampler) buffer samplerBuffer s8})
-0:48            Constant:
-0:48              0 (const uint)
-0:48          'icoord' ( uniform int)
-0:49      move second child to first child ( temp 4-component vector of float)
-0:49        'color9' ( out 4-component vector of float)
-0:49        imageLoad ( global 4-component vector of float)
-0:49          'i9' (layout( rgba8 layoutBindlessImage) smooth in image2D)
-0:49          Constant:
-0:49            0 (const int)
-0:49            0 (const int)
-0:?   Linker Objects
-0:?     's0' ( uniform sampler2D)
-0:?     's1' ( smooth in sampler2D)
-0:?     's2' ( uniform 2-component vector of uint)
-0:?     's3' ( uniform 2-component vector of int)
-0:?     'index' ( uniform int)
-0:?     's4' ( smooth in 2-element array of 3-element array of sampler2D)
-0:?     'bbs5' (layout( column_major shared) uniform 2-element array of block{layout( column_major shared layoutBindlessSampler) uniform sampler2D s5})
-0:?     's6' ( smooth in samplerBuffer)
-0:?     'anon@0' (layout( column_major shared) uniform block{layout( column_major shared layoutBindlessSampler) uniform samplerBuffer s7})
-0:?     'anon@1' (layout( column_major shared) buffer block{layout( column_major shared layoutBindlessSampler) buffer samplerBuffer s8})
-0:?     'i9' (layout( rgba8 layoutBindlessImage) smooth in image2D)
-0:?     'coord' ( uniform 2-component vector of float)
-0:?     'icoord' ( uniform int)
-0:?     'color0' ( out 4-component vector of float)
-0:?     'color1' ( out 4-component vector of float)
-0:?     'color2' ( out 4-component vector of float)
-0:?     'color3' ( out 4-component vector of float)
-0:?     'color4' ( out 4-component vector of float)
-0:?     'color5' ( out 4-component vector of float)
-0:?     'color6' ( out 4-component vector of float)
-0:?     'color7' ( out 4-component vector of float)
-0:?     'color8' ( out 4-component vector of float)
-0:?     'color9' ( out 4-component vector of float)
-
diff --git a/Test/baseResults/compoundsuffix.frag.hlsl b/Test/baseResults/compoundsuffix.frag.hlsl
index f8dcfaa..5a62488 100644
--- a/Test/baseResults/compoundsuffix.frag.hlsl
+++ b/Test/baseResults/compoundsuffix.frag.hlsl
@@ -1,45 +1,45 @@
-compoundsuffix.frag.hlsl
-// Module Version 10000
-// Generated by (magic number): 8000b
-// Id's are bound by 22
-
-                              Capability Shader
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 20
-                              ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 500
-                              Name 4  "main"
-                              Name 11  "@main(vf4;"
-                              Name 10  "fragColor"
-                              Name 15  "fragColor"
-                              Name 16  "param"
-                              Name 20  "fragColor"
-                              Decorate 20(fragColor) Location 0
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 4
-               8:             TypePointer Function 7(fvec4)
-               9:             TypeFunction 2 8(ptr)
-              13:    6(float) Constant 1065353216
-              14:    7(fvec4) ConstantComposite 13 13 13 13
-              19:             TypePointer Output 7(fvec4)
-   20(fragColor):     19(ptr) Variable Output
-         4(main):           2 Function None 3
-               5:             Label
-   15(fragColor):      8(ptr) Variable Function
-       16(param):      8(ptr) Variable Function
-              17:           2 FunctionCall 11(@main(vf4;) 16(param)
-              18:    7(fvec4) Load 16(param)
-                              Store 15(fragColor) 18
-              21:    7(fvec4) Load 15(fragColor)
-                              Store 20(fragColor) 21
-                              Return
-                              FunctionEnd
-  11(@main(vf4;):           2 Function None 9
-   10(fragColor):      8(ptr) FunctionParameter
-              12:             Label
-                              Store 10(fragColor) 14
-                              Return
-                              FunctionEnd
+compoundsuffix.frag.hlsl

+// Module Version 10000

+// Generated by (magic number): 8000a

+// Id's are bound by 22

+

+                              Capability Shader

+               1:             ExtInstImport  "GLSL.std.450"

+                              MemoryModel Logical GLSL450

+                              EntryPoint Fragment 4  "main" 20

+                              ExecutionMode 4 OriginUpperLeft

+                              Source HLSL 500

+                              Name 4  "main"

+                              Name 11  "@main(vf4;"

+                              Name 10  "fragColor"

+                              Name 15  "fragColor"

+                              Name 16  "param"

+                              Name 20  "fragColor"

+                              Decorate 20(fragColor) Location 0

+               2:             TypeVoid

+               3:             TypeFunction 2

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+               9:             TypeFunction 2 8(ptr)

+              13:    6(float) Constant 1065353216

+              14:    7(fvec4) ConstantComposite 13 13 13 13

+              19:             TypePointer Output 7(fvec4)

+   20(fragColor):     19(ptr) Variable Output

+         4(main):           2 Function None 3

+               5:             Label

+   15(fragColor):      8(ptr) Variable Function

+       16(param):      8(ptr) Variable Function

+              17:           2 FunctionCall 11(@main(vf4;) 16(param)

+              18:    7(fvec4) Load 16(param)

+                              Store 15(fragColor) 18

+              21:    7(fvec4) Load 15(fragColor)

+                              Store 20(fragColor) 21

+                              Return

+                              FunctionEnd

+  11(@main(vf4;):           2 Function None 9

+   10(fragColor):      8(ptr) FunctionParameter

+              12:             Label

+                              Store 10(fragColor) 14

+                              Return

+                              FunctionEnd

diff --git a/Test/baseResults/compoundsuffix.vert.glsl b/Test/baseResults/compoundsuffix.vert.glsl
index 8535b47..58354a4 100644
--- a/Test/baseResults/compoundsuffix.vert.glsl
+++ b/Test/baseResults/compoundsuffix.vert.glsl
@@ -1,15 +1,15 @@
-compoundsuffix.vert.glsl
-Shader version: 100
-0:? Sequence
-0:1  Function Definition: main( ( global void)
-0:1    Function Parameters: 
-0:3    Sequence
-0:3      move second child to first child ( temp highp 4-component vector of float)
-0:3        'gl_Position' ( gl_Position highp 4-component vector of float Position)
-0:3        Constant:
-0:3          1.000000
-0:3          1.000000
-0:3          1.000000
-0:3          1.000000
-0:?   Linker Objects
-
+compoundsuffix.vert.glsl

+Shader version: 100

+0:? Sequence

+0:1  Function Definition: main( ( global void)

+0:1    Function Parameters: 

+0:3    Sequence

+0:3      move second child to first child ( temp highp 4-component vector of float)

+0:3        'gl_Position' ( gl_Position highp 4-component vector of float Position)

+0:3        Constant:

+0:3          1.000000

+0:3          1.000000

+0:3          1.000000

+0:3          1.000000

+0:?   Linker Objects

+

diff --git a/Test/baseResults/glsl.autosampledtextures.frag.out b/Test/baseResults/glsl.autosampledtextures.frag.out
index cbbb202..2183898 100644
--- a/Test/baseResults/glsl.autosampledtextures.frag.out
+++ b/Test/baseResults/glsl.autosampledtextures.frag.out
@@ -1,6 +1,6 @@
 glsl.autosampledtextures.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/glsl.entryPointRename.vert.bad.out b/Test/baseResults/glsl.entryPointRename.vert.bad.out
index ae5de6e..ce34fbf 100644
--- a/Test/baseResults/glsl.entryPointRename.vert.bad.out
+++ b/Test/baseResults/glsl.entryPointRename.vert.bad.out
@@ -2,7 +2,7 @@
 ERROR: Source entry point must be "main"
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/glsl.entryPointRename.vert.out b/Test/baseResults/glsl.entryPointRename.vert.out
index bc142a5..71319c9 100644
--- a/Test/baseResults/glsl.entryPointRename.vert.out
+++ b/Test/baseResults/glsl.entryPointRename.vert.out
@@ -1,6 +1,6 @@
 glsl.entryPointRename.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/glspv.esversion.vert.out b/Test/baseResults/glspv.esversion.vert.out
index dedcae9..2a0932a 100644
--- a/Test/baseResults/glspv.esversion.vert.out
+++ b/Test/baseResults/glspv.esversion.vert.out
@@ -1,6 +1,6 @@
 glspv.esversion.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 10
 
                               Capability Shader
diff --git a/Test/baseResults/glspv.version.frag.out b/Test/baseResults/glspv.version.frag.out
index 13abe1d..a90d9eb 100644
--- a/Test/baseResults/glspv.version.frag.out
+++ b/Test/baseResults/glspv.version.frag.out
@@ -2,7 +2,7 @@
 ERROR: #version: compilation for SPIR-V does not support the compatibility profile
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 6
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.PointSize.geom.out b/Test/baseResults/hlsl.PointSize.geom.out
index c81cf5b..2b3d954 100644
--- a/Test/baseResults/hlsl.PointSize.geom.out
+++ b/Test/baseResults/hlsl.PointSize.geom.out
@@ -71,7 +71,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.PointSize.vert.out b/Test/baseResults/hlsl.PointSize.vert.out
index 5d646a4..12a4d64 100644
--- a/Test/baseResults/hlsl.PointSize.vert.out
+++ b/Test/baseResults/hlsl.PointSize.vert.out
@@ -38,7 +38,7 @@
 0:?     '@entryPointOutput' ( out float PointSize)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 16
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.aliasOpaque.frag.out b/Test/baseResults/hlsl.aliasOpaque.frag.out
index 7bea691..b7c2c9e 100644
--- a/Test/baseResults/hlsl.aliasOpaque.frag.out
+++ b/Test/baseResults/hlsl.aliasOpaque.frag.out
@@ -143,7 +143,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 64
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out
index b8ac133..dde6e29 100644
--- a/Test/baseResults/hlsl.amend.frag.out
+++ b/Test/baseResults/hlsl.amend.frag.out
@@ -160,7 +160,7 @@
 0:?     'm' ( global 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out
index 264a716..5b99f5d 100644
--- a/Test/baseResults/hlsl.array.flatten.frag.out
+++ b/Test/baseResults/hlsl.array.flatten.frag.out
@@ -345,7 +345,7 @@
 0:?     'ps_output.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 143
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out
index eab21a6..2691772 100644
--- a/Test/baseResults/hlsl.array.frag.out
+++ b/Test/baseResults/hlsl.array.frag.out
@@ -290,7 +290,7 @@
 0:?     'input' (layout( location=1) in 3-element array of 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 126
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out
index ae36cef..566bc9d 100644
--- a/Test/baseResults/hlsl.array.implicit-size.frag.out
+++ b/Test/baseResults/hlsl.array.implicit-size.frag.out
@@ -163,7 +163,7 @@
 0:?     'g_mystruct' ( global 2-element array of structure{ temp int i,  temp float f})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out
index 7b9d962..fa2be65 100644
--- a/Test/baseResults/hlsl.array.multidim.frag.out
+++ b/Test/baseResults/hlsl.array.multidim.frag.out
@@ -134,7 +134,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out
index 018da84..69a631e 100644
--- a/Test/baseResults/hlsl.assoc.frag.out
+++ b/Test/baseResults/hlsl.assoc.frag.out
@@ -132,7 +132,7 @@
 0:?     'a5' (layout( location=4) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out
index ee183c8..90c1740 100644
--- a/Test/baseResults/hlsl.attribute.expression.comp.out
+++ b/Test/baseResults/hlsl.attribute.expression.comp.out
@@ -64,7 +64,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int bound})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out
index cdc3471..0d1f709 100644
--- a/Test/baseResults/hlsl.attribute.frag.out
+++ b/Test/baseResults/hlsl.attribute.frag.out
@@ -50,7 +50,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.attributeC11.frag.out b/Test/baseResults/hlsl.attributeC11.frag.out
index c97c300..1b651a3 100644
--- a/Test/baseResults/hlsl.attributeC11.frag.out
+++ b/Test/baseResults/hlsl.attributeC11.frag.out
@@ -95,7 +95,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 51
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out b/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
index 4726ddd..244fe7d 100644
--- a/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
+++ b/Test/baseResults/hlsl.attributeGlobalBuffer.frag.out
@@ -56,7 +56,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.autosampledtextures.frag.out b/Test/baseResults/hlsl.autosampledtextures.frag.out
index 070af82..559c130 100644
--- a/Test/baseResults/hlsl.autosampledtextures.frag.out
+++ b/Test/baseResults/hlsl.autosampledtextures.frag.out
@@ -1,6 +1,6 @@
 hlsl.autosampledtextures.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out
index 7b02d25..d71429c 100644
--- a/Test/baseResults/hlsl.basic.comp.out
+++ b/Test/baseResults/hlsl.basic.comp.out
@@ -64,7 +64,7 @@
 0:?     'gti' ( in 3-component vector of int LocalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.basic.geom.out b/Test/baseResults/hlsl.basic.geom.out
index ef2b5ad..6dea921 100644
--- a/Test/baseResults/hlsl.basic.geom.out
+++ b/Test/baseResults/hlsl.basic.geom.out
@@ -188,7 +188,7 @@
 0:?     'OutputStream.something' (layout( location=1) out int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 68
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.boolConv.vert.out b/Test/baseResults/hlsl.boolConv.vert.out
index c4e3beb..6a8e516 100644
--- a/Test/baseResults/hlsl.boolConv.vert.out
+++ b/Test/baseResults/hlsl.boolConv.vert.out
@@ -204,7 +204,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 99
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out
index f95b839..04a783c 100644
--- a/Test/baseResults/hlsl.buffer.frag.out
+++ b/Test/baseResults/hlsl.buffer.frag.out
@@ -147,7 +147,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 73
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index 7d896ce..d4367a0 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -358,7 +358,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 148
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
index 3ce857d..8a4be02 100644
--- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -358,7 +358,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 148
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out
index ef3957c..3efbd52 100644
--- a/Test/baseResults/hlsl.cast.frag.out
+++ b/Test/baseResults/hlsl.cast.frag.out
@@ -70,7 +70,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/Test/baseResults/hlsl.cbuffer-identifier.vert.out
index de9deea..93f35d6 100644
--- a/Test/baseResults/hlsl.cbuffer-identifier.vert.out
+++ b/Test/baseResults/hlsl.cbuffer-identifier.vert.out
@@ -250,7 +250,7 @@
 0:?     'input.Norm' (layout( location=1) in 3-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 93
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.charLit.vert.out b/Test/baseResults/hlsl.charLit.vert.out
index 6bde478..2151d43 100644
--- a/Test/baseResults/hlsl.charLit.vert.out
+++ b/Test/baseResults/hlsl.charLit.vert.out
@@ -146,7 +146,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clip.frag.out b/Test/baseResults/hlsl.clip.frag.out
index 32cbb8b..691b20b 100644
--- a/Test/baseResults/hlsl.clip.frag.out
+++ b/Test/baseResults/hlsl.clip.frag.out
@@ -74,7 +74,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-1.frag.out b/Test/baseResults/hlsl.clipdistance-1.frag.out
index 2a8d8c9..0cfee39 100644
--- a/Test/baseResults/hlsl.clipdistance-1.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-1.frag.out
@@ -98,7 +98,7 @@
 0:?     'cull' ( in 1-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-1.geom.out b/Test/baseResults/hlsl.clipdistance-1.geom.out
index 744b192..a9a0b82 100644
--- a/Test/baseResults/hlsl.clipdistance-1.geom.out
+++ b/Test/baseResults/hlsl.clipdistance-1.geom.out
@@ -550,7 +550,7 @@
 0:?     'OutputStream.clip' ( out 2-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 118
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.clipdistance-1.vert.out b/Test/baseResults/hlsl.clipdistance-1.vert.out
index 38d956f..41478e1 100644
--- a/Test/baseResults/hlsl.clipdistance-1.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-1.vert.out
@@ -108,7 +108,7 @@
 0:?     'cull' ( out 1-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 46
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-2.frag.out b/Test/baseResults/hlsl.clipdistance-2.frag.out
index 6725955..15a9512 100644
--- a/Test/baseResults/hlsl.clipdistance-2.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-2.frag.out
@@ -290,7 +290,7 @@
 0:?     'cull' ( in 4-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-2.geom.out b/Test/baseResults/hlsl.clipdistance-2.geom.out
index 11d5b67..bb8d137 100644
--- a/Test/baseResults/hlsl.clipdistance-2.geom.out
+++ b/Test/baseResults/hlsl.clipdistance-2.geom.out
@@ -724,7 +724,7 @@
 0:?     'OutputStream.clip' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 128
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.clipdistance-2.vert.out b/Test/baseResults/hlsl.clipdistance-2.vert.out
index 3778ddd..5ccbb1e 100644
--- a/Test/baseResults/hlsl.clipdistance-2.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-2.vert.out
@@ -420,7 +420,7 @@
 0:?     'cull' ( out 4-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 89
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-3.frag.out b/Test/baseResults/hlsl.clipdistance-3.frag.out
index 76525dd..1d9f54e 100644
--- a/Test/baseResults/hlsl.clipdistance-3.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-3.frag.out
@@ -98,7 +98,7 @@
 0:?     'cull' ( in 2-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-3.geom.out b/Test/baseResults/hlsl.clipdistance-3.geom.out
index 42ce516..5fa7df7 100644
--- a/Test/baseResults/hlsl.clipdistance-3.geom.out
+++ b/Test/baseResults/hlsl.clipdistance-3.geom.out
@@ -630,7 +630,7 @@
 0:?     'OutputStream.clip1' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 127
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.clipdistance-3.vert.out b/Test/baseResults/hlsl.clipdistance-3.vert.out
index 9cebfc5..1882a5a 100644
--- a/Test/baseResults/hlsl.clipdistance-3.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-3.vert.out
@@ -136,7 +136,7 @@
 0:?     'cull' ( out 2-element array of float CullDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 51
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-4.frag.out b/Test/baseResults/hlsl.clipdistance-4.frag.out
index f801eb2..5cef564 100644
--- a/Test/baseResults/hlsl.clipdistance-4.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-4.frag.out
@@ -174,7 +174,7 @@
 0:?     'v.ClipRect' ( in 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-4.geom.out b/Test/baseResults/hlsl.clipdistance-4.geom.out
index 8dbe89a..e942301 100644
--- a/Test/baseResults/hlsl.clipdistance-4.geom.out
+++ b/Test/baseResults/hlsl.clipdistance-4.geom.out
@@ -612,7 +612,7 @@
 0:?     'OutputStream.clip1' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 130
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.clipdistance-4.vert.out b/Test/baseResults/hlsl.clipdistance-4.vert.out
index 4c291a1..8e8fe6d 100644
--- a/Test/baseResults/hlsl.clipdistance-4.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-4.vert.out
@@ -270,7 +270,7 @@
 0:?     '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-5.frag.out b/Test/baseResults/hlsl.clipdistance-5.frag.out
index 9d9042d..ab366e5 100644
--- a/Test/baseResults/hlsl.clipdistance-5.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-5.frag.out
@@ -232,7 +232,7 @@
 0:?     'v.ClipRect' ( in 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-5.vert.out b/Test/baseResults/hlsl.clipdistance-5.vert.out
index deb6ad8..6dbe0a6 100644
--- a/Test/baseResults/hlsl.clipdistance-5.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-5.vert.out
@@ -318,7 +318,7 @@
 0:?     '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 73
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-6.frag.out b/Test/baseResults/hlsl.clipdistance-6.frag.out
index 99798d3..770f990 100644
--- a/Test/baseResults/hlsl.clipdistance-6.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-6.frag.out
@@ -282,7 +282,7 @@
 0:?     'v.clip1' ( in 8-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 79
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-6.vert.out b/Test/baseResults/hlsl.clipdistance-6.vert.out
index 389f867..1adbdfc 100644
--- a/Test/baseResults/hlsl.clipdistance-6.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-6.vert.out
@@ -428,7 +428,7 @@
 0:?     '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 86
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-7.frag.out b/Test/baseResults/hlsl.clipdistance-7.frag.out
index 9b8c655..9f5e519 100644
--- a/Test/baseResults/hlsl.clipdistance-7.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-7.frag.out
@@ -270,7 +270,7 @@
 0:?     'v.clip1' ( in 8-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-7.vert.out b/Test/baseResults/hlsl.clipdistance-7.vert.out
index 55a16c1..13bc844 100644
--- a/Test/baseResults/hlsl.clipdistance-7.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-7.vert.out
@@ -384,7 +384,7 @@
 0:?     '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 81
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-8.frag.out b/Test/baseResults/hlsl.clipdistance-8.frag.out
index ed82cfd..8f2a9c2 100644
--- a/Test/baseResults/hlsl.clipdistance-8.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-8.frag.out
@@ -186,7 +186,7 @@
 0:?     'v.clip1' ( in 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-8.vert.out b/Test/baseResults/hlsl.clipdistance-8.vert.out
index 9df6618..fbc2c2a 100644
--- a/Test/baseResults/hlsl.clipdistance-8.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-8.vert.out
@@ -240,7 +240,7 @@
 0:?     '@entryPointOutput.clip1' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-9.frag.out b/Test/baseResults/hlsl.clipdistance-9.frag.out
index 9c62b34..b42727f 100644
--- a/Test/baseResults/hlsl.clipdistance-9.frag.out
+++ b/Test/baseResults/hlsl.clipdistance-9.frag.out
@@ -144,7 +144,7 @@
 0:?     'clip0' ( in 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 68
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.clipdistance-9.vert.out b/Test/baseResults/hlsl.clipdistance-9.vert.out
index 4e997c6..7df3064 100644
--- a/Test/baseResults/hlsl.clipdistance-9.vert.out
+++ b/Test/baseResults/hlsl.clipdistance-9.vert.out
@@ -194,7 +194,7 @@
 0:?     'clip0' ( out 4-element array of float ClipDistance)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.color.hull.tesc.out b/Test/baseResults/hlsl.color.hull.tesc.out
index 7a1f830..e3c0a3e 100644
--- a/Test/baseResults/hlsl.color.hull.tesc.out
+++ b/Test/baseResults/hlsl.color.hull.tesc.out
@@ -530,7 +530,7 @@
 0:?     '@patchConstantOutput.inside' ( patch out 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 159
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out
index 720aea2..9fec433 100644
--- a/Test/baseResults/hlsl.comparison.vec.frag.out
+++ b/Test/baseResults/hlsl.comparison.vec.frag.out
@@ -262,7 +262,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 96
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out
index e160681..99f2538 100644
--- a/Test/baseResults/hlsl.conditional.frag.out
+++ b/Test/baseResults/hlsl.conditional.frag.out
@@ -522,7 +522,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 206
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.constantbuffer.frag.out b/Test/baseResults/hlsl.constantbuffer.frag.out
index 78ad577..12e819b 100644
--- a/Test/baseResults/hlsl.constantbuffer.frag.out
+++ b/Test/baseResults/hlsl.constantbuffer.frag.out
@@ -133,7 +133,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.constructArray.vert.out b/Test/baseResults/hlsl.constructArray.vert.out
index 230efbc..b070735 100644
--- a/Test/baseResults/hlsl.constructArray.vert.out
+++ b/Test/baseResults/hlsl.constructArray.vert.out
@@ -268,7 +268,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 89
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out
index 367a03a..7b25ae8 100644
--- a/Test/baseResults/hlsl.constructexpr.frag.out
+++ b/Test/baseResults/hlsl.constructexpr.frag.out
@@ -104,7 +104,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.constructimat.frag.out b/Test/baseResults/hlsl.constructimat.frag.out
index 4f49b87..a76ac6a 100644
--- a/Test/baseResults/hlsl.constructimat.frag.out
+++ b/Test/baseResults/hlsl.constructimat.frag.out
@@ -545,7 +545,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 98
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.coverage.frag.out b/Test/baseResults/hlsl.coverage.frag.out
index 681118f..7c44e1f 100644
--- a/Test/baseResults/hlsl.coverage.frag.out
+++ b/Test/baseResults/hlsl.coverage.frag.out
@@ -119,7 +119,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 52
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.dashI.vert.out b/Test/baseResults/hlsl.dashI.vert.out
index ccd530a..7351443 100644
--- a/Test/baseResults/hlsl.dashI.vert.out
+++ b/Test/baseResults/hlsl.dashI.vert.out
@@ -1,6 +1,6 @@
 hlsl.dashI.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
index 1862266..9ca0146 100644
--- a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
+++ b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
@@ -1,6 +1,6 @@
 hlsl.deadFunctionMissingBody.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out
index 5128a0e..31a7006 100644
--- a/Test/baseResults/hlsl.depthGreater.frag.out
+++ b/Test/baseResults/hlsl.depthGreater.frag.out
@@ -50,7 +50,7 @@
 0:?     'depth' ( out float FragDepth)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out
index 771c477..d062c77 100644
--- a/Test/baseResults/hlsl.depthLess.frag.out
+++ b/Test/baseResults/hlsl.depthLess.frag.out
@@ -42,7 +42,7 @@
 0:?     '@entryPointOutput' ( out float FragDepth)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 16
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out
index 7a6c6f2..41766f6 100644
--- a/Test/baseResults/hlsl.discard.frag.out
+++ b/Test/baseResults/hlsl.discard.frag.out
@@ -108,7 +108,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out
index 82a96b5..0d93e8d 100644
--- a/Test/baseResults/hlsl.doLoop.frag.out
+++ b/Test/baseResults/hlsl.doLoop.frag.out
@@ -198,7 +198,7 @@
 0:?     'input' (layout( location=0) in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 99
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.domain.1.tese.out b/Test/baseResults/hlsl.domain.1.tese.out
index 738f7cd..4e53e7c 100644
--- a/Test/baseResults/hlsl.domain.1.tese.out
+++ b/Test/baseResults/hlsl.domain.1.tese.out
@@ -428,7 +428,7 @@
 0:?     'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 125
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.domain.2.tese.out b/Test/baseResults/hlsl.domain.2.tese.out
index ddb176a..05f934f 100644
--- a/Test/baseResults/hlsl.domain.2.tese.out
+++ b/Test/baseResults/hlsl.domain.2.tese.out
@@ -426,7 +426,7 @@
 0:?     'pcf_data.foo' (layout( location=2) patch in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 120
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.domain.3.tese.out b/Test/baseResults/hlsl.domain.3.tese.out
index 1dc7b2f..c9b985d 100644
--- a/Test/baseResults/hlsl.domain.3.tese.out
+++ b/Test/baseResults/hlsl.domain.3.tese.out
@@ -358,7 +358,7 @@
 0:?     'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 116
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.earlydepthstencil.frag.out b/Test/baseResults/hlsl.earlydepthstencil.frag.out
index a629bdc..34ca006 100644
--- a/Test/baseResults/hlsl.earlydepthstencil.frag.out
+++ b/Test/baseResults/hlsl.earlydepthstencil.frag.out
@@ -108,7 +108,7 @@
 0:?     'input.Position' ( in 4-component vector of float FragCoord)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.emptystruct.init.vert.out b/Test/baseResults/hlsl.emptystruct.init.vert.out
index 07baddf..9f5c785 100644
--- a/Test/baseResults/hlsl.emptystruct.init.vert.out
+++ b/Test/baseResults/hlsl.emptystruct.init.vert.out
@@ -60,7 +60,7 @@
 0:?     'vertexIndex' (layout( location=0) in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.emptystructreturn.frag.out b/Test/baseResults/hlsl.emptystructreturn.frag.out
index de77486..2a4cabe 100644
--- a/Test/baseResults/hlsl.emptystructreturn.frag.out
+++ b/Test/baseResults/hlsl.emptystructreturn.frag.out
@@ -51,7 +51,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.emptystructreturn.vert.out b/Test/baseResults/hlsl.emptystructreturn.vert.out
index 22dc2cf..ad1efa7 100644
--- a/Test/baseResults/hlsl.emptystructreturn.vert.out
+++ b/Test/baseResults/hlsl.emptystructreturn.vert.out
@@ -49,7 +49,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out
index e86def4..4c32249 100644
--- a/Test/baseResults/hlsl.entry-in.frag.out
+++ b/Test/baseResults/hlsl.entry-in.frag.out
@@ -166,7 +166,7 @@
 0:?     'i.i2' (layout( location=1) flat in 2-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out
index 5f162b1..a8b47e9 100644
--- a/Test/baseResults/hlsl.entry-out.frag.out
+++ b/Test/baseResults/hlsl.entry-out.frag.out
@@ -244,7 +244,7 @@
 0:?     'out3.i' (layout( location=5) out 2-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 89
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.entry.rename.frag.out b/Test/baseResults/hlsl.entry.rename.frag.out
index d635c67..2fd15d1 100644
--- a/Test/baseResults/hlsl.entry.rename.frag.out
+++ b/Test/baseResults/hlsl.entry.rename.frag.out
@@ -72,7 +72,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out b/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
index 5c89f7e..3ca773f 100644
--- a/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
+++ b/Test/baseResults/hlsl.explicitDescriptorSet-2.frag.out
@@ -1,6 +1,6 @@
 hlsl.explicitDescriptorSet.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.explicitDescriptorSet.frag.out b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
index 1b0e45f..9ba0d93 100644
--- a/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
+++ b/Test/baseResults/hlsl.explicitDescriptorSet.frag.out
@@ -1,6 +1,6 @@
 hlsl.explicitDescriptorSet.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flatten.return.frag.out b/Test/baseResults/hlsl.flatten.return.frag.out
index f276462..9a51f1f 100644
--- a/Test/baseResults/hlsl.flatten.return.frag.out
+++ b/Test/baseResults/hlsl.flatten.return.frag.out
@@ -118,7 +118,7 @@
 0:?     '@entryPointOutput.other_struct_member3' (layout( location=3) out float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 49
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flattenOpaque.frag.out b/Test/baseResults/hlsl.flattenOpaque.frag.out
index 589b1e1..9a29081 100644
--- a/Test/baseResults/hlsl.flattenOpaque.frag.out
+++ b/Test/baseResults/hlsl.flattenOpaque.frag.out
@@ -295,7 +295,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 122
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
index dbd6446..10e8345 100644
--- a/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInit.vert.out
@@ -165,7 +165,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 82
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
index 66084f6..c8d0b16 100644
--- a/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
+++ b/Test/baseResults/hlsl.flattenOpaqueInitMix.vert.out
@@ -107,7 +107,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 59
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flattenSubset.frag.out b/Test/baseResults/hlsl.flattenSubset.frag.out
index 65d3467..7ec229a 100644
--- a/Test/baseResults/hlsl.flattenSubset.frag.out
+++ b/Test/baseResults/hlsl.flattenSubset.frag.out
@@ -115,7 +115,7 @@
 0:?     'vpos' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.flattenSubset2.frag.out b/Test/baseResults/hlsl.flattenSubset2.frag.out
index c8a9193..c319637 100644
--- a/Test/baseResults/hlsl.flattenSubset2.frag.out
+++ b/Test/baseResults/hlsl.flattenSubset2.frag.out
@@ -149,7 +149,7 @@
 0:?     'vpos' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index 65f69da..00bdea9 100644
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -65,7 +65,7 @@
 0:?     'scalar' ( global float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index 5fcc3c1..0dbd935 100644
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -42,7 +42,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform bool ff1, layout( offset=20) uniform float ff2, layout( binding=0 offset=32) uniform 4-component vector of float ff3, layout( binding=1 offset=48) uniform 4-component vector of float ff4})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out
index f1aa20b..7bce346 100644
--- a/Test/baseResults/hlsl.forLoop.frag.out
+++ b/Test/baseResults/hlsl.forLoop.frag.out
@@ -510,7 +510,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 240
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.format.rwtexture.frag.out b/Test/baseResults/hlsl.format.rwtexture.frag.out
index 3edbbb6..e6eebbf 100644
--- a/Test/baseResults/hlsl.format.rwtexture.frag.out
+++ b/Test/baseResults/hlsl.format.rwtexture.frag.out
@@ -184,7 +184,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 160
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.fraggeom.frag.out b/Test/baseResults/hlsl.fraggeom.frag.out
index 400f530..d86fa96 100644
--- a/Test/baseResults/hlsl.fraggeom.frag.out
+++ b/Test/baseResults/hlsl.fraggeom.frag.out
@@ -64,7 +64,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out
index 13b7ebb..e39d5a2 100644
--- a/Test/baseResults/hlsl.gather.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -262,7 +262,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 124
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
index 0aa00f7..99efd61 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -258,7 +258,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 135
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
index d743074..96525e0 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -220,7 +220,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 126
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
index 9656db5..59bd8da 100644
--- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -208,7 +208,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 114
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
index 2e6221a..942bd92 100644
--- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -202,7 +202,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 97
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
index 904aaec..75ea036 100644
--- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -750,7 +750,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 255
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
index f8fa2f4..886ad73 100644
--- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -758,7 +758,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 265
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
index 63cb39f..b86cd22 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -1263,7 +1263,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 399
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
index da83e01..1fa728a 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -1255,7 +1255,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 389
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
index ff834ec..a858f15 100644
--- a/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
@@ -456,7 +456,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 164
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index 9e1d543..ba02359 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -2318,7 +2318,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 550
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
index a7d27a8..96a1cc1 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
@@ -116,7 +116,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 48
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
index 7af13b2..1cce0cc 100644
--- a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
@@ -718,7 +718,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 232
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index f08a91c..5c49931 100644
--- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -580,7 +580,7 @@
 0:?     'sample' (layout( location=0) flat in int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.global-const-init.frag.out b/Test/baseResults/hlsl.global-const-init.frag.out
index 0510b3e..26895bb 100644
--- a/Test/baseResults/hlsl.global-const-init.frag.out
+++ b/Test/baseResults/hlsl.global-const-init.frag.out
@@ -102,7 +102,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.groupid.comp.out b/Test/baseResults/hlsl.groupid.comp.out
index 39c5fed..bf39d11 100644
--- a/Test/baseResults/hlsl.groupid.comp.out
+++ b/Test/baseResults/hlsl.groupid.comp.out
@@ -82,7 +82,7 @@
 0:?     'vGroupId' ( in 3-component vector of uint WorkGroupID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.gs-hs-mix.tesc.out b/Test/baseResults/hlsl.gs-hs-mix.tesc.out
index 5071a47..c9496ac 100644
--- a/Test/baseResults/hlsl.gs-hs-mix.tesc.out
+++ b/Test/baseResults/hlsl.gs-hs-mix.tesc.out
@@ -986,7 +986,7 @@
 0:?     '@patchConstantOutput.NormalWS[2]' (layout( location=3) patch out 3-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 236
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hlslOffset.vert.out b/Test/baseResults/hlsl.hlslOffset.vert.out
index 0f7b09b..09545c8 100644
--- a/Test/baseResults/hlsl.hlslOffset.vert.out
+++ b/Test/baseResults/hlsl.hlslOffset.vert.out
@@ -26,7 +26,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.hull.1.tesc.out b/Test/baseResults/hlsl.hull.1.tesc.out
index 4188942..cba0f8b 100644
--- a/Test/baseResults/hlsl.hull.1.tesc.out
+++ b/Test/baseResults/hlsl.hull.1.tesc.out
@@ -324,7 +324,7 @@
 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 104
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.2.tesc.out b/Test/baseResults/hlsl.hull.2.tesc.out
index 0d08b68..4e8a50c 100644
--- a/Test/baseResults/hlsl.hull.2.tesc.out
+++ b/Test/baseResults/hlsl.hull.2.tesc.out
@@ -320,7 +320,7 @@
 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 106
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.3.tesc.out b/Test/baseResults/hlsl.hull.3.tesc.out
index 808edd3..f40a79e 100644
--- a/Test/baseResults/hlsl.hull.3.tesc.out
+++ b/Test/baseResults/hlsl.hull.3.tesc.out
@@ -320,7 +320,7 @@
 0:?     '@patchConstantOutput.edges' ( patch out 4-element array of float TessLevelOuter)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 106
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.4.tesc.out b/Test/baseResults/hlsl.hull.4.tesc.out
index bffc464..aa766ed 100644
--- a/Test/baseResults/hlsl.hull.4.tesc.out
+++ b/Test/baseResults/hlsl.hull.4.tesc.out
@@ -458,7 +458,7 @@
 0:?     '@patchConstantOutput.fInsideTessFactor' ( patch out 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 124
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.6.tesc.out b/Test/baseResults/hlsl.hull.6.tesc.out
index b673a8c..efb6e5b 100644
--- a/Test/baseResults/hlsl.hull.6.tesc.out
+++ b/Test/baseResults/hlsl.hull.6.tesc.out
@@ -450,7 +450,7 @@
 0:?     '@patchConstantOutput.Edges' ( patch out 4-element array of float TessLevelOuter)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 142
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out b/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
index 4e706c0..70881e9 100644
--- a/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
+++ b/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
@@ -472,7 +472,7 @@
 0:?     '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 135
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out b/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
index fd7cf0b..d59e163 100644
--- a/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
+++ b/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
@@ -490,7 +490,7 @@
 0:?     '@patchConstantOutput.flInFactor' ( patch out 2-element array of float TessLevelInner)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 137
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.hull.void.tesc.out b/Test/baseResults/hlsl.hull.void.tesc.out
index 244d1fc..2249360 100644
--- a/Test/baseResults/hlsl.hull.void.tesc.out
+++ b/Test/baseResults/hlsl.hull.void.tesc.out
@@ -184,7 +184,7 @@
 0:?     'InvocationId' ( in uint InvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Tessellation
diff --git a/Test/baseResults/hlsl.identifier.sample.frag.out b/Test/baseResults/hlsl.identifier.sample.frag.out
index bde7fdb..e0a89aa 100644
--- a/Test/baseResults/hlsl.identifier.sample.frag.out
+++ b/Test/baseResults/hlsl.identifier.sample.frag.out
@@ -86,7 +86,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out
index fafad92..e77c7ac 100644
--- a/Test/baseResults/hlsl.if.frag.out
+++ b/Test/baseResults/hlsl.if.frag.out
@@ -240,7 +240,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 117
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
index 6573820..ff201eb 100644
--- a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
+++ b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
@@ -410,7 +410,7 @@
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 186
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.imageload-subvec4.comp.out b/Test/baseResults/hlsl.imageload-subvec4.comp.out
index d54075f..4d038a1 100644
--- a/Test/baseResults/hlsl.imageload-subvec4.comp.out
+++ b/Test/baseResults/hlsl.imageload-subvec4.comp.out
@@ -266,7 +266,7 @@
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 138
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.implicitBool.frag.out b/Test/baseResults/hlsl.implicitBool.frag.out
index 381e835..dd93b7f 100644
--- a/Test/baseResults/hlsl.implicitBool.frag.out
+++ b/Test/baseResults/hlsl.implicitBool.frag.out
@@ -332,7 +332,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 139
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.include.vert.out b/Test/baseResults/hlsl.include.vert.out
index 95a5b90..f46658d 100644
--- a/Test/baseResults/hlsl.include.vert.out
+++ b/Test/baseResults/hlsl.include.vert.out
@@ -1,6 +1,6 @@
 ../Test/hlsl.include.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.inf.vert.out b/Test/baseResults/hlsl.inf.vert.out
index 50f6d56..bb9a184 100644
--- a/Test/baseResults/hlsl.inf.vert.out
+++ b/Test/baseResults/hlsl.inf.vert.out
@@ -112,7 +112,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out
index 35a89f0..f604f0a 100644
--- a/Test/baseResults/hlsl.init.frag.out
+++ b/Test/baseResults/hlsl.init.frag.out
@@ -331,7 +331,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float a, layout( row_major std140) uniform float b, layout( row_major std140) uniform float c})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 110
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out
index b8b7afc..5039333 100644
--- a/Test/baseResults/hlsl.init2.frag.out
+++ b/Test/baseResults/hlsl.init2.frag.out
@@ -358,7 +358,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 112
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out
index 931208b..25186cb 100644
--- a/Test/baseResults/hlsl.inoutquals.frag.out
+++ b/Test/baseResults/hlsl.inoutquals.frag.out
@@ -214,7 +214,7 @@
 0:?     'sampleMask' ( out 1-element array of int SampleMaskIn)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 92
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.instance.geom.out b/Test/baseResults/hlsl.instance.geom.out
index f2299ee..5fbffd9 100644
--- a/Test/baseResults/hlsl.instance.geom.out
+++ b/Test/baseResults/hlsl.instance.geom.out
@@ -282,7 +282,7 @@
 0:?     'output.m_color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 86
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.int.dot.frag.out b/Test/baseResults/hlsl.int.dot.frag.out
index 5c7edbb..3272cb4 100644
--- a/Test/baseResults/hlsl.int.dot.frag.out
+++ b/Test/baseResults/hlsl.int.dot.frag.out
@@ -224,7 +224,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsic.frexp.frag.out b/Test/baseResults/hlsl.intrinsic.frexp.frag.out
index c0c9109..1595a60 100644
--- a/Test/baseResults/hlsl.intrinsic.frexp.frag.out
+++ b/Test/baseResults/hlsl.intrinsic.frexp.frag.out
@@ -190,7 +190,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 98
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsic.frexp.vert.out b/Test/baseResults/hlsl.intrinsic.frexp.vert.out
index 41bb429..0418ed6 100644
--- a/Test/baseResults/hlsl.intrinsic.frexp.vert.out
+++ b/Test/baseResults/hlsl.intrinsic.frexp.vert.out
@@ -113,7 +113,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
index 4dfe8e0..abb9650 100644
--- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
@@ -40,7 +40,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out
index 56752af..bce3d14 100644
--- a/Test/baseResults/hlsl.intrinsics.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.comp.out
@@ -717,7 +717,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 265
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out b/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
index 75a66d6..b0eeaa9 100644
--- a/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
@@ -74,7 +74,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out
index d87fd2f..8444e20 100644
--- a/Test/baseResults/hlsl.intrinsics.double.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.double.frag.out
@@ -164,7 +164,7 @@
 0:?     'inU1b' (layout( location=9) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 90
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
index 52bbc4f..90a4b98 100644
--- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
@@ -270,7 +270,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 106
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.f3216.frag.out b/Test/baseResults/hlsl.intrinsics.f3216.frag.out
index c9a94b8..ddf9a70 100644
--- a/Test/baseResults/hlsl.intrinsics.f3216.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.f3216.frag.out
@@ -270,7 +270,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 106
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index 38857f8..02b1e6d 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -5659,7 +5659,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1839
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out
index 8307db5..ef5759e 100644
--- a/Test/baseResults/hlsl.intrinsics.lit.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out
@@ -118,7 +118,7 @@
 0:?     'm' (layout( location=2) in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 48
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out
index 6ea121a..c0a543c 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out
@@ -122,7 +122,7 @@
 0:?     'inI0' (layout( location=3) in 4-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 79
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out
index 9044abd..f1ab582 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out
@@ -308,7 +308,7 @@
 0:?     'inI0' (layout( location=3) in 4-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 155
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
index c68fc96..bd73fae 100644
--- a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
@@ -104,7 +104,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out
index 99176f1..18fd037 100644
--- a/Test/baseResults/hlsl.intrinsics.promote.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out
@@ -888,7 +888,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 322
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
index e0fbfe6..1abed4c 100644
--- a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
@@ -204,7 +204,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 80
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
index 611ff16..647570c 100644
--- a/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -2780,7 +2780,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1225
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.isfinite.frag.out b/Test/baseResults/hlsl.isfinite.frag.out
index e46e771..430ff06 100644
--- a/Test/baseResults/hlsl.isfinite.frag.out
+++ b/Test/baseResults/hlsl.isfinite.frag.out
@@ -172,7 +172,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 85
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out
index b2306d0..9007e93 100644
--- a/Test/baseResults/hlsl.layout.frag.out
+++ b/Test/baseResults/hlsl.layout.frag.out
@@ -88,7 +88,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.layoutOverride.vert.out b/Test/baseResults/hlsl.layoutOverride.vert.out
index 80c3e45..a3b8960 100644
--- a/Test/baseResults/hlsl.layoutOverride.vert.out
+++ b/Test/baseResults/hlsl.layoutOverride.vert.out
@@ -52,7 +52,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index 09086cb..daa28b2 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -336,7 +336,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 129
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
index 96792a9..0440779 100644
--- a/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -388,7 +388,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 159
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
index b9730f3..2aef83d 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -490,7 +490,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 179
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index c387d5f..8b9a04f 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -452,7 +452,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 171
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index b37e3c9..299bde1 100644
--- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -166,7 +166,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
index b248ed6..f7a530c 100644
--- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
@@ -172,7 +172,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 75
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index f8d4383..106af53 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -550,7 +550,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 205
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index bc5f632..04ea482 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -426,7 +426,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 176
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
index ed6f528..73a854b 100644
--- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
@@ -110,7 +110,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
index a94da2f..db105d7 100644
--- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
@@ -208,7 +208,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 119
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
index b00da80..c063e0c 100644
--- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
@@ -244,7 +244,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 132
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out
index e6f484e..d66eb7c 100644
--- a/Test/baseResults/hlsl.logical.binary.frag.out
+++ b/Test/baseResults/hlsl.logical.binary.frag.out
@@ -124,7 +124,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out
index 986d83f..20f87b8 100644
--- a/Test/baseResults/hlsl.logical.binary.vec.frag.out
+++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out
@@ -254,7 +254,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 115
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out
index cc933bb..711625d 100644
--- a/Test/baseResults/hlsl.logical.unary.frag.out
+++ b/Test/baseResults/hlsl.logical.unary.frag.out
@@ -184,7 +184,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.logicalConvert.frag.out b/Test/baseResults/hlsl.logicalConvert.frag.out
index 0e7bad1..44e1961 100644
--- a/Test/baseResults/hlsl.logicalConvert.frag.out
+++ b/Test/baseResults/hlsl.logicalConvert.frag.out
@@ -254,7 +254,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.loopattr.frag.out b/Test/baseResults/hlsl.loopattr.frag.out
index 2784dda..ea37109 100644
--- a/Test/baseResults/hlsl.loopattr.frag.out
+++ b/Test/baseResults/hlsl.loopattr.frag.out
@@ -136,7 +136,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matNx1.frag.out b/Test/baseResults/hlsl.matNx1.frag.out
index 91b2ec3..48a7180 100644
--- a/Test/baseResults/hlsl.matNx1.frag.out
+++ b/Test/baseResults/hlsl.matNx1.frag.out
@@ -153,7 +153,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 77
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matType.bool.frag.out b/Test/baseResults/hlsl.matType.bool.frag.out
index d7d4b7d..500b311 100644
--- a/Test/baseResults/hlsl.matType.bool.frag.out
+++ b/Test/baseResults/hlsl.matType.bool.frag.out
@@ -233,7 +233,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 130
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out
index 92d44a4..1117df1 100644
--- a/Test/baseResults/hlsl.matType.frag.out
+++ b/Test/baseResults/hlsl.matType.frag.out
@@ -32,7 +32,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matType.int.frag.out b/Test/baseResults/hlsl.matType.int.frag.out
index 551d41e..a99bd15 100644
--- a/Test/baseResults/hlsl.matType.int.frag.out
+++ b/Test/baseResults/hlsl.matType.int.frag.out
@@ -399,7 +399,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 232
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matpack-1.frag.out b/Test/baseResults/hlsl.matpack-1.frag.out
index 5af6c2b..c480f78 100644
--- a/Test/baseResults/hlsl.matpack-1.frag.out
+++ b/Test/baseResults/hlsl.matpack-1.frag.out
@@ -100,7 +100,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matpack-pragma-global.frag.out b/Test/baseResults/hlsl.matpack-pragma-global.frag.out
index d6afb4e..2feef9e 100644
--- a/Test/baseResults/hlsl.matpack-pragma-global.frag.out
+++ b/Test/baseResults/hlsl.matpack-pragma-global.frag.out
@@ -52,7 +52,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matpack-pragma.frag.out b/Test/baseResults/hlsl.matpack-pragma.frag.out
index aac5af5..bd5ca50 100644
--- a/Test/baseResults/hlsl.matpack-pragma.frag.out
+++ b/Test/baseResults/hlsl.matpack-pragma.frag.out
@@ -170,7 +170,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matrixSwizzle.vert.out b/Test/baseResults/hlsl.matrixSwizzle.vert.out
index 4b103ac..4082cb2 100644
--- a/Test/baseResults/hlsl.matrixSwizzle.vert.out
+++ b/Test/baseResults/hlsl.matrixSwizzle.vert.out
@@ -677,7 +677,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 118
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out
index cf75c05..fa7a8c0 100644
--- a/Test/baseResults/hlsl.matrixindex.frag.out
+++ b/Test/baseResults/hlsl.matrixindex.frag.out
@@ -272,7 +272,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 83
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out
index 058786c..7a0c5d2 100644
--- a/Test/baseResults/hlsl.max.frag.out
+++ b/Test/baseResults/hlsl.max.frag.out
@@ -66,7 +66,7 @@
 0:?     'input2' (layout( location=1) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.memberFunCall.frag.out b/Test/baseResults/hlsl.memberFunCall.frag.out
index 7898376..2886f8f 100644
--- a/Test/baseResults/hlsl.memberFunCall.frag.out
+++ b/Test/baseResults/hlsl.memberFunCall.frag.out
@@ -152,7 +152,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 73
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out
index 07f28c3..013f8d4 100644
--- a/Test/baseResults/hlsl.mintypes.frag.out
+++ b/Test/baseResults/hlsl.mintypes.frag.out
@@ -98,7 +98,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.mip.operator.frag.out b/Test/baseResults/hlsl.mip.operator.frag.out
index 2c03a26..48e563c 100644
--- a/Test/baseResults/hlsl.mip.operator.frag.out
+++ b/Test/baseResults/hlsl.mip.operator.frag.out
@@ -128,7 +128,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 61
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.mul-truncate.frag.out b/Test/baseResults/hlsl.mul-truncate.frag.out
index 806d241..25e7b2e 100644
--- a/Test/baseResults/hlsl.mul-truncate.frag.out
+++ b/Test/baseResults/hlsl.mul-truncate.frag.out
@@ -383,7 +383,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 190
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.multiDescriptorSet.frag.out b/Test/baseResults/hlsl.multiDescriptorSet.frag.out
index d79b121..cfe3ea8 100644
--- a/Test/baseResults/hlsl.multiDescriptorSet.frag.out
+++ b/Test/baseResults/hlsl.multiDescriptorSet.frag.out
@@ -1,6 +1,6 @@
 hlsl.multiDescriptorSet.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 92
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out
index 0e31ed6..fcb9f18 100644
--- a/Test/baseResults/hlsl.multiEntry.vert.out
+++ b/Test/baseResults/hlsl.multiEntry.vert.out
@@ -70,7 +70,7 @@
 0:?     'Index' ( in uint VertexIndex)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 41
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.multiReturn.frag.out b/Test/baseResults/hlsl.multiReturn.frag.out
index fbe7fbf..9379863 100644
--- a/Test/baseResults/hlsl.multiReturn.frag.out
+++ b/Test/baseResults/hlsl.multiReturn.frag.out
@@ -48,7 +48,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m} s})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.namespace.frag.out b/Test/baseResults/hlsl.namespace.frag.out
index c01089a..e224eb9 100644
--- a/Test/baseResults/hlsl.namespace.frag.out
+++ b/Test/baseResults/hlsl.namespace.frag.out
@@ -100,7 +100,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.noSemantic.functionality1.comp.out b/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
index 1121e0b..3531a34 100644
--- a/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
+++ b/Test/baseResults/hlsl.noSemantic.functionality1.comp.out
@@ -1,6 +1,6 @@
 hlsl.noSemantic.functionality1.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.nonint-index.frag.out b/Test/baseResults/hlsl.nonint-index.frag.out
index 71502ee..897f8bc 100644
--- a/Test/baseResults/hlsl.nonint-index.frag.out
+++ b/Test/baseResults/hlsl.nonint-index.frag.out
@@ -88,7 +88,7 @@
 0:?     'input' (layout( location=0) in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out b/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
index 3cbae1e..5a485c6 100644
--- a/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
+++ b/Test/baseResults/hlsl.nonstaticMemberFunction.frag.out
@@ -268,7 +268,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 111
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out
index 02f7d2a..1725d3f 100644
--- a/Test/baseResults/hlsl.numericsuffixes.frag.out
+++ b/Test/baseResults/hlsl.numericsuffixes.frag.out
@@ -192,7 +192,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out
index 49fa4f3..c8676e3 100644
--- a/Test/baseResults/hlsl.numthreads.comp.out
+++ b/Test/baseResults/hlsl.numthreads.comp.out
@@ -44,7 +44,7 @@
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.opaque-type-bug.frag.out b/Test/baseResults/hlsl.opaque-type-bug.frag.out
index d82509d..738fa4f 100644
--- a/Test/baseResults/hlsl.opaque-type-bug.frag.out
+++ b/Test/baseResults/hlsl.opaque-type-bug.frag.out
@@ -58,7 +58,7 @@
 0:?     'MyTexture' (layout( binding=0) uniform texture2D)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out
index 460262e..4cfc391 100644
--- a/Test/baseResults/hlsl.overload.frag.out
+++ b/Test/baseResults/hlsl.overload.frag.out
@@ -734,7 +734,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 520
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.params.default.frag.out b/Test/baseResults/hlsl.params.default.frag.out
index be1f641..6898240 100644
--- a/Test/baseResults/hlsl.params.default.frag.out
+++ b/Test/baseResults/hlsl.params.default.frag.out
@@ -376,7 +376,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 178
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
index 6a1b1de..7bcc879 100644
--- a/Test/baseResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
@@ -237,7 +237,7 @@
 0:?     'pos' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 93
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.partialFlattenMixed.vert.out b/Test/baseResults/hlsl.partialFlattenMixed.vert.out
index eae3c98..c9fcc6f 100644
--- a/Test/baseResults/hlsl.partialFlattenMixed.vert.out
+++ b/Test/baseResults/hlsl.partialFlattenMixed.vert.out
@@ -91,7 +91,7 @@
 0:?     'pos' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out
index d3ce42e..4686566 100644
--- a/Test/baseResults/hlsl.partialInit.frag.out
+++ b/Test/baseResults/hlsl.partialInit.frag.out
@@ -400,7 +400,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 104
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out
index 3478c66..68476d2 100644
--- a/Test/baseResults/hlsl.pp.line.frag.out
+++ b/Test/baseResults/hlsl.pp.line.frag.out
@@ -120,7 +120,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.pp.line2.frag.out b/Test/baseResults/hlsl.pp.line2.frag.out
index 1c73bce..e92d7e2 100644
--- a/Test/baseResults/hlsl.pp.line2.frag.out
+++ b/Test/baseResults/hlsl.pp.line2.frag.out
@@ -1,6 +1,6 @@
 hlsl.pp.line2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 80
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.pp.line3.frag.out b/Test/baseResults/hlsl.pp.line3.frag.out
index 717a21b..0cf250a 100644
--- a/Test/baseResults/hlsl.pp.line3.frag.out
+++ b/Test/baseResults/hlsl.pp.line3.frag.out
@@ -1,6 +1,6 @@
 hlsl.pp.line3.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.pp.line4.frag.out b/Test/baseResults/hlsl.pp.line4.frag.out
index da968b2..a9b9664 100644
--- a/Test/baseResults/hlsl.pp.line4.frag.out
+++ b/Test/baseResults/hlsl.pp.line4.frag.out
@@ -1,6 +1,6 @@
 hlsl.pp.line4.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 116
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.pp.vert.out b/Test/baseResults/hlsl.pp.vert.out
index 652cf17..5478101 100644
--- a/Test/baseResults/hlsl.pp.vert.out
+++ b/Test/baseResults/hlsl.pp.vert.out
@@ -26,7 +26,7 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int goodGlobal1,  uniform int goodGlobal2})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 13
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out
index 4dd025a..3992618 100644
--- a/Test/baseResults/hlsl.precedence.frag.out
+++ b/Test/baseResults/hlsl.precedence.frag.out
@@ -148,7 +148,7 @@
 0:?     'a4' (layout( location=3) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out
index 1611d5a..f231b35 100644
--- a/Test/baseResults/hlsl.precedence2.frag.out
+++ b/Test/baseResults/hlsl.precedence2.frag.out
@@ -114,7 +114,7 @@
 0:?     'a4' (layout( location=3) flat in int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out
index 2d134b8..39e3578 100644
--- a/Test/baseResults/hlsl.precise.frag.out
+++ b/Test/baseResults/hlsl.precise.frag.out
@@ -76,7 +76,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) noContraction out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.preprocessor.frag.out b/Test/baseResults/hlsl.preprocessor.frag.out
index 106762b..754d0d8 100644
--- a/Test/baseResults/hlsl.preprocessor.frag.out
+++ b/Test/baseResults/hlsl.preprocessor.frag.out
@@ -94,7 +94,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.printf.comp.out b/Test/baseResults/hlsl.printf.comp.out
index c4768a2..ea31c35 100644
--- a/Test/baseResults/hlsl.printf.comp.out
+++ b/Test/baseResults/hlsl.printf.comp.out
@@ -126,7 +126,7 @@
 0:?       "first string"
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.promote.atomic.frag.out b/Test/baseResults/hlsl.promote.atomic.frag.out
index 91b1d58..a34b7dd 100644
--- a/Test/baseResults/hlsl.promote.atomic.frag.out
+++ b/Test/baseResults/hlsl.promote.atomic.frag.out
@@ -64,7 +64,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out
index f9f57a4..a0007c3 100644
--- a/Test/baseResults/hlsl.promote.binary.frag.out
+++ b/Test/baseResults/hlsl.promote.binary.frag.out
@@ -172,7 +172,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 83
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out
index 7bdaf45..11e324f 100644
--- a/Test/baseResults/hlsl.promote.vec1.frag.out
+++ b/Test/baseResults/hlsl.promote.vec1.frag.out
@@ -80,7 +80,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out
index 6d73cc7..f135406 100644
--- a/Test/baseResults/hlsl.promotions.frag.out
+++ b/Test/baseResults/hlsl.promotions.frag.out
@@ -1582,7 +1582,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 596
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.round.dx10.frag.out b/Test/baseResults/hlsl.round.dx10.frag.out
index f8597d4..be72dc5 100644
--- a/Test/baseResults/hlsl.round.dx10.frag.out
+++ b/Test/baseResults/hlsl.round.dx10.frag.out
@@ -29,7 +29,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.round.dx9.frag.out b/Test/baseResults/hlsl.round.dx9.frag.out
index d4ff02a..ecf58a7 100644
--- a/Test/baseResults/hlsl.round.dx9.frag.out
+++ b/Test/baseResults/hlsl.round.dx9.frag.out
@@ -29,7 +29,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out
index 83169f1..06bc317 100644
--- a/Test/baseResults/hlsl.rw.atomics.frag.out
+++ b/Test/baseResults/hlsl.rw.atomics.frag.out
@@ -3946,7 +3946,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1147
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out
index 02ed379..c79877c 100644
--- a/Test/baseResults/hlsl.rw.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.bracket.frag.out
@@ -1744,7 +1744,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 607
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out
index 558bf42..265eaf9 100644
--- a/Test/baseResults/hlsl.rw.register.frag.out
+++ b/Test/baseResults/hlsl.rw.register.frag.out
@@ -98,7 +98,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index f2bef19..8e4716b 100644
--- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -1690,7 +1690,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 607
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.swizzle.frag.out b/Test/baseResults/hlsl.rw.swizzle.frag.out
index 5121ceb..97dd0dc 100644
--- a/Test/baseResults/hlsl.rw.swizzle.frag.out
+++ b/Test/baseResults/hlsl.rw.swizzle.frag.out
@@ -202,7 +202,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 63
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index a0c639b..1f77a77 100644
--- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -1708,7 +1708,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 711
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 1acca18..28d96f0 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -322,7 +322,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 146
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index e306317..12c6711 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -550,7 +550,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.dx9.frag.out b/Test/baseResults/hlsl.sample.dx9.frag.out
index 04eb9d3..2b19a2c 100644
--- a/Test/baseResults/hlsl.sample.dx9.frag.out
+++ b/Test/baseResults/hlsl.sample.dx9.frag.out
@@ -378,7 +378,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 135
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.dx9.vert.out b/Test/baseResults/hlsl.sample.dx9.vert.out
index 59878a9..0cd98f2 100644
--- a/Test/baseResults/hlsl.sample.dx9.vert.out
+++ b/Test/baseResults/hlsl.sample.dx9.vert.out
@@ -154,7 +154,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 64
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 0a351b4..e5d204f 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -364,7 +364,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 161
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index 0770e0b..5b14c65 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -274,7 +274,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 118
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
index ea0e4e2..8754a03 100644
--- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
@@ -154,7 +154,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index f59fc81..e177d77 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -358,7 +358,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 146
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index 919be71..2f15b42 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -424,7 +424,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 170
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index 5b29757..291f624 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -400,7 +400,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 161
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index c3114a1..a5bb613 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -298,7 +298,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 118
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
index caddcee..0ab61eb 100644
--- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -399,7 +399,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 209
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
index fde1b58..c178c57 100644
--- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -381,7 +381,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
index 7f17e90..6859f6d 100644
--- a/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.dualmode.frag.out
@@ -85,7 +85,7 @@
 0:?     'g_tTex' (layout( binding=3) uniform texture1D)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
index cc1b858..1e50d7b 100644
--- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -327,7 +327,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 167
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
index 9d8413c..3b1eb6f 100644
--- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -339,7 +339,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 178
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
index 45e33ff..a734e54 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -435,7 +435,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 210
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
index 6807d99..54135cd 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -417,7 +417,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 199
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
index 338a5e7..4922cde 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -351,7 +351,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 168
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
index 4b68c90..22bd257 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -363,7 +363,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 179
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index a2e58bd..67e1d15 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -430,7 +430,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 140
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index 09bfbdf..8f2fabc 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -532,7 +532,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 175
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index f63d9e8..6982090 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -494,7 +494,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 166
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index 3180e7a..5694f89 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -472,7 +472,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 166
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index ce79969..a3bc4c1 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -340,7 +340,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 120
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index 7f3af78..68e0e87 100644
--- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -358,7 +358,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 147
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index e1d449f..ee3588d 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -426,7 +426,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 172
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index bbb51f3..a3ff9e6 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -386,7 +386,7 @@
 0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 162
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index 1b06c57..c9d431b 100644
--- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -400,7 +400,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 162
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index e256054..3f6ae55 100644
--- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -298,7 +298,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 119
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.scalar-length.frag.out b/Test/baseResults/hlsl.scalar-length.frag.out
index fd5f0b8..c09216a 100644
--- a/Test/baseResults/hlsl.scalar-length.frag.out
+++ b/Test/baseResults/hlsl.scalar-length.frag.out
@@ -64,7 +64,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.scalar2matrix.frag.out b/Test/baseResults/hlsl.scalar2matrix.frag.out
index ee0c3db..62980dd 100644
--- a/Test/baseResults/hlsl.scalar2matrix.frag.out
+++ b/Test/baseResults/hlsl.scalar2matrix.frag.out
@@ -374,7 +374,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 96
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.scalarCast.vert.out b/Test/baseResults/hlsl.scalarCast.vert.out
index f10f86c..17356f9 100644
--- a/Test/baseResults/hlsl.scalarCast.vert.out
+++ b/Test/baseResults/hlsl.scalarCast.vert.out
@@ -322,7 +322,7 @@
 0:?     '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 120
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out
index 24f452c..5d73bba 100644
--- a/Test/baseResults/hlsl.scope.frag.out
+++ b/Test/baseResults/hlsl.scope.frag.out
@@ -102,7 +102,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 49
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.self_cast.frag.out b/Test/baseResults/hlsl.self_cast.frag.out
index 1328833..ad4252b 100644
--- a/Test/baseResults/hlsl.self_cast.frag.out
+++ b/Test/baseResults/hlsl.self_cast.frag.out
@@ -68,7 +68,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.semantic-1.vert.out b/Test/baseResults/hlsl.semantic-1.vert.out
index 191afbc..25fb582 100644
--- a/Test/baseResults/hlsl.semantic-1.vert.out
+++ b/Test/baseResults/hlsl.semantic-1.vert.out
@@ -242,7 +242,7 @@
 0:?     'v' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.semantic.geom.out b/Test/baseResults/hlsl.semantic.geom.out
index 740f4a2..0aba000 100644
--- a/Test/baseResults/hlsl.semantic.geom.out
+++ b/Test/baseResults/hlsl.semantic.geom.out
@@ -261,7 +261,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 88
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.semantic.vert.out b/Test/baseResults/hlsl.semantic.vert.out
index 41edff2..c17969a 100644
--- a/Test/baseResults/hlsl.semantic.vert.out
+++ b/Test/baseResults/hlsl.semantic.vert.out
@@ -211,7 +211,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out
index 347190e..1afcd5b 100644
--- a/Test/baseResults/hlsl.semicolons.frag.out
+++ b/Test/baseResults/hlsl.semicolons.frag.out
@@ -74,7 +74,7 @@
 0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out
index 05bfa6a..d3b17f0 100644
--- a/Test/baseResults/hlsl.shapeConv.frag.out
+++ b/Test/baseResults/hlsl.shapeConv.frag.out
@@ -319,7 +319,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 127
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.shapeConvRet.frag.out b/Test/baseResults/hlsl.shapeConvRet.frag.out
index a23478c..e3e27a2 100644
--- a/Test/baseResults/hlsl.shapeConvRet.frag.out
+++ b/Test/baseResults/hlsl.shapeConvRet.frag.out
@@ -68,7 +68,7 @@
 0:?     'f' (layout( location=0) in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out
index 1f44be5..bf88ce8 100644
--- a/Test/baseResults/hlsl.sin.frag.out
+++ b/Test/baseResults/hlsl.sin.frag.out
@@ -52,7 +52,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.singleArgIntPromo.vert.out b/Test/baseResults/hlsl.singleArgIntPromo.vert.out
index a5bf362..a610594 100644
--- a/Test/baseResults/hlsl.singleArgIntPromo.vert.out
+++ b/Test/baseResults/hlsl.singleArgIntPromo.vert.out
@@ -194,7 +194,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 75
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.snorm.uav.comp.out b/Test/baseResults/hlsl.snorm.uav.comp.out
index 40ab6cf..7b8cd41 100644
--- a/Test/baseResults/hlsl.snorm.uav.comp.out
+++ b/Test/baseResults/hlsl.snorm.uav.comp.out
@@ -112,7 +112,7 @@
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.specConstant.frag.out b/Test/baseResults/hlsl.specConstant.frag.out
index 3d81789..eb62242 100644
--- a/Test/baseResults/hlsl.specConstant.frag.out
+++ b/Test/baseResults/hlsl.specConstant.frag.out
@@ -136,7 +136,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 61
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.spv.1.6.discard.frag.out b/Test/baseResults/hlsl.spv.1.6.discard.frag.out
index 0d09d25..d521914 100644
--- a/Test/baseResults/hlsl.spv.1.6.discard.frag.out
+++ b/Test/baseResults/hlsl.spv.1.6.discard.frag.out
@@ -108,7 +108,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 47
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.staticFuncInit.frag.out b/Test/baseResults/hlsl.staticFuncInit.frag.out
index 9e1e4a8..586dace 100644
--- a/Test/baseResults/hlsl.staticFuncInit.frag.out
+++ b/Test/baseResults/hlsl.staticFuncInit.frag.out
@@ -130,7 +130,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.staticMemberFunction.frag.out b/Test/baseResults/hlsl.staticMemberFunction.frag.out
index 9cd3d38..f0e5f9f 100644
--- a/Test/baseResults/hlsl.staticMemberFunction.frag.out
+++ b/Test/baseResults/hlsl.staticMemberFunction.frag.out
@@ -118,7 +118,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
index 2198aff..e518821 100644
--- a/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
+++ b/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out
@@ -96,7 +96,7 @@
 0:?     'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.string.frag.out b/Test/baseResults/hlsl.string.frag.out
index 2a5ce37..047f413 100644
--- a/Test/baseResults/hlsl.string.frag.out
+++ b/Test/baseResults/hlsl.string.frag.out
@@ -50,7 +50,7 @@
 0:?     'f' (layout( location=0) in float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out
index 144bebc..f2ca742 100644
--- a/Test/baseResults/hlsl.stringtoken.frag.out
+++ b/Test/baseResults/hlsl.stringtoken.frag.out
@@ -70,7 +70,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out
index a36bba4..7330f56 100644
--- a/Test/baseResults/hlsl.struct.frag.out
+++ b/Test/baseResults/hlsl.struct.frag.out
@@ -213,7 +213,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 102
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.struct.split-1.vert.out b/Test/baseResults/hlsl.struct.split-1.vert.out
index 89b4e4e..f204bd5 100644
--- a/Test/baseResults/hlsl.struct.split-1.vert.out
+++ b/Test/baseResults/hlsl.struct.split-1.vert.out
@@ -196,7 +196,7 @@
 0:?     'Pos_loose' (layout( location=3) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.struct.split.array.geom.out b/Test/baseResults/hlsl.struct.split.array.geom.out
index 0e3e852..3d75fb8 100644
--- a/Test/baseResults/hlsl.struct.split.array.geom.out
+++ b/Test/baseResults/hlsl.struct.split.array.geom.out
@@ -160,7 +160,7 @@
 0:?     'OutputStream.VertexID' (layout( location=2) out uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 82
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.struct.split.assign.frag.out b/Test/baseResults/hlsl.struct.split.assign.frag.out
index 16c897b..c40dbd6 100644
--- a/Test/baseResults/hlsl.struct.split.assign.frag.out
+++ b/Test/baseResults/hlsl.struct.split.assign.frag.out
@@ -209,7 +209,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.struct.split.call.vert.out b/Test/baseResults/hlsl.struct.split.call.vert.out
index 7451a34..2570552 100644
--- a/Test/baseResults/hlsl.struct.split.call.vert.out
+++ b/Test/baseResults/hlsl.struct.split.call.vert.out
@@ -214,7 +214,7 @@
 0:?     'vsin.x1_in' (layout( location=2) in int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 77
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.struct.split.nested.geom.out b/Test/baseResults/hlsl.struct.split.nested.geom.out
index 9bab38c..1abe4c3 100644
--- a/Test/baseResults/hlsl.struct.split.nested.geom.out
+++ b/Test/baseResults/hlsl.struct.split.nested.geom.out
@@ -430,7 +430,7 @@
 0:?     'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 99
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.struct.split.trivial.geom.out b/Test/baseResults/hlsl.struct.split.trivial.geom.out
index f46316f..89c02bf 100644
--- a/Test/baseResults/hlsl.struct.split.trivial.geom.out
+++ b/Test/baseResults/hlsl.struct.split.trivial.geom.out
@@ -192,7 +192,7 @@
 0:?     'ts.pos' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.struct.split.trivial.vert.out b/Test/baseResults/hlsl.struct.split.trivial.vert.out
index 065f422..f1470ab 100644
--- a/Test/baseResults/hlsl.struct.split.trivial.vert.out
+++ b/Test/baseResults/hlsl.struct.split.trivial.vert.out
@@ -98,7 +98,7 @@
 0:?     'Pos_loose' (layout( location=1) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structIoFourWay.frag.out b/Test/baseResults/hlsl.structIoFourWay.frag.out
index 3faff5b..fd1a8bb 100644
--- a/Test/baseResults/hlsl.structIoFourWay.frag.out
+++ b/Test/baseResults/hlsl.structIoFourWay.frag.out
@@ -162,7 +162,7 @@
 0:?     't.normal' (layout( location=3) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structStructName.frag.out b/Test/baseResults/hlsl.structStructName.frag.out
index ce305b0..3fdbca9 100644
--- a/Test/baseResults/hlsl.structStructName.frag.out
+++ b/Test/baseResults/hlsl.structStructName.frag.out
@@ -44,7 +44,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structarray.flatten.frag.out b/Test/baseResults/hlsl.structarray.flatten.frag.out
index 4896dca..97e57b1 100644
--- a/Test/baseResults/hlsl.structarray.flatten.frag.out
+++ b/Test/baseResults/hlsl.structarray.flatten.frag.out
@@ -157,7 +157,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 80
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structarray.flatten.geom.out b/Test/baseResults/hlsl.structarray.flatten.geom.out
index e36e5f0..619dccf 100644
--- a/Test/baseResults/hlsl.structarray.flatten.geom.out
+++ b/Test/baseResults/hlsl.structarray.flatten.geom.out
@@ -314,7 +314,7 @@
 0:?     'outStream.uv' (layout( location=1) out 2-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 82
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
index acfbf5d..a4e540f 100644
--- a/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.append.fn.frag.out
@@ -151,7 +151,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.append.frag.out b/Test/baseResults/hlsl.structbuffer.append.frag.out
index 4c57e0b..518b67f 100644
--- a/Test/baseResults/hlsl.structbuffer.append.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.append.frag.out
@@ -124,7 +124,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.atomics.frag.out b/Test/baseResults/hlsl.structbuffer.atomics.frag.out
index 3f26652..ba874ee 100644
--- a/Test/baseResults/hlsl.structbuffer.atomics.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.atomics.frag.out
@@ -475,7 +475,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 87
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.byte.frag.out b/Test/baseResults/hlsl.structbuffer.byte.frag.out
index f3e92ce..b5252bc 100644
--- a/Test/baseResults/hlsl.structbuffer.byte.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.byte.frag.out
@@ -324,7 +324,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 114
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.coherent.frag.out b/Test/baseResults/hlsl.structbuffer.coherent.frag.out
index 65e4a14..3d97ee5 100644
--- a/Test/baseResults/hlsl.structbuffer.coherent.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.coherent.frag.out
@@ -176,7 +176,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
index 6a86e48..a7668a7 100644
--- a/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
+++ b/Test/baseResults/hlsl.structbuffer.floatidx.comp.out
@@ -180,7 +180,7 @@
 0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 85
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.fn.frag.out b/Test/baseResults/hlsl.structbuffer.fn.frag.out
index 2086d59..bd2a4e6 100644
--- a/Test/baseResults/hlsl.structbuffer.fn.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.fn.frag.out
@@ -139,7 +139,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.fn2.comp.out b/Test/baseResults/hlsl.structbuffer.fn2.comp.out
index 1953d46..3409a5f 100644
--- a/Test/baseResults/hlsl.structbuffer.fn2.comp.out
+++ b/Test/baseResults/hlsl.structbuffer.fn2.comp.out
@@ -136,7 +136,7 @@
 0:?     'dispatchId' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 63
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.frag.out b/Test/baseResults/hlsl.structbuffer.frag.out
index 0e16ef1..294a1c6 100644
--- a/Test/baseResults/hlsl.structbuffer.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.frag.out
@@ -188,7 +188,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 96
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out b/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
index 95b13a8..23b2125 100644
--- a/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
+++ b/Test/baseResults/hlsl.structbuffer.incdec.frag.hlslfun1.out
@@ -1,6 +1,6 @@
 hlsl.structbuffer.incdec.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.incdec.frag.out b/Test/baseResults/hlsl.structbuffer.incdec.frag.out
index 72efcc0..2605777 100644
--- a/Test/baseResults/hlsl.structbuffer.incdec.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.incdec.frag.out
@@ -204,7 +204,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.rw.frag.out b/Test/baseResults/hlsl.structbuffer.rw.frag.out
index 9dfdaf0..1eb98aa 100644
--- a/Test/baseResults/hlsl.structbuffer.rw.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.rw.frag.out
@@ -176,7 +176,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 78
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
index 5fdbd1d..337442d 100644
--- a/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
+++ b/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out
@@ -1004,7 +1004,7 @@
 0:?     'pos' (layout( location=0) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 239
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out b/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out
index b024bd4..127d52c 100644
--- a/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out
+++ b/Test/baseResults/hlsl.structbuffer.rwbyte2.comp.out
@@ -76,7 +76,7 @@
 0:?     'g_bbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out
index 04a64e7..85f6346 100644
--- a/Test/baseResults/hlsl.structin.vert.out
+++ b/Test/baseResults/hlsl.structin.vert.out
@@ -340,7 +340,7 @@
 0:?     'e' (layout( location=5) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 94
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.subpass.frag.out b/Test/baseResults/hlsl.subpass.frag.out
index 942ef5e..2aca628 100644
--- a/Test/baseResults/hlsl.subpass.frag.out
+++ b/Test/baseResults/hlsl.subpass.frag.out
@@ -430,7 +430,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 204
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out
index 2ee9bd9..c239640 100644
--- a/Test/baseResults/hlsl.switch.frag.out
+++ b/Test/baseResults/hlsl.switch.frag.out
@@ -296,7 +296,7 @@
 0:?     'd' (layout( location=2) flat in int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 106
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out
index afb81de..88ea3cc 100644
--- a/Test/baseResults/hlsl.swizzle.frag.out
+++ b/Test/baseResults/hlsl.swizzle.frag.out
@@ -77,7 +77,7 @@
 0:?     'AmbientColor' ( global 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.synthesizeInput.frag.out b/Test/baseResults/hlsl.synthesizeInput.frag.out
index 5462e64..316a352 100644
--- a/Test/baseResults/hlsl.synthesizeInput.frag.out
+++ b/Test/baseResults/hlsl.synthesizeInput.frag.out
@@ -98,7 +98,7 @@
 0:?     'input.no_interp' (layout( location=1) flat in uint)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.target.frag.out b/Test/baseResults/hlsl.target.frag.out
index 9e86746..8bfaa2b 100644
--- a/Test/baseResults/hlsl.target.frag.out
+++ b/Test/baseResults/hlsl.target.frag.out
@@ -114,7 +114,7 @@
 0:?     'out2' (layout( location=3) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.targetStruct1.frag.out b/Test/baseResults/hlsl.targetStruct1.frag.out
index 0be96d1..095d15d 100644
--- a/Test/baseResults/hlsl.targetStruct1.frag.out
+++ b/Test/baseResults/hlsl.targetStruct1.frag.out
@@ -184,7 +184,7 @@
 0:?     'po' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.targetStruct2.frag.out b/Test/baseResults/hlsl.targetStruct2.frag.out
index 2fa4765..c57ae00 100644
--- a/Test/baseResults/hlsl.targetStruct2.frag.out
+++ b/Test/baseResults/hlsl.targetStruct2.frag.out
@@ -184,7 +184,7 @@
 0:?     'po' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out
index 5624c28..842ed0d 100644
--- a/Test/baseResults/hlsl.templatetypes.frag.out
+++ b/Test/baseResults/hlsl.templatetypes.frag.out
@@ -508,7 +508,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 153
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.texture.struct.frag.out b/Test/baseResults/hlsl.texture.struct.frag.out
index ba632be..bf9ab68 100644
--- a/Test/baseResults/hlsl.texture.struct.frag.out
+++ b/Test/baseResults/hlsl.texture.struct.frag.out
@@ -839,7 +839,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 240
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.texture.subvec4.frag.out b/Test/baseResults/hlsl.texture.subvec4.frag.out
index 9c3b741..1a7816d 100644
--- a/Test/baseResults/hlsl.texture.subvec4.frag.out
+++ b/Test/baseResults/hlsl.texture.subvec4.frag.out
@@ -356,7 +356,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 130
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.texturebuffer.frag.out b/Test/baseResults/hlsl.texturebuffer.frag.out
index ae1d4f7..37e19c2 100644
--- a/Test/baseResults/hlsl.texturebuffer.frag.out
+++ b/Test/baseResults/hlsl.texturebuffer.frag.out
@@ -70,7 +70,7 @@
 0:?     'pos' ( in 4-component vector of float FragCoord)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.this.frag.out b/Test/baseResults/hlsl.this.frag.out
index 6e4a8a0..e6b54cf 100644
--- a/Test/baseResults/hlsl.this.frag.out
+++ b/Test/baseResults/hlsl.this.frag.out
@@ -240,7 +240,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 98
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.tristream-append.geom.out b/Test/baseResults/hlsl.tristream-append.geom.out
index 630f2d3..53e8c04 100644
--- a/Test/baseResults/hlsl.tristream-append.geom.out
+++ b/Test/baseResults/hlsl.tristream-append.geom.out
@@ -157,7 +157,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Geometry
diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out
index 07f1909..424b848 100644
--- a/Test/baseResults/hlsl.tx.bracket.frag.out
+++ b/Test/baseResults/hlsl.tx.bracket.frag.out
@@ -422,7 +422,7 @@
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 188
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.tx.overload.frag.out b/Test/baseResults/hlsl.tx.overload.frag.out
index df1bb20..7fb0640 100644
--- a/Test/baseResults/hlsl.tx.overload.frag.out
+++ b/Test/baseResults/hlsl.tx.overload.frag.out
@@ -134,7 +134,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 73
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.type.half.frag.out b/Test/baseResults/hlsl.type.half.frag.out
index f12838b..68f1b24 100644
--- a/Test/baseResults/hlsl.type.half.frag.out
+++ b/Test/baseResults/hlsl.type.half.frag.out
@@ -164,7 +164,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.type.identifier.frag.out b/Test/baseResults/hlsl.type.identifier.frag.out
index 6130fda..5705fb7 100644
--- a/Test/baseResults/hlsl.type.identifier.frag.out
+++ b/Test/baseResults/hlsl.type.identifier.frag.out
@@ -266,7 +266,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 105
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.type.type.conversion.valid.frag.out b/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
index fe802db..7320074 100644
--- a/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
+++ b/Test/baseResults/hlsl.type.type.conversion.valid.frag.out
@@ -1364,7 +1364,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 122
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.typeGraphCopy.vert.out b/Test/baseResults/hlsl.typeGraphCopy.vert.out
index e380547..cedf601 100644
--- a/Test/baseResults/hlsl.typeGraphCopy.vert.out
+++ b/Test/baseResults/hlsl.typeGraphCopy.vert.out
@@ -62,7 +62,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out
index ecb8dbd..d925124 100644
--- a/Test/baseResults/hlsl.typedef.frag.out
+++ b/Test/baseResults/hlsl.typedef.frag.out
@@ -79,7 +79,7 @@
 0:?   Linker Objects
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out
index 48c43c6..f93cca0 100644
--- a/Test/baseResults/hlsl.void.frag.out
+++ b/Test/baseResults/hlsl.void.frag.out
@@ -54,7 +54,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.w-recip.frag.out b/Test/baseResults/hlsl.w-recip.frag.out
index a4fc494..b72f361 100644
--- a/Test/baseResults/hlsl.w-recip.frag.out
+++ b/Test/baseResults/hlsl.w-recip.frag.out
@@ -162,7 +162,7 @@
 0:?     'vpos' ( in 4-component vector of float FragCoord)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 69
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.w-recip2.frag.out b/Test/baseResults/hlsl.w-recip2.frag.out
index 2157ce4..6fee15c 100644
--- a/Test/baseResults/hlsl.w-recip2.frag.out
+++ b/Test/baseResults/hlsl.w-recip2.frag.out
@@ -178,7 +178,7 @@
 0:?     'VSOut.TexCoord' (layout( location=2) in 2-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 75
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavebroadcast.comp.out b/Test/baseResults/hlsl.wavebroadcast.comp.out
index 49d3b87..01bc953 100644
--- a/Test/baseResults/hlsl.wavebroadcast.comp.out
+++ b/Test/baseResults/hlsl.wavebroadcast.comp.out
@@ -2298,7 +2298,7 @@
 0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 393
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.waveprefix.comp.out b/Test/baseResults/hlsl.waveprefix.comp.out
index e2991bf..e4e942c 100644
--- a/Test/baseResults/hlsl.waveprefix.comp.out
+++ b/Test/baseResults/hlsl.waveprefix.comp.out
@@ -2322,7 +2322,7 @@
 0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 403
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavequad.comp.out b/Test/baseResults/hlsl.wavequad.comp.out
index 6d4ab5b..e4311c7 100644
--- a/Test/baseResults/hlsl.wavequad.comp.out
+++ b/Test/baseResults/hlsl.wavequad.comp.out
@@ -8026,7 +8026,7 @@
 0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1232
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavequery.comp.out b/Test/baseResults/hlsl.wavequery.comp.out
index a380808..dcd11ae 100644
--- a/Test/baseResults/hlsl.wavequery.comp.out
+++ b/Test/baseResults/hlsl.wavequery.comp.out
@@ -60,7 +60,7 @@
 0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data})
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavequery.frag.out b/Test/baseResults/hlsl.wavequery.frag.out
index bb5147a..df1b596 100644
--- a/Test/baseResults/hlsl.wavequery.frag.out
+++ b/Test/baseResults/hlsl.wavequery.frag.out
@@ -72,7 +72,7 @@
 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavereduction.comp.out b/Test/baseResults/hlsl.wavereduction.comp.out
index a4393fe..64a4e7c 100644
--- a/Test/baseResults/hlsl.wavereduction.comp.out
+++ b/Test/baseResults/hlsl.wavereduction.comp.out
@@ -6186,7 +6186,7 @@
 0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 991
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.wavevote.comp.out b/Test/baseResults/hlsl.wavevote.comp.out
index f9382b7..83140a2 100644
--- a/Test/baseResults/hlsl.wavevote.comp.out
+++ b/Test/baseResults/hlsl.wavevote.comp.out
@@ -204,7 +204,7 @@
 0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 75
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out
index 1f9a36b..23825e8 100644
--- a/Test/baseResults/hlsl.whileLoop.frag.out
+++ b/Test/baseResults/hlsl.whileLoop.frag.out
@@ -96,7 +96,7 @@
 0:?     'input' (layout( location=0) in 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 52
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.y-negate-1.vert.out b/Test/baseResults/hlsl.y-negate-1.vert.out
index e000752..aefde04 100644
--- a/Test/baseResults/hlsl.y-negate-1.vert.out
+++ b/Test/baseResults/hlsl.y-negate-1.vert.out
@@ -72,7 +72,7 @@
 0:?     '@entryPointOutput' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.y-negate-2.vert.out b/Test/baseResults/hlsl.y-negate-2.vert.out
index 57a47ab..4a9ef61 100644
--- a/Test/baseResults/hlsl.y-negate-2.vert.out
+++ b/Test/baseResults/hlsl.y-negate-2.vert.out
@@ -80,7 +80,7 @@
 0:?     'position' ( out 4-component vector of float Position)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/hlsl.y-negate-3.vert.out b/Test/baseResults/hlsl.y-negate-3.vert.out
index 3e58951..3544910 100644
--- a/Test/baseResults/hlsl.y-negate-3.vert.out
+++ b/Test/baseResults/hlsl.y-negate-3.vert.out
@@ -126,7 +126,7 @@
 0:?     '@entryPointOutput.somethingelse' (layout( location=0) out int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/implicitArraySize.vert.out b/Test/baseResults/implicitArraySize.vert.out
deleted file mode 100644
index 9a71b87..0000000
--- a/Test/baseResults/implicitArraySize.vert.out
+++ /dev/null
@@ -1,115 +0,0 @@
-implicitArraySize.vert
-Shader version: 460
-0:? Sequence
-0:5  Function Definition: main( ( global void)
-0:5    Function Parameters: 
-0:6    Sequence
-0:6      move second child to first child ( temp float)
-0:6        direct index ( smooth temp float)
-0:6          'a' ( smooth out unsized 1-element array of float)
-0:6          Constant:
-0:6            0 (const int)
-0:6        Constant:
-0:6          0.100000
-0:7      move second child to first child ( temp float)
-0:7        direct index ( smooth temp float)
-0:7          'c' ( smooth out unsized 6-element array of float)
-0:7          Constant:
-0:7            5 (const int)
-0:7        Constant:
-0:7          0.100000
-0:?   Linker Objects
-0:?     'a' ( smooth out unsized 1-element array of float)
-0:?     'c' ( smooth out unsized 6-element array of float)
-0:?     'gl_VertexID' ( gl_VertexId int VertexId)
-0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
-
-implicitArraySize.frag
-Shader version: 460
-0:? Sequence
-0:6  Function Definition: main( ( global void)
-0:6    Function Parameters: 
-0:7    Sequence
-0:7      move second child to first child ( temp float)
-0:7        direct index ( temp float)
-0:7          'b' ( out 5-element array of float)
-0:7          Constant:
-0:7            0 (const int)
-0:7        direct index ( smooth temp float)
-0:7          'a' ( smooth in unsized 2-element array of float)
-0:7          Constant:
-0:7            1 (const int)
-0:8      move second child to first child ( temp float)
-0:8        direct index ( temp float)
-0:8          'b' ( out 5-element array of float)
-0:8          Constant:
-0:8            1 (const int)
-0:8        direct index ( smooth temp float)
-0:8          'c' ( smooth in 3-element array of float)
-0:8          Constant:
-0:8            1 (const int)
-0:?   Linker Objects
-0:?     'a' ( smooth in unsized 2-element array of float)
-0:?     'c' ( smooth in 3-element array of float)
-0:?     'b' ( out 5-element array of float)
-
-
-Linked vertex stage:
-
-
-Linked fragment stage:
-
-ERROR: Linking vertex stage: Implicit size of unsized array doesn't match same symbol among multiple shaders.
-
-Shader version: 460
-0:? Sequence
-0:5  Function Definition: main( ( global void)
-0:5    Function Parameters: 
-0:6    Sequence
-0:6      move second child to first child ( temp float)
-0:6        direct index ( smooth temp float)
-0:6          'a' ( smooth out 1-element array of float)
-0:6          Constant:
-0:6            0 (const int)
-0:6        Constant:
-0:6          0.100000
-0:7      move second child to first child ( temp float)
-0:7        direct index ( smooth temp float)
-0:7          'c' ( smooth out 6-element array of float)
-0:7          Constant:
-0:7            5 (const int)
-0:7        Constant:
-0:7          0.100000
-0:?   Linker Objects
-0:?     'a' ( smooth out 1-element array of float)
-0:?     'c' ( smooth out 6-element array of float)
-0:?     'gl_VertexID' ( gl_VertexId int VertexId)
-0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
-Shader version: 460
-0:? Sequence
-0:6  Function Definition: main( ( global void)
-0:6    Function Parameters: 
-0:7    Sequence
-0:7      move second child to first child ( temp float)
-0:7        direct index ( temp float)
-0:7          'b' ( out 5-element array of float)
-0:7          Constant:
-0:7            0 (const int)
-0:7        direct index ( smooth temp float)
-0:7          'a' ( smooth in 2-element array of float)
-0:7          Constant:
-0:7            1 (const int)
-0:8      move second child to first child ( temp float)
-0:8        direct index ( temp float)
-0:8          'b' ( out 5-element array of float)
-0:8          Constant:
-0:8            1 (const int)
-0:8        direct index ( smooth temp float)
-0:8          'c' ( smooth in 3-element array of float)
-0:8          Constant:
-0:8            1 (const int)
-0:?   Linker Objects
-0:?     'a' ( smooth in 2-element array of float)
-0:?     'c' ( smooth in 3-element array of float)
-0:?     'b' ( out 5-element array of float)
-
diff --git a/Test/baseResults/implicitArraySize1.geom.out b/Test/baseResults/implicitArraySize1.geom.out
deleted file mode 100644
index d9c2f8b..0000000
--- a/Test/baseResults/implicitArraySize1.geom.out
+++ /dev/null
@@ -1,99 +0,0 @@
-implicitArraySize1.geom
-Shader version: 460
-invocations = -1
-max_vertices = 204
-input primitive = triangles
-output primitive = line_strip
-0:? Sequence
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:12    Sequence
-0:12      Function Call: f( ( global void)
-0:13      move second child to first child ( temp float)
-0:13        direct index (layout( stream=0) temp float)
-0:13          'o' (layout( stream=0) out 3-element array of float)
-0:13          Constant:
-0:13            1 (const int)
-0:13        direct index ( temp float)
-0:13          direct index ( temp 3-element array of float)
-0:13            'g' ( in 3-element array of 3-element array of float)
-0:13            Constant:
-0:13              2 (const int)
-0:13          Constant:
-0:13            1 (const int)
-0:?   Linker Objects
-0:?     'g' ( in 3-element array of 3-element array of float)
-0:?     'o' (layout( stream=0) out 3-element array of float)
-
-implicitArraySize2.geom
-Shader version: 460
-invocations = -1
-max_vertices = -1
-input primitive = none
-output primitive = none
-0:? Sequence
-0:6  Function Definition: f( ( global void)
-0:6    Function Parameters: 
-0:7    Sequence
-0:7      move second child to first child ( temp float)
-0:7        direct index (layout( stream=0) temp float)
-0:7          'o' (layout( stream=0) out unsized 2-element array of float)
-0:7          Constant:
-0:7            1 (const int)
-0:7        direct index ( temp float)
-0:7          direct index ( temp 3-element array of float)
-0:7            'g' ( in unsized 2-element array of 3-element array of float)
-0:7            Constant:
-0:7              1 (const int)
-0:7          Constant:
-0:7            1 (const int)
-0:?   Linker Objects
-0:?     'g' ( in unsized 2-element array of 3-element array of float)
-0:?     'o' (layout( stream=0) out unsized 2-element array of float)
-
-
-Linked geometry stage:
-
-ERROR: Linking geometry stage: Not all array sizes match across all geometry shaders in the program
-
-Shader version: 460
-invocations = 1
-max_vertices = 204
-input primitive = triangles
-output primitive = line_strip
-0:? Sequence
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:12    Sequence
-0:12      Function Call: f( ( global void)
-0:13      move second child to first child ( temp float)
-0:13        direct index (layout( stream=0) temp float)
-0:13          'o' (layout( stream=0) out 3-element array of float)
-0:13          Constant:
-0:13            1 (const int)
-0:13        direct index ( temp float)
-0:13          direct index ( temp 3-element array of float)
-0:13            'g' ( in 3-element array of 3-element array of float)
-0:13            Constant:
-0:13              2 (const int)
-0:13          Constant:
-0:13            1 (const int)
-0:6  Function Definition: f( ( global void)
-0:6    Function Parameters: 
-0:7    Sequence
-0:7      move second child to first child ( temp float)
-0:7        direct index (layout( stream=0) temp float)
-0:7          'o' (layout( stream=0) out 2-element array of float)
-0:7          Constant:
-0:7            1 (const int)
-0:7        direct index ( temp float)
-0:7          direct index ( temp 3-element array of float)
-0:7            'g' ( in 2-element array of 3-element array of float)
-0:7            Constant:
-0:7              1 (const int)
-0:7          Constant:
-0:7            1 (const int)
-0:?   Linker Objects
-0:?     'g' ( in 3-element array of 3-element array of float)
-0:?     'o' (layout( stream=0) out 3-element array of float)
-
diff --git a/Test/baseResults/implicitArraySizeBuiltin.vert.out b/Test/baseResults/implicitArraySizeBuiltin.vert.out
deleted file mode 100644
index 77b41aa..0000000
--- a/Test/baseResults/implicitArraySizeBuiltin.vert.out
+++ /dev/null
@@ -1,176 +0,0 @@
-implicitArraySizeBuiltin.vert
-Shader version: 460
-0:? Sequence
-0:3  Function Definition: f1(f1; ( global void)
-0:3    Function Parameters: 
-0:3      'x' ( in float)
-0:5    Sequence
-0:5      move second child to first child ( temp float)
-0:5        direct index ( temp float ClipDistance)
-0:5          gl_ClipDistance: direct index for structure ( out unsized 7-element array of float ClipDistance)
-0:5            'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out unsized 7-element array of float ClipDistance gl_ClipDistance,  out unsized 2-element array of float CullDistance gl_CullDistance})
-0:5            Constant:
-0:5              2 (const uint)
-0:5          Constant:
-0:5            6 (const int)
-0:5        'x' ( in float)
-0:6      move second child to first child ( temp float)
-0:6        direct index ( temp float CullDistance)
-0:6          gl_CullDistance: direct index for structure ( out unsized 2-element array of float CullDistance)
-0:6            'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out unsized 7-element array of float ClipDistance gl_ClipDistance,  out unsized 2-element array of float CullDistance gl_CullDistance})
-0:6            Constant:
-0:6              3 (const uint)
-0:6          Constant:
-0:6            1 (const int)
-0:6        'x' ( in float)
-0:9  Function Definition: main( ( global void)
-0:9    Function Parameters: 
-0:10    Sequence
-0:10      Function Call: f1(f1; ( global void)
-0:10        Constant:
-0:10          0.100000
-0:?   Linker Objects
-0:?     'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out unsized 7-element array of float ClipDistance gl_ClipDistance,  out unsized 2-element array of float CullDistance gl_CullDistance})
-0:?     'gl_VertexID' ( gl_VertexId int VertexId)
-0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
-
-implicitArraySizeBuiltin.geom
-Shader version: 460
-invocations = -1
-max_vertices = 204
-input primitive = triangles
-output primitive = line_strip
-0:? Sequence
-0:6  Function Definition: f2(f1; ( global void)
-0:6    Function Parameters: 
-0:6      'x' ( in float)
-0:8    Sequence
-0:8      move second child to first child ( temp float)
-0:8        direct index (layout( stream=0) temp float ClipDistance)
-0:8          gl_ClipDistance: direct index for structure (layout( stream=0) out unsized 7-element array of float ClipDistance)
-0:8            'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 7-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 2-element array of float CullDistance gl_CullDistance})
-0:8            Constant:
-0:8              2 (const uint)
-0:8          Constant:
-0:8            6 (const int)
-0:8        direct index ( temp float ClipDistance)
-0:8          gl_ClipDistance: direct index for structure ( in unsized 7-element array of float ClipDistance)
-0:8            direct index ( temp block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in unsized 7-element array of float ClipDistance gl_ClipDistance,  in unsized 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:8              'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in unsized 7-element array of float ClipDistance gl_ClipDistance,  in unsized 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:8              Constant:
-0:8                0 (const int)
-0:8            Constant:
-0:8              2 (const int)
-0:8          Constant:
-0:8            6 (const int)
-0:10  Function Definition: f3(f1; ( global void)
-0:10    Function Parameters: 
-0:10      'x' ( in float)
-0:12    Sequence
-0:12      move second child to first child ( temp float)
-0:12        direct index (layout( stream=0) temp float CullDistance)
-0:12          gl_CullDistance: direct index for structure (layout( stream=0) out unsized 2-element array of float CullDistance)
-0:12            'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 7-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 2-element array of float CullDistance gl_CullDistance})
-0:12            Constant:
-0:12              3 (const uint)
-0:12          Constant:
-0:12            1 (const int)
-0:12        direct index ( temp float CullDistance)
-0:12          gl_CullDistance: direct index for structure ( in unsized 2-element array of float CullDistance)
-0:12            direct index ( temp block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in unsized 7-element array of float ClipDistance gl_ClipDistance,  in unsized 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:12              'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in unsized 7-element array of float ClipDistance gl_ClipDistance,  in unsized 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:12              Constant:
-0:12                0 (const int)
-0:12            Constant:
-0:12              3 (const int)
-0:12          Constant:
-0:12            1 (const int)
-0:15  Function Definition: main( ( global void)
-0:15    Function Parameters: 
-0:19    Sequence
-0:19      Function Call: f3(f1; ( global void)
-0:19        Constant:
-0:19          0.100000
-0:?   Linker Objects
-0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out unsized 7-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out unsized 2-element array of float CullDistance gl_CullDistance})
-0:?     'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in unsized 7-element array of float ClipDistance gl_ClipDistance,  in unsized 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in unsized 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-
-
-Linked vertex stage:
-
-
-Linked geometry stage:
-
-
-Shader version: 460
-0:? Sequence
-0:3  Function Definition: f1(f1; ( global void)
-0:3    Function Parameters: 
-0:3      'x' ( in float)
-0:5    Sequence
-0:5      move second child to first child ( temp float)
-0:5        direct index ( temp float ClipDistance)
-0:5          gl_ClipDistance: direct index for structure ( out 7-element array of float ClipDistance)
-0:5            'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out 7-element array of float ClipDistance gl_ClipDistance,  out 2-element array of float CullDistance gl_CullDistance})
-0:5            Constant:
-0:5              2 (const uint)
-0:5          Constant:
-0:5            6 (const int)
-0:5        'x' ( in float)
-0:6      move second child to first child ( temp float)
-0:6        direct index ( temp float CullDistance)
-0:6          gl_CullDistance: direct index for structure ( out 2-element array of float CullDistance)
-0:6            'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out 7-element array of float ClipDistance gl_ClipDistance,  out 2-element array of float CullDistance gl_CullDistance})
-0:6            Constant:
-0:6              3 (const uint)
-0:6          Constant:
-0:6            1 (const int)
-0:6        'x' ( in float)
-0:9  Function Definition: main( ( global void)
-0:9    Function Parameters: 
-0:10    Sequence
-0:10      Function Call: f1(f1; ( global void)
-0:10        Constant:
-0:10          0.100000
-0:?   Linker Objects
-0:?     'anon@0' ( out block{ gl_Position 4-component vector of float Position gl_Position,  gl_PointSize float PointSize gl_PointSize,  out 7-element array of float ClipDistance gl_ClipDistance,  out 2-element array of float CullDistance gl_CullDistance})
-0:?     'gl_VertexID' ( gl_VertexId int VertexId)
-0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
-Shader version: 460
-invocations = 1
-max_vertices = 204
-input primitive = triangles
-output primitive = line_strip
-0:? Sequence
-0:10  Function Definition: f3(f1; ( global void)
-0:10    Function Parameters: 
-0:10      'x' ( in float)
-0:12    Sequence
-0:12      move second child to first child ( temp float)
-0:12        direct index (layout( stream=0) temp float CullDistance)
-0:12          gl_CullDistance: direct index for structure (layout( stream=0) out 2-element array of float CullDistance)
-0:12            'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 7-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 2-element array of float CullDistance gl_CullDistance})
-0:12            Constant:
-0:12              3 (const uint)
-0:12          Constant:
-0:12            1 (const int)
-0:12        direct index ( temp float CullDistance)
-0:12          gl_CullDistance: direct index for structure ( in 2-element array of float CullDistance)
-0:12            direct index ( temp block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in 7-element array of float ClipDistance gl_ClipDistance,  in 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:12              'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in 7-element array of float ClipDistance gl_ClipDistance,  in 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-0:12              Constant:
-0:12                0 (const int)
-0:12            Constant:
-0:12              3 (const int)
-0:12          Constant:
-0:12            1 (const int)
-0:15  Function Definition: main( ( global void)
-0:15    Function Parameters: 
-0:19    Sequence
-0:19      Function Call: f3(f1; ( global void)
-0:19        Constant:
-0:19          0.100000
-0:?   Linker Objects
-0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 7-element array of float ClipDistance gl_ClipDistance, layout( stream=0) out 2-element array of float CullDistance gl_CullDistance})
-0:?     'gl_in' ( in 3-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in 7-element array of float ClipDistance gl_ClipDistance,  in 2-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
-
diff --git a/Test/baseResults/iomap.blockOutVariableIn.2.vert.out b/Test/baseResults/iomap.blockOutVariableIn.2.vert.out
index 2c4ecdc..0b4c0ac 100644
--- a/Test/baseResults/iomap.blockOutVariableIn.2.vert.out
+++ b/Test/baseResults/iomap.blockOutVariableIn.2.vert.out
@@ -255,7 +255,7 @@
 0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
@@ -320,7 +320,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 49
 
                               Capability Geometry
diff --git a/Test/baseResults/iomap.blockOutVariableIn.vert.out b/Test/baseResults/iomap.blockOutVariableIn.vert.out
index a43e52f..dd12cbc 100644
--- a/Test/baseResults/iomap.blockOutVariableIn.vert.out
+++ b/Test/baseResults/iomap.blockOutVariableIn.vert.out
@@ -127,7 +127,7 @@
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
@@ -192,7 +192,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/iomap.crossStage.2.vert.out b/Test/baseResults/iomap.crossStage.2.vert.out
index 171cc0e..85139cc 100644
--- a/Test/baseResults/iomap.crossStage.2.vert.out
+++ b/Test/baseResults/iomap.crossStage.2.vert.out
@@ -407,7 +407,7 @@
 0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
@@ -530,7 +530,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Geometry
@@ -659,7 +659,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/iomap.crossStage.vert.out b/Test/baseResults/iomap.crossStage.vert.out
index d6b6e4f..13ff58c 100644
--- a/Test/baseResults/iomap.crossStage.vert.out
+++ b/Test/baseResults/iomap.crossStage.vert.out
@@ -264,7 +264,7 @@
 0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
@@ -387,7 +387,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/iomap.crossStage.vk.vert.out b/Test/baseResults/iomap.crossStage.vk.vert.out
index dd8029d..0a2eae8 100644
--- a/Test/baseResults/iomap.crossStage.vk.vert.out
+++ b/Test/baseResults/iomap.crossStage.vk.vert.out
@@ -381,7 +381,7 @@
 0:?     'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
@@ -470,7 +470,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 57
 
                               Capability Geometry
@@ -582,7 +582,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 81
 
                               Capability Shader
diff --git a/Test/baseResults/iomap.variableOutBlockIn.2.vert.out b/Test/baseResults/iomap.variableOutBlockIn.2.vert.out
index 3e6d30b..6ef7d4e 100644
--- a/Test/baseResults/iomap.variableOutBlockIn.2.vert.out
+++ b/Test/baseResults/iomap.variableOutBlockIn.2.vert.out
@@ -149,7 +149,7 @@
 0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) gl_Position 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize float PointSize gl_PointSize, layout( stream=0) out 1-element array of float ClipDistance gl_ClipDistance})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
@@ -208,7 +208,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Geometry
diff --git a/Test/baseResults/iomap.variableOutBlockIn.vert.out b/Test/baseResults/iomap.variableOutBlockIn.vert.out
index 4b0ce64..8fef640 100644
--- a/Test/baseResults/iomap.variableOutBlockIn.vert.out
+++ b/Test/baseResults/iomap.variableOutBlockIn.vert.out
@@ -127,7 +127,7 @@
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
@@ -186,7 +186,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out b/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out
index d3545bf..3d76b2f 100755
--- a/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out
+++ b/Test/baseResults/link.vk.inconsistentGLPerVertex.0.vert.out
@@ -253,7 +253,7 @@
 0:?     'gl_in' ( in 4-element array of block{ in 4-component vector of float Position gl_Position,  in float PointSize gl_PointSize,  in 1-element array of float ClipDistance gl_ClipDistance,  in 1-element array of float CullDistance gl_CullDistance,  in 4-component vector of float SecondaryPositionNV gl_SecondaryPositionNV,  in 1-element array of 4-component vector of float PositionPerViewNV gl_PositionPerViewNV})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/link.vk.matchingPC.0.0.frag.out b/Test/baseResults/link.vk.matchingPC.0.0.frag.out
index 87d3b02..c434b66 100644
--- a/Test/baseResults/link.vk.matchingPC.0.0.frag.out
+++ b/Test/baseResults/link.vk.matchingPC.0.0.frag.out
@@ -90,7 +90,7 @@
 0:?     'uPC' (layout( column_major std430 push_constant) uniform block{layout( column_major std430 offset=0) uniform highp 4-component vector of float color, layout( column_major std430 offset=16) uniform highp 4-component vector of float color2, layout( column_major std430 offset=32) uniform highp float scale})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out b/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
index 7f9a05a..29a4df0 100644
--- a/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
+++ b/Test/baseResults/link.vk.multiBlocksValid.0.0.vert.out
@@ -177,7 +177,7 @@
 0:?     'P' ( in highp 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 73
 
                               Capability Shader
diff --git a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
index 374a2a0..4005f60 100644
--- a/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
+++ b/Test/baseResults/link.vk.multiBlocksValid.1.0.geom.out
@@ -263,7 +263,7 @@
 0:?     'P' ( in 3-element array of highp 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 101
 
                               Capability Geometry
diff --git a/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out b/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out
index 410f192..f84877e 100644
--- a/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out
+++ b/Test/baseResults/link.vk.pcNamingValid.0.0.vert.out
@@ -109,7 +109,7 @@
 0:?     'P' (layout( location=0) in highp 4-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability Shader
diff --git a/Test/baseResults/link1.vk.frag.out b/Test/baseResults/link1.vk.frag.out
index 225aee1..fa1d48e 100644
--- a/Test/baseResults/link1.vk.frag.out
+++ b/Test/baseResults/link1.vk.frag.out
@@ -197,7 +197,7 @@
 0:?     's2D' (layout( binding=1) uniform highp sampler2D)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/rayQuery-OpConvertUToAccelerationStructureKHR.comp.out b/Test/baseResults/rayQuery-OpConvertUToAccelerationStructureKHR.comp.out
index 007dcb9..44e8969 100644
--- a/Test/baseResults/rayQuery-OpConvertUToAccelerationStructureKHR.comp.out
+++ b/Test/baseResults/rayQuery-OpConvertUToAccelerationStructureKHR.comp.out
@@ -1,6 +1,6 @@
 rayQuery-OpConvertUToAccelerationStructureKHR.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/rayQuery-allOps.comp.out b/Test/baseResults/rayQuery-allOps.comp.out
index 05936bb..bf654f7 100644
--- a/Test/baseResults/rayQuery-allOps.comp.out
+++ b/Test/baseResults/rayQuery-allOps.comp.out
@@ -1,6 +1,6 @@
 rayQuery-allOps.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 258
 
                               Capability Shader
diff --git a/Test/baseResults/rayQuery-allOps.frag.out b/Test/baseResults/rayQuery-allOps.frag.out
index 19a6171..90ebc4a 100644
--- a/Test/baseResults/rayQuery-allOps.frag.out
+++ b/Test/baseResults/rayQuery-allOps.frag.out
@@ -1,6 +1,6 @@
 rayQuery-allOps.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 257
 
                               Capability Shader
diff --git a/Test/baseResults/rayQuery-allOps.rgen.out b/Test/baseResults/rayQuery-allOps.rgen.out
index 67447b9..b3a93b0 100644
--- a/Test/baseResults/rayQuery-allOps.rgen.out
+++ b/Test/baseResults/rayQuery-allOps.rgen.out
@@ -1,6 +1,6 @@
 rayQuery-allOps.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 257
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/rayQuery-global.rgen.out b/Test/baseResults/rayQuery-global.rgen.out
index 968a178..7b05173 100644
--- a/Test/baseResults/rayQuery-global.rgen.out
+++ b/Test/baseResults/rayQuery-global.rgen.out
@@ -1,6 +1,6 @@
 rayQuery-global.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/rayQuery-initialize.rgen.out b/Test/baseResults/rayQuery-initialize.rgen.out
index dc213c5..f16facd 100644
--- a/Test/baseResults/rayQuery-initialize.rgen.out
+++ b/Test/baseResults/rayQuery-initialize.rgen.out
@@ -1,6 +1,6 @@
 rayQuery-initialize.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 103
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/rayQuery-no-cse.rgen.out b/Test/baseResults/rayQuery-no-cse.rgen.out
index 0a751a3..a44c41f 100644
--- a/Test/baseResults/rayQuery-no-cse.rgen.out
+++ b/Test/baseResults/rayQuery-no-cse.rgen.out
@@ -1,6 +1,6 @@
 rayQuery-no-cse.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 107
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/rayQuery-types.comp.out b/Test/baseResults/rayQuery-types.comp.out
index bb7ed7b..87a1d68 100644
--- a/Test/baseResults/rayQuery-types.comp.out
+++ b/Test/baseResults/rayQuery-types.comp.out
@@ -1,6 +1,6 @@
 rayQuery-types.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 86
 
                               Capability Shader
diff --git a/Test/baseResults/rayQuery.rgen.out b/Test/baseResults/rayQuery.rgen.out
index 4a54973..06a1a5a 100644
--- a/Test/baseResults/rayQuery.rgen.out
+++ b/Test/baseResults/rayQuery.rgen.out
@@ -1,6 +1,6 @@
 rayQuery.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out
index f5c9a71..c531eba 100644
--- a/Test/baseResults/remap.basic.dcefunc.frag.out
+++ b/Test/baseResults/remap.basic.dcefunc.frag.out
@@ -1,6 +1,6 @@
 remap.basic.dcefunc.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out
index 6c73e59..d483f20 100644
--- a/Test/baseResults/remap.basic.everything.frag.out
+++ b/Test/baseResults/remap.basic.everything.frag.out
@@ -1,6 +1,6 @@
 remap.basic.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24969
 
                               Capability Shader
diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out
index 3cff65b..34f64c8 100644
--- a/Test/baseResults/remap.basic.none.frag.out
+++ b/Test/baseResults/remap.basic.none.frag.out
@@ -1,6 +1,6 @@
 remap.basic.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out
index 030877d..f1d7769 100644
--- a/Test/baseResults/remap.basic.strip.frag.out
+++ b/Test/baseResults/remap.basic.strip.frag.out
@@ -1,6 +1,6 @@
 remap.basic.strip.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
index b1ce523..88c516f 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out
@@ -2,7 +2,7 @@
 WARNING: 0:4: 'immediate sampler state' : unimplemented 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24878
 
                               Capability Shader
diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
index 13ac4f2..465b024 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out
@@ -2,7 +2,7 @@
 WARNING: 0:4: 'immediate sampler state' : unimplemented 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
index d861a43..4fb9218 100644
--- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
+++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out
@@ -2,7 +2,7 @@
 WARNING: 0:4: 'immediate sampler state' : unimplemented 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
index 22acbad..f1e3535 100644
--- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
+++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out
@@ -1,6 +1,6 @@
 remap.hlsl.templatetypes.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24954
 
                               Capability Shader
diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
index 7e653a1..226f2c6 100644
--- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
+++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out
@@ -1,6 +1,6 @@
 remap.hlsl.templatetypes.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 160
 
                               Capability Shader
diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out
index e7e7369..3a521be 100644
--- a/Test/baseResults/remap.if.everything.frag.out
+++ b/Test/baseResults/remap.if.everything.frag.out
@@ -1,6 +1,6 @@
 remap.if.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22855
 
                               Capability Shader
diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out
index d239492..cb2d31b 100644
--- a/Test/baseResults/remap.if.none.frag.out
+++ b/Test/baseResults/remap.if.none.frag.out
@@ -1,6 +1,6 @@
 remap.if.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out
index 6de9cb9..993dc1c 100644
--- a/Test/baseResults/remap.similar_1a.everything.frag.out
+++ b/Test/baseResults/remap.similar_1a.everything.frag.out
@@ -1,6 +1,6 @@
 remap.similar_1a.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24916
 
                               Capability Shader
diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out
index 6823448..e46b8e1 100644
--- a/Test/baseResults/remap.similar_1a.none.frag.out
+++ b/Test/baseResults/remap.similar_1a.none.frag.out
@@ -1,6 +1,6 @@
 remap.similar_1a.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 86
 
                               Capability Shader
diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out
index 86e5ac7..ffe5446 100644
--- a/Test/baseResults/remap.similar_1b.everything.frag.out
+++ b/Test/baseResults/remap.similar_1b.everything.frag.out
@@ -1,6 +1,6 @@
 remap.similar_1b.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24916
 
                               Capability Shader
diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out
index 2433820..5f5241c 100644
--- a/Test/baseResults/remap.similar_1b.none.frag.out
+++ b/Test/baseResults/remap.similar_1b.none.frag.out
@@ -1,6 +1,6 @@
 remap.similar_1b.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 91
 
                               Capability Shader
diff --git a/Test/baseResults/remap.specconst.comp.out b/Test/baseResults/remap.specconst.comp.out
index 905d85b..2bed3cf 100644
--- a/Test/baseResults/remap.specconst.comp.out
+++ b/Test/baseResults/remap.specconst.comp.out
@@ -1,6 +1,6 @@
 remap.specconst.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 16104
 
                               Capability Shader
diff --git a/Test/baseResults/remap.switch.everything.frag.out b/Test/baseResults/remap.switch.everything.frag.out
index d257093..443fe68 100644
--- a/Test/baseResults/remap.switch.everything.frag.out
+++ b/Test/baseResults/remap.switch.everything.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23990
 
                               Capability Shader
diff --git a/Test/baseResults/remap.switch.none.frag.out b/Test/baseResults/remap.switch.none.frag.out
index 53d2739..3347dce 100644
--- a/Test/baseResults/remap.switch.none.frag.out
+++ b/Test/baseResults/remap.switch.none.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 48
 
                               Capability Shader
diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out
index 902b597..ee1daa7 100644
--- a/Test/baseResults/remap.uniformarray.everything.frag.out
+++ b/Test/baseResults/remap.uniformarray.everything.frag.out
@@ -1,6 +1,6 @@
 remap.uniformarray.everything.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25030
 
                               Capability Shader
diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out
index cc4fc7d..00e1f57 100644
--- a/Test/baseResults/remap.uniformarray.none.frag.out
+++ b/Test/baseResults/remap.uniformarray.none.frag.out
@@ -1,6 +1,6 @@
 remap.uniformarray.none.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out b/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
index 858a0db..d512639 100644
--- a/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
+++ b/Test/baseResults/spv.1.3.8bitstorage-ssbo.vert.out
@@ -1,6 +1,6 @@
 spv.1.3.8bitstorage-ssbo.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out b/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
index e7ec5ed..1dce1ea 100644
--- a/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
+++ b/Test/baseResults/spv.1.3.8bitstorage-ubo.vert.out
@@ -1,6 +1,6 @@
 spv.1.3.8bitstorage-ubo.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.3.coopmat.comp.out b/Test/baseResults/spv.1.3.coopmat.comp.out
index 6b15772..d7a9d5e 100644
--- a/Test/baseResults/spv.1.3.coopmat.comp.out
+++ b/Test/baseResults/spv.1.3.coopmat.comp.out
@@ -1,6 +1,6 @@
 spv.1.3.coopmat.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 52
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.LoopControl.frag.out b/Test/baseResults/spv.1.4.LoopControl.frag.out
index c3330fc..0ffffd6 100644
--- a/Test/baseResults/spv.1.4.LoopControl.frag.out
+++ b/Test/baseResults/spv.1.4.LoopControl.frag.out
@@ -3,7 +3,7 @@
 WARNING: 0:15: 'max_iterations' : expected a single integer argument 
 
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.NonWritable.frag.out b/Test/baseResults/spv.1.4.NonWritable.frag.out
index d2b76b8..da3b52c 100644
--- a/Test/baseResults/spv.1.4.NonWritable.frag.out
+++ b/Test/baseResults/spv.1.4.NonWritable.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.NonWritable.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpCopyLogical.comp.out b/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
index ad0397b..018fd0a 100644
--- a/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
+++ b/Test/baseResults/spv.1.4.OpCopyLogical.comp.out
@@ -1,6 +1,6 @@
 spv.1.4.OpCopyLogical.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out b/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
index 850ee91..a2458ba 100644
--- a/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
+++ b/Test/baseResults/spv.1.4.OpCopyLogical.funcall.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.OpCopyLogical.funcall.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 59
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out b/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
index 7b52595..7dcda62 100644
--- a/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
+++ b/Test/baseResults/spv.1.4.OpCopyLogicalBool.comp.out
@@ -1,6 +1,6 @@
 spv.1.4.OpCopyLogicalBool.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 135
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpEntryPoint.frag.out b/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
index f37b0fd..e43e954 100644
--- a/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
+++ b/Test/baseResults/spv.1.4.OpEntryPoint.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.OpEntryPoint.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 64
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out b/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out
index dff799f..835ab13 100644
--- a/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out
+++ b/Test/baseResults/spv.1.4.OpEntryPoint.opaqueParams.vert.out
@@ -1,6 +1,6 @@
 spv.1.4.OpEntryPoint.opaqueParams.vert
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.OpSelect.frag.out b/Test/baseResults/spv.1.4.OpSelect.frag.out
index 42f2ca7..b3a5b4d 100644
--- a/Test/baseResults/spv.1.4.OpSelect.frag.out
+++ b/Test/baseResults/spv.1.4.OpSelect.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.OpSelect.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 98
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.constructComposite.comp.out b/Test/baseResults/spv.1.4.constructComposite.comp.out
index e896cf8..cbec381 100644
--- a/Test/baseResults/spv.1.4.constructComposite.comp.out
+++ b/Test/baseResults/spv.1.4.constructComposite.comp.out
@@ -1,6 +1,6 @@
 spv.1.4.constructComposite.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.funcall.array.frag.out b/Test/baseResults/spv.1.4.funcall.array.frag.out
index 6a23f2a..d976bb1 100644
--- a/Test/baseResults/spv.1.4.funcall.array.frag.out
+++ b/Test/baseResults/spv.1.4.funcall.array.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.funcall.array.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.image.frag.out b/Test/baseResults/spv.1.4.image.frag.out
index 059ed19..fadde97 100644
--- a/Test/baseResults/spv.1.4.image.frag.out
+++ b/Test/baseResults/spv.1.4.image.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.image.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 104
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out b/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out
index fea83ab..9f698db 100644
--- a/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out
+++ b/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out
@@ -1,7 +1,7 @@
 spv.1.4.load.bool.array.interface.block.frag
 Validation failed
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 64
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.sparseTexture.frag.out b/Test/baseResults/spv.1.4.sparseTexture.frag.out
index a26ae66..965f4c8 100644
--- a/Test/baseResults/spv.1.4.sparseTexture.frag.out
+++ b/Test/baseResults/spv.1.4.sparseTexture.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.sparseTexture.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 213
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.4.texture.frag.out b/Test/baseResults/spv.1.4.texture.frag.out
index 6d28e1f..ac9f72f 100644
--- a/Test/baseResults/spv.1.4.texture.frag.out
+++ b/Test/baseResults/spv.1.4.texture.frag.out
@@ -1,6 +1,6 @@
 spv.1.4.texture.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 79
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.6.conditionalDiscard.frag.out b/Test/baseResults/spv.1.6.conditionalDiscard.frag.out
index 6364773..f538fd9 100644
--- a/Test/baseResults/spv.1.6.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.1.6.conditionalDiscard.frag.out
@@ -1,6 +1,6 @@
 spv.1.6.conditionalDiscard.frag
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.6.helperInvocation.frag.out b/Test/baseResults/spv.1.6.helperInvocation.frag.out
index 30a5c6a..7df2a2a 100644
--- a/Test/baseResults/spv.1.6.helperInvocation.frag.out
+++ b/Test/baseResults/spv.1.6.helperInvocation.frag.out
@@ -1,6 +1,6 @@
 spv.1.6.helperInvocation.frag
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.6.helperInvocation.memmodel.frag.out b/Test/baseResults/spv.1.6.helperInvocation.memmodel.frag.out
deleted file mode 100644
index fea4e45..0000000
--- a/Test/baseResults/spv.1.6.helperInvocation.memmodel.frag.out
+++ /dev/null
@@ -1,48 +0,0 @@
-spv.1.6.helperInvocation.memmodel.frag
-// Module Version 10600
-// Generated by (magic number): 8000b
-// Id's are bound by 21
-
-                              Capability Shader
-                              Capability VulkanMemoryModelKHR
-                              Capability DemoteToHelperInvocationEXT
-                              Extension  "SPV_EXT_demote_to_helper_invocation"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical VulkanKHR
-                              EntryPoint Fragment 4  "main" 9 14
-                              ExecutionMode 4 OriginUpperLeft
-                              Source ESSL 310
-                              SourceExtension  "GL_EXT_demote_to_helper_invocation"
-                              Name 4  "main"
-                              Name 7  "B"
-                              MemberName 7(B) 0  "o"
-                              Name 9  ""
-                              Name 14  "gl_HelperInvocation"
-                              MemberDecorate 7(B) 0 Offset 0
-                              Decorate 7(B) Block
-                              Decorate 9 DescriptorSet 0
-                              Decorate 9 Binding 0
-                              Decorate 14(gl_HelperInvocation) BuiltIn HelperInvocation
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-            7(B):             TypeStruct 6(float)
-               8:             TypePointer StorageBuffer 7(B)
-               9:      8(ptr) Variable StorageBuffer
-              10:             TypeInt 32 1
-              11:     10(int) Constant 0
-              12:             TypeBool
-              13:             TypePointer Input 12(bool)
-14(gl_HelperInvocation):     13(ptr) Variable Input
-              16:    6(float) Constant 1065353216
-              17:    6(float) Constant 0
-              19:             TypePointer StorageBuffer 6(float)
-         4(main):           2 Function None 3
-               5:             Label
-                              DemoteToHelperInvocationEXT
-              15:    12(bool) Load 14(gl_HelperInvocation) Volatile 
-              18:    6(float) Select 15 16 17
-              20:     19(ptr) AccessChain 9 11
-                              Store 20 18
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.1.6.samplerBuffer.frag.out b/Test/baseResults/spv.1.6.samplerBuffer.frag.out
index 1bd52da..8a0275f 100644
--- a/Test/baseResults/spv.1.6.samplerBuffer.frag.out
+++ b/Test/baseResults/spv.1.6.samplerBuffer.frag.out
@@ -1,6 +1,6 @@
 spv.1.6.samplerBuffer.frag
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.6.separate.frag.out b/Test/baseResults/spv.1.6.separate.frag.out
index f485fad..e15655e 100644
--- a/Test/baseResults/spv.1.6.separate.frag.out
+++ b/Test/baseResults/spv.1.6.separate.frag.out
@@ -1,6 +1,6 @@
 spv.1.6.separate.frag
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.1.6.specConstant.comp.out b/Test/baseResults/spv.1.6.specConstant.comp.out
index 2c32fbd..7485f04 100644
--- a/Test/baseResults/spv.1.6.specConstant.comp.out
+++ b/Test/baseResults/spv.1.6.specConstant.comp.out
@@ -1,6 +1,6 @@
 spv.1.6.specConstant.comp
 // Module Version 10600
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out
index 8c28d91..42c9995 100644
--- a/Test/baseResults/spv.100ops.frag.out
+++ b/Test/baseResults/spv.100ops.frag.out
@@ -1,6 +1,6 @@
 spv.100ops.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 49
 
                               Capability Shader
diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out
index 84fa9a3..29c7d85 100644
--- a/Test/baseResults/spv.130.frag.out
+++ b/Test/baseResults/spv.130.frag.out
@@ -3,7 +3,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 205
 
                               Capability Shader
diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out
index a4401a2..a517882 100644
--- a/Test/baseResults/spv.140.frag.out
+++ b/Test/baseResults/spv.140.frag.out
@@ -1,7 +1,7 @@
 spv.140.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 96
 
                               Capability Shader
diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out
index b6e22e1..0ad3337 100644
--- a/Test/baseResults/spv.150.geom.out
+++ b/Test/baseResults/spv.150.geom.out
@@ -1,6 +1,6 @@
 spv.150.geom
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 71
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out
index 167a15e..2b09f4b 100644
--- a/Test/baseResults/spv.150.vert.out
+++ b/Test/baseResults/spv.150.vert.out
@@ -1,6 +1,6 @@
 spv.150.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 63
 
                               Capability Shader
diff --git a/Test/baseResults/spv.16bitstorage-int.frag.out b/Test/baseResults/spv.16bitstorage-int.frag.out
index d14519b..a91b4e4 100644
--- a/Test/baseResults/spv.16bitstorage-int.frag.out
+++ b/Test/baseResults/spv.16bitstorage-int.frag.out
@@ -1,6 +1,6 @@
 spv.16bitstorage-int.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 171
 
                               Capability Shader
diff --git a/Test/baseResults/spv.16bitstorage-uint.frag.out b/Test/baseResults/spv.16bitstorage-uint.frag.out
index ea935ce..f90d0c1 100644
--- a/Test/baseResults/spv.16bitstorage-uint.frag.out
+++ b/Test/baseResults/spv.16bitstorage-uint.frag.out
@@ -1,6 +1,6 @@
 spv.16bitstorage-uint.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 173
 
                               Capability Shader
diff --git a/Test/baseResults/spv.16bitstorage.frag.out b/Test/baseResults/spv.16bitstorage.frag.out
index c19f607..2d934f4 100644
--- a/Test/baseResults/spv.16bitstorage.frag.out
+++ b/Test/baseResults/spv.16bitstorage.frag.out
@@ -1,6 +1,6 @@
 spv.16bitstorage.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 173
 
                               Capability Shader
diff --git a/Test/baseResults/spv.16bitxfb.vert.out b/Test/baseResults/spv.16bitxfb.vert.out
index 2dd93d4..f4d66ef 100644
--- a/Test/baseResults/spv.16bitxfb.vert.out
+++ b/Test/baseResults/spv.16bitxfb.vert.out
@@ -1,6 +1,6 @@
 spv.16bitxfb.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 59
 
                               Capability Shader
diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out
index 10f115b..2201788 100644
--- a/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/Test/baseResults/spv.300BuiltIns.vert.out
@@ -1,6 +1,6 @@
 spv.300BuiltIns.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out
index 156a6e2..3b691e2 100644
--- a/Test/baseResults/spv.300layout.frag.out
+++ b/Test/baseResults/spv.300layout.frag.out
@@ -1,6 +1,6 @@
 spv.300layout.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out
index 6345aa1..3db50b0 100644
--- a/Test/baseResults/spv.300layout.vert.out
+++ b/Test/baseResults/spv.300layout.vert.out
@@ -1,6 +1,6 @@
 spv.300layout.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 163
 
                               Capability Shader
diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out
index d986fb5..315605d 100644
--- a/Test/baseResults/spv.300layoutp.vert.out
+++ b/Test/baseResults/spv.300layoutp.vert.out
@@ -1,6 +1,6 @@
 spv.300layoutp.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 115
 
                               Capability Shader
diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out
index fa354be..f4322ab 100644
--- a/Test/baseResults/spv.310.bitcast.frag.out
+++ b/Test/baseResults/spv.310.bitcast.frag.out
@@ -1,6 +1,6 @@
 spv.310.bitcast.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 179
 
                               Capability Shader
diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index 459c689..931d038 100644
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -1,6 +1,6 @@
 spv.310.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Shader
diff --git a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
index 197fe60..a4d8413 100644
--- a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
+++ b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
@@ -1,6 +1,6 @@
 spv.320.meshShaderUserDefined.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 143
 
                               Capability MeshShadingNV
diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out
index f9e69e5..1166508 100644
--- a/Test/baseResults/spv.330.geom.out
+++ b/Test/baseResults/spv.330.geom.out
@@ -1,6 +1,6 @@
 spv.330.geom
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.400.frag.nanclamp.out b/Test/baseResults/spv.400.frag.nanclamp.out
index f03e938..cf1ffb0 100644
--- a/Test/baseResults/spv.400.frag.nanclamp.out
+++ b/Test/baseResults/spv.400.frag.nanclamp.out
@@ -1,6 +1,6 @@
 spv.400.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1122
 
                               Capability Shader
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index aa42d28..6786885 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -1,7 +1,7 @@
 spv.400.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1122
 
                               Capability Shader
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index b6f0ddf..a07c9b1 100644
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -1,6 +1,6 @@
 spv.400.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 92
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index 0b8abf6..58f4b97 100644
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -1,6 +1,6 @@
 spv.400.tese
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 96
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out
index d814d1a..17f2749 100644
--- a/Test/baseResults/spv.420.geom.out
+++ b/Test/baseResults/spv.420.geom.out
@@ -1,6 +1,6 @@
 spv.420.geom
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out
index bc00fa1..15da382 100644
--- a/Test/baseResults/spv.430.frag.out
+++ b/Test/baseResults/spv.430.frag.out
@@ -1,6 +1,6 @@
 spv.430.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out
index eada8d0..a6b2e34 100644
--- a/Test/baseResults/spv.430.vert.out
+++ b/Test/baseResults/spv.430.vert.out
@@ -1,7 +1,7 @@
 spv.430.vert
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/spv.450.geom.out b/Test/baseResults/spv.450.geom.out
index 5398b3c..3e7ac45 100644
--- a/Test/baseResults/spv.450.geom.out
+++ b/Test/baseResults/spv.450.geom.out
@@ -1,6 +1,6 @@
 spv.450.geom
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.450.noRedecl.tesc.out b/Test/baseResults/spv.450.noRedecl.tesc.out
index dcf0a9f..0925119 100644
--- a/Test/baseResults/spv.450.noRedecl.tesc.out
+++ b/Test/baseResults/spv.450.noRedecl.tesc.out
@@ -1,6 +1,6 @@
 spv.450.noRedecl.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out
index eabb9e7..c18ab3f 100644
--- a/Test/baseResults/spv.450.tesc.out
+++ b/Test/baseResults/spv.450.tesc.out
@@ -1,7 +1,7 @@
 spv.450.tesc
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.460.comp.out b/Test/baseResults/spv.460.comp.out
index c6abaca..d53efde 100644
--- a/Test/baseResults/spv.460.comp.out
+++ b/Test/baseResults/spv.460.comp.out
@@ -1,6 +1,6 @@
 spv.460.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.460.frag.out b/Test/baseResults/spv.460.frag.out
index 4201fbb..a8bec34 100644
--- a/Test/baseResults/spv.460.frag.out
+++ b/Test/baseResults/spv.460.frag.out
@@ -1,6 +1,6 @@
 spv.460.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/spv.460.subgroupEXT.mesh.out b/Test/baseResults/spv.460.subgroupEXT.mesh.out
index dd3de81..350f8d8 100644
--- a/Test/baseResults/spv.460.subgroupEXT.mesh.out
+++ b/Test/baseResults/spv.460.subgroupEXT.mesh.out
@@ -1,7 +1,7 @@
 spv.460.subgroupEXT.mesh
 // Module Version 10400
-// Generated by (magic number): 8000b
-// Id's are bound by 279
+// Generated by (magic number): 8000a
+// Id's are bound by 280
 
                               Capability ClipDistance
                               Capability CullDistance
@@ -19,7 +19,7 @@
                               Extension  "SPV_KHR_fragment_shading_rate"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint MeshEXT 4  "main" 35 41 57 109 147 161 162 167 168 171 172 173 174 175
+                              EntryPoint MeshEXT 4  "main" 35 41 57 109 148 162 163 168 169 172 173 174 175 176
                               ExecutionMode 4 LocalSize 32 1 1
                               ExecutionMode 4 OutputVertices 81
                               ExecutionMode 4 OutputPrimitivesNV 32
@@ -67,19 +67,19 @@
                               MemberName 106(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
                               MemberName 106(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
                               Name 109  "gl_MeshPrimitivesEXT"
-                              Name 147  "gl_PrimitiveTriangleIndicesEXT"
-                              Name 161  "gl_SubgroupSize"
-                              Name 162  "gl_SubgroupInvocationID"
-                              Name 167  "gl_NumSubgroups"
-                              Name 168  "gl_SubgroupID"
-                              Name 171  "gl_SubgroupEqMask"
-                              Name 172  "gl_SubgroupGeMask"
-                              Name 173  "gl_SubgroupGtMask"
-                              Name 174  "gl_SubgroupLeMask"
-                              Name 175  "gl_SubgroupLtMask"
-                              Name 181  "ballot"
-                              Name 218  "ballot"
-                              Name 253  "ballot"
+                              Name 148  "gl_PrimitiveTriangleIndicesEXT"
+                              Name 162  "gl_SubgroupSize"
+                              Name 163  "gl_SubgroupInvocationID"
+                              Name 168  "gl_NumSubgroups"
+                              Name 169  "gl_SubgroupID"
+                              Name 172  "gl_SubgroupEqMask"
+                              Name 173  "gl_SubgroupGeMask"
+                              Name 174  "gl_SubgroupGtMask"
+                              Name 175  "gl_SubgroupLeMask"
+                              Name 176  "gl_SubgroupLtMask"
+                              Name 182  "ballot"
+                              Name 219  "ballot"
+                              Name 254  "ballot"
                               Decorate 35(gl_LocalInvocationID) BuiltIn LocalInvocationId
                               Decorate 41(gl_WorkGroupID) BuiltIn WorkgroupId
                               MemberDecorate 54(gl_MeshPerVertexEXT) 0 BuiltIn Position
@@ -98,19 +98,19 @@
                               MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
                               MemberDecorate 106(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
                               Decorate 106(gl_MeshPerPrimitiveEXT) Block
-                              Decorate 147(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
-                              Decorate 161(gl_SubgroupSize) RelaxedPrecision
-                              Decorate 161(gl_SubgroupSize) BuiltIn SubgroupSize
-                              Decorate 162(gl_SubgroupInvocationID) RelaxedPrecision
-                              Decorate 162(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
-                              Decorate 167(gl_NumSubgroups) BuiltIn NumSubgroups
-                              Decorate 168(gl_SubgroupID) BuiltIn SubgroupId
-                              Decorate 171(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
-                              Decorate 172(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
-                              Decorate 173(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
-                              Decorate 174(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
-                              Decorate 175(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
-                              Decorate 278 BuiltIn WorkgroupSize
+                              Decorate 148(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
+                              Decorate 162(gl_SubgroupSize) RelaxedPrecision
+                              Decorate 162(gl_SubgroupSize) BuiltIn SubgroupSize
+                              Decorate 163(gl_SubgroupInvocationID) RelaxedPrecision
+                              Decorate 163(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
+                              Decorate 168(gl_NumSubgroups) BuiltIn NumSubgroups
+                              Decorate 169(gl_SubgroupID) BuiltIn SubgroupId
+                              Decorate 172(gl_SubgroupEqMask) BuiltIn SubgroupEqMaskKHR
+                              Decorate 173(gl_SubgroupGeMask) BuiltIn SubgroupGeMaskKHR
+                              Decorate 174(gl_SubgroupGtMask) BuiltIn SubgroupGtMaskKHR
+                              Decorate 175(gl_SubgroupLeMask) BuiltIn SubgroupLeMaskKHR
+                              Decorate 176(gl_SubgroupLtMask) BuiltIn SubgroupLtMaskKHR
+                              Decorate 279 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeFloat 32
@@ -161,32 +161,33 @@
              118:     59(int) Constant 8
              121:   105(bool) ConstantFalse
              122:             TypePointer Output 105(bool)
-             145:             TypeArray 33(ivec3) 47
-             146:             TypePointer Output 145
-147(gl_PrimitiveTriangleIndicesEXT):    146(ptr) Variable Output
-             148:   33(ivec3) ConstantComposite 78 78 78
-             149:             TypePointer Output 33(ivec3)
-             153:   33(ivec3) ConstantComposite 80 80 80
-161(gl_SubgroupSize):     37(ptr) Variable Input
-162(gl_SubgroupInvocationID):     37(ptr) Variable Input
-             163:     30(int) Constant 3400
-             164:     30(int) Constant 72
-             165:     30(int) Constant 2056
-167(gl_NumSubgroups):     37(ptr) Variable Input
-168(gl_SubgroupID):     37(ptr) Variable Input
-             169:             TypeVector 30(int) 4
-             170:             TypePointer Input 169(ivec4)
-171(gl_SubgroupEqMask):    170(ptr) Variable Input
-172(gl_SubgroupGeMask):    170(ptr) Variable Input
-173(gl_SubgroupGtMask):    170(ptr) Variable Input
-174(gl_SubgroupLeMask):    170(ptr) Variable Input
-175(gl_SubgroupLtMask):    170(ptr) Variable Input
-             180:             TypePointer Function 169(ivec4)
-             183:  169(ivec4) ConstantComposite 78 78 78 78
-             197:   105(bool) ConstantTrue
-             254:     30(int) Constant 85
-             255:  169(ivec4) ConstantComposite 254 36 36 36
-             278:   33(ivec3) ConstantComposite 47 78 78
+             145:     30(int) Constant 96
+             146:             TypeArray 33(ivec3) 145
+             147:             TypePointer Output 146
+148(gl_PrimitiveTriangleIndicesEXT):    147(ptr) Variable Output
+             149:   33(ivec3) ConstantComposite 78 78 78
+             150:             TypePointer Output 33(ivec3)
+             154:   33(ivec3) ConstantComposite 80 80 80
+162(gl_SubgroupSize):     37(ptr) Variable Input
+163(gl_SubgroupInvocationID):     37(ptr) Variable Input
+             164:     30(int) Constant 3400
+             165:     30(int) Constant 72
+             166:     30(int) Constant 2056
+168(gl_NumSubgroups):     37(ptr) Variable Input
+169(gl_SubgroupID):     37(ptr) Variable Input
+             170:             TypeVector 30(int) 4
+             171:             TypePointer Input 170(ivec4)
+172(gl_SubgroupEqMask):    171(ptr) Variable Input
+173(gl_SubgroupGeMask):    171(ptr) Variable Input
+174(gl_SubgroupGtMask):    171(ptr) Variable Input
+175(gl_SubgroupLeMask):    171(ptr) Variable Input
+176(gl_SubgroupLtMask):    171(ptr) Variable Input
+             181:             TypePointer Function 170(ivec4)
+             184:  170(ivec4) ConstantComposite 78 78 78 78
+             198:   105(bool) ConstantTrue
+             255:     30(int) Constant 85
+             256:  170(ivec4) ConstantComposite 255 36 36 36
+             279:   33(ivec3) ConstantComposite 47 78 78
          4(main):           2 Function None 3
                5:             Label
          32(iid):     31(ptr) Variable Function
@@ -289,159 +290,159 @@
                               Store 144 121
                               MemoryBarrier 78 79
                               ControlBarrier 80 80 79
-             150:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 60
-                              Store 150 148
-             151:     30(int) Load 46(primitiveCount)
-             152:     30(int) ISub 151 78
-             154:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 152
-                              Store 154 153
-             155:     30(int) Load 40(gid)
+             151:    150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 60
+                              Store 151 149
+             152:     30(int) Load 46(primitiveCount)
+             153:     30(int) ISub 152 78
+             155:    150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 153
+                              Store 155 154
              156:     30(int) Load 40(gid)
-             157:     30(int) ISub 156 78
-             158:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 157
-             159:   33(ivec3) Load 158
-             160:    149(ptr) AccessChain 147(gl_PrimitiveTriangleIndicesEXT) 155
-                              Store 160 159
+             157:     30(int) Load 40(gid)
+             158:     30(int) ISub 157 78
+             159:    150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 158
+             160:   33(ivec3) Load 159
+             161:    150(ptr) AccessChain 148(gl_PrimitiveTriangleIndicesEXT) 156
+                              Store 161 160
                               MemoryBarrier 78 79
                               ControlBarrier 80 80 79
                               Return
                               FunctionEnd
  6(basic_works():           2 Function None 3
                7:             Label
-                              ControlBarrier 52 52 163
-                              MemoryBarrier 52 163
+                              ControlBarrier 52 52 164
                               MemoryBarrier 52 164
                               MemoryBarrier 52 165
-             166:   105(bool) GroupNonUniformElect 52
+                              MemoryBarrier 52 166
+             167:   105(bool) GroupNonUniformElect 52
                               MemoryBarrier 52 79
                               Return
                               FunctionEnd
 13(ballot_works(vf4;):           2 Function None 11
           12(f4):     10(ptr) FunctionParameter
               14:             Label
-     181(ballot):    180(ptr) Variable Function
-             176:    9(fvec4) Load 12(f4)
-             177:    9(fvec4) GroupNonUniformBroadcast 52 176 36
-             178:    9(fvec4) Load 12(f4)
-             179:    9(fvec4) GroupNonUniformBroadcastFirst 52 178
-             182:  169(ivec4) GroupNonUniformBallot 52 121
-                              Store 181(ballot) 182
-             184:   105(bool) GroupNonUniformInverseBallot 52 183
-             185:  169(ivec4) Load 181(ballot)
-             186:   105(bool) GroupNonUniformBallotBitExtract 52 185 36
-             187:  169(ivec4) Load 181(ballot)
-             188:     30(int) GroupNonUniformBallotBitCount 52 Reduce 187
-             189:  169(ivec4) Load 181(ballot)
-             190:     30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 189
-             191:  169(ivec4) Load 181(ballot)
-             192:     30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 191
-             193:  169(ivec4) Load 181(ballot)
-             194:     30(int) GroupNonUniformBallotFindLSB 52 193
-             195:  169(ivec4) Load 181(ballot)
-             196:     30(int) GroupNonUniformBallotFindMSB 52 195
+     182(ballot):    181(ptr) Variable Function
+             177:    9(fvec4) Load 12(f4)
+             178:    9(fvec4) GroupNonUniformBroadcast 52 177 36
+             179:    9(fvec4) Load 12(f4)
+             180:    9(fvec4) GroupNonUniformBroadcastFirst 52 179
+             183:  170(ivec4) GroupNonUniformBallot 52 121
+                              Store 182(ballot) 183
+             185:   105(bool) GroupNonUniformInverseBallot 52 184
+             186:  170(ivec4) Load 182(ballot)
+             187:   105(bool) GroupNonUniformBallotBitExtract 52 186 36
+             188:  170(ivec4) Load 182(ballot)
+             189:     30(int) GroupNonUniformBallotBitCount 52 Reduce 188
+             190:  170(ivec4) Load 182(ballot)
+             191:     30(int) GroupNonUniformBallotBitCount 52 InclusiveScan 190
+             192:  170(ivec4) Load 182(ballot)
+             193:     30(int) GroupNonUniformBallotBitCount 52 ExclusiveScan 192
+             194:  170(ivec4) Load 182(ballot)
+             195:     30(int) GroupNonUniformBallotFindLSB 52 194
+             196:  170(ivec4) Load 182(ballot)
+             197:     30(int) GroupNonUniformBallotFindMSB 52 196
                               Return
                               FunctionEnd
 16(vote_works(vf4;):           2 Function None 11
           15(f4):     10(ptr) FunctionParameter
               17:             Label
-             198:   105(bool) GroupNonUniformAll 52 197
-             199:   105(bool) GroupNonUniformAny 52 121
-             200:    9(fvec4) Load 15(f4)
-             201:   105(bool) GroupNonUniformAllEqual 52 200
+             199:   105(bool) GroupNonUniformAll 52 198
+             200:   105(bool) GroupNonUniformAny 52 121
+             201:    9(fvec4) Load 15(f4)
+             202:   105(bool) GroupNonUniformAllEqual 52 201
                               Return
                               FunctionEnd
 19(shuffle_works(vf4;):           2 Function None 11
           18(f4):     10(ptr) FunctionParameter
               20:             Label
-             202:    9(fvec4) Load 18(f4)
-             203:    9(fvec4) GroupNonUniformShuffle 52 202 36
-             204:    9(fvec4) Load 18(f4)
-             205:    9(fvec4) GroupNonUniformShuffleXor 52 204 78
-             206:    9(fvec4) Load 18(f4)
-             207:    9(fvec4) GroupNonUniformShuffleUp 52 206 78
-             208:    9(fvec4) Load 18(f4)
-             209:    9(fvec4) GroupNonUniformShuffleDown 52 208 78
+             203:    9(fvec4) Load 18(f4)
+             204:    9(fvec4) GroupNonUniformShuffle 52 203 36
+             205:    9(fvec4) Load 18(f4)
+             206:    9(fvec4) GroupNonUniformShuffleXor 52 205 78
+             207:    9(fvec4) Load 18(f4)
+             208:    9(fvec4) GroupNonUniformShuffleUp 52 207 78
+             209:    9(fvec4) Load 18(f4)
+             210:    9(fvec4) GroupNonUniformShuffleDown 52 209 78
                               Return
                               FunctionEnd
 22(arith_works(vf4;):           2 Function None 11
           21(f4):     10(ptr) FunctionParameter
               23:             Label
-     218(ballot):    180(ptr) Variable Function
-             210:    9(fvec4) Load 21(f4)
-             211:    9(fvec4) GroupNonUniformFAdd 52 Reduce 210
-             212:    9(fvec4) Load 21(f4)
-             213:    9(fvec4) GroupNonUniformFMul 52 Reduce 212
-             214:    9(fvec4) Load 21(f4)
-             215:    9(fvec4) GroupNonUniformFMin 52 Reduce 214
-             216:    9(fvec4) Load 21(f4)
-             217:    9(fvec4) GroupNonUniformFMax 52 Reduce 216
-             219:  169(ivec4) Load 218(ballot)
-             220:  169(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 219
-             221:  169(ivec4) Load 218(ballot)
-             222:  169(ivec4) GroupNonUniformBitwiseOr 52 Reduce 221
-             223:  169(ivec4) Load 218(ballot)
-             224:  169(ivec4) GroupNonUniformBitwiseXor 52 Reduce 223
-             225:    9(fvec4) Load 21(f4)
-             226:    9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 225
-             227:    9(fvec4) Load 21(f4)
-             228:    9(fvec4) GroupNonUniformFMul 52 InclusiveScan 227
-             229:    9(fvec4) Load 21(f4)
-             230:    9(fvec4) GroupNonUniformFMin 52 InclusiveScan 229
-             231:    9(fvec4) Load 21(f4)
-             232:    9(fvec4) GroupNonUniformFMax 52 InclusiveScan 231
-             233:  169(ivec4) Load 218(ballot)
-             234:  169(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 233
-             235:  169(ivec4) Load 218(ballot)
-             236:  169(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 235
-             237:  169(ivec4) Load 218(ballot)
-             238:  169(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 237
-             239:    9(fvec4) Load 21(f4)
-             240:    9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 239
-             241:    9(fvec4) Load 21(f4)
-             242:    9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 241
-             243:    9(fvec4) Load 21(f4)
-             244:    9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 243
-             245:    9(fvec4) Load 21(f4)
-             246:    9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 245
-             247:  169(ivec4) Load 218(ballot)
-             248:  169(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 247
-             249:  169(ivec4) Load 218(ballot)
-             250:  169(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 249
-             251:  169(ivec4) Load 218(ballot)
-             252:  169(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 251
+     219(ballot):    181(ptr) Variable Function
+             211:    9(fvec4) Load 21(f4)
+             212:    9(fvec4) GroupNonUniformFAdd 52 Reduce 211
+             213:    9(fvec4) Load 21(f4)
+             214:    9(fvec4) GroupNonUniformFMul 52 Reduce 213
+             215:    9(fvec4) Load 21(f4)
+             216:    9(fvec4) GroupNonUniformFMin 52 Reduce 215
+             217:    9(fvec4) Load 21(f4)
+             218:    9(fvec4) GroupNonUniformFMax 52 Reduce 217
+             220:  170(ivec4) Load 219(ballot)
+             221:  170(ivec4) GroupNonUniformBitwiseAnd 52 Reduce 220
+             222:  170(ivec4) Load 219(ballot)
+             223:  170(ivec4) GroupNonUniformBitwiseOr 52 Reduce 222
+             224:  170(ivec4) Load 219(ballot)
+             225:  170(ivec4) GroupNonUniformBitwiseXor 52 Reduce 224
+             226:    9(fvec4) Load 21(f4)
+             227:    9(fvec4) GroupNonUniformFAdd 52 InclusiveScan 226
+             228:    9(fvec4) Load 21(f4)
+             229:    9(fvec4) GroupNonUniformFMul 52 InclusiveScan 228
+             230:    9(fvec4) Load 21(f4)
+             231:    9(fvec4) GroupNonUniformFMin 52 InclusiveScan 230
+             232:    9(fvec4) Load 21(f4)
+             233:    9(fvec4) GroupNonUniformFMax 52 InclusiveScan 232
+             234:  170(ivec4) Load 219(ballot)
+             235:  170(ivec4) GroupNonUniformBitwiseAnd 52 InclusiveScan 234
+             236:  170(ivec4) Load 219(ballot)
+             237:  170(ivec4) GroupNonUniformBitwiseOr 52 InclusiveScan 236
+             238:  170(ivec4) Load 219(ballot)
+             239:  170(ivec4) GroupNonUniformBitwiseXor 52 InclusiveScan 238
+             240:    9(fvec4) Load 21(f4)
+             241:    9(fvec4) GroupNonUniformFAdd 52 ExclusiveScan 240
+             242:    9(fvec4) Load 21(f4)
+             243:    9(fvec4) GroupNonUniformFMul 52 ExclusiveScan 242
+             244:    9(fvec4) Load 21(f4)
+             245:    9(fvec4) GroupNonUniformFMin 52 ExclusiveScan 244
+             246:    9(fvec4) Load 21(f4)
+             247:    9(fvec4) GroupNonUniformFMax 52 ExclusiveScan 246
+             248:  170(ivec4) Load 219(ballot)
+             249:  170(ivec4) GroupNonUniformBitwiseAnd 52 ExclusiveScan 248
+             250:  170(ivec4) Load 219(ballot)
+             251:  170(ivec4) GroupNonUniformBitwiseOr 52 ExclusiveScan 250
+             252:  170(ivec4) Load 219(ballot)
+             253:  170(ivec4) GroupNonUniformBitwiseXor 52 ExclusiveScan 252
                               Return
                               FunctionEnd
 25(clustered_works(vf4;):           2 Function None 11
           24(f4):     10(ptr) FunctionParameter
               26:             Label
-     253(ballot):    180(ptr) Variable Function
-                              Store 253(ballot) 255
-             256:    9(fvec4) Load 24(f4)
-             257:    9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 256 80
-             258:    9(fvec4) Load 24(f4)
-             259:    9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 258 80
-             260:    9(fvec4) Load 24(f4)
-             261:    9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 260 80
-             262:    9(fvec4) Load 24(f4)
-             263:    9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 262 80
-             264:  169(ivec4) Load 253(ballot)
-             265:  169(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 264 80
-             266:  169(ivec4) Load 253(ballot)
-             267:  169(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 266 80
-             268:  169(ivec4) Load 253(ballot)
-             269:  169(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 268 80
+     254(ballot):    181(ptr) Variable Function
+                              Store 254(ballot) 256
+             257:    9(fvec4) Load 24(f4)
+             258:    9(fvec4) GroupNonUniformFAdd 52 ClusteredReduce 257 80
+             259:    9(fvec4) Load 24(f4)
+             260:    9(fvec4) GroupNonUniformFMul 52 ClusteredReduce 259 80
+             261:    9(fvec4) Load 24(f4)
+             262:    9(fvec4) GroupNonUniformFMin 52 ClusteredReduce 261 80
+             263:    9(fvec4) Load 24(f4)
+             264:    9(fvec4) GroupNonUniformFMax 52 ClusteredReduce 263 80
+             265:  170(ivec4) Load 254(ballot)
+             266:  170(ivec4) GroupNonUniformBitwiseAnd 52 ClusteredReduce 265 80
+             267:  170(ivec4) Load 254(ballot)
+             268:  170(ivec4) GroupNonUniformBitwiseOr 52 ClusteredReduce 267 80
+             269:  170(ivec4) Load 254(ballot)
+             270:  170(ivec4) GroupNonUniformBitwiseXor 52 ClusteredReduce 269 80
                               Return
                               FunctionEnd
 28(quad_works(vf4;):           2 Function None 11
           27(f4):     10(ptr) FunctionParameter
               29:             Label
-             270:    9(fvec4) Load 27(f4)
-             271:    9(fvec4) GroupNonUniformQuadBroadcast 52 270 36
-             272:    9(fvec4) Load 27(f4)
-             273:    9(fvec4) GroupNonUniformQuadSwap 52 272 36
-             274:    9(fvec4) Load 27(f4)
-             275:    9(fvec4) GroupNonUniformQuadSwap 52 274 78
-             276:    9(fvec4) Load 27(f4)
-             277:    9(fvec4) GroupNonUniformQuadSwap 52 276 80
+             271:    9(fvec4) Load 27(f4)
+             272:    9(fvec4) GroupNonUniformQuadBroadcast 52 271 36
+             273:    9(fvec4) Load 27(f4)
+             274:    9(fvec4) GroupNonUniformQuadSwap 52 273 36
+             275:    9(fvec4) Load 27(f4)
+             276:    9(fvec4) GroupNonUniformQuadSwap 52 275 78
+             277:    9(fvec4) Load 27(f4)
+             278:    9(fvec4) GroupNonUniformQuadSwap 52 277 80
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.460.subgroupEXT.task.out b/Test/baseResults/spv.460.subgroupEXT.task.out
index efe30b7..5f69243 100644
--- a/Test/baseResults/spv.460.subgroupEXT.task.out
+++ b/Test/baseResults/spv.460.subgroupEXT.task.out
@@ -1,6 +1,6 @@
 spv.460.subgroupEXT.task
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 243
 
                               Capability StorageImageWriteWithoutFormat
diff --git a/Test/baseResults/spv.460.vert.out b/Test/baseResults/spv.460.vert.out
index eb75ab8..e15f364 100644
--- a/Test/baseResults/spv.460.vert.out
+++ b/Test/baseResults/spv.460.vert.out
@@ -1,6 +1,6 @@
 spv.460.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.8bit-16bit-construction.frag.out b/Test/baseResults/spv.8bit-16bit-construction.frag.out
index 9a85a6a..4eb9021 100644
--- a/Test/baseResults/spv.8bit-16bit-construction.frag.out
+++ b/Test/baseResults/spv.8bit-16bit-construction.frag.out
@@ -1,7 +1,7 @@
 spv.8bit-16bit-construction.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.8bitstorage-int.frag.out b/Test/baseResults/spv.8bitstorage-int.frag.out
index 830b3e3..00ef309 100644
--- a/Test/baseResults/spv.8bitstorage-int.frag.out
+++ b/Test/baseResults/spv.8bitstorage-int.frag.out
@@ -1,6 +1,6 @@
 spv.8bitstorage-int.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 171
 
                               Capability Shader
diff --git a/Test/baseResults/spv.8bitstorage-ssbo.vert.out b/Test/baseResults/spv.8bitstorage-ssbo.vert.out
index e8e9ca3..863eb68 100644
--- a/Test/baseResults/spv.8bitstorage-ssbo.vert.out
+++ b/Test/baseResults/spv.8bitstorage-ssbo.vert.out
@@ -1,6 +1,6 @@
 spv.8bitstorage-ssbo.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/spv.8bitstorage-ubo.vert.out b/Test/baseResults/spv.8bitstorage-ubo.vert.out
index f41f63e..c64945f 100644
--- a/Test/baseResults/spv.8bitstorage-ubo.vert.out
+++ b/Test/baseResults/spv.8bitstorage-ubo.vert.out
@@ -1,6 +1,6 @@
 spv.8bitstorage-ubo.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.8bitstorage-uint.frag.out b/Test/baseResults/spv.8bitstorage-uint.frag.out
index f372baf..5809991 100644
--- a/Test/baseResults/spv.8bitstorage-uint.frag.out
+++ b/Test/baseResults/spv.8bitstorage-uint.frag.out
@@ -1,6 +1,6 @@
 spv.8bitstorage-uint.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 173
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ARMCoreBuiltIns.frag.out b/Test/baseResults/spv.ARMCoreBuiltIns.frag.out
deleted file mode 100644
index ccfb409..0000000
--- a/Test/baseResults/spv.ARMCoreBuiltIns.frag.out
+++ /dev/null
@@ -1,61 +0,0 @@
-spv.ARMCoreBuiltIns.frag
-// Module Version 10000
-// Generated by (magic number): 8000b
-// Id's are bound by 26
-
-                              Capability Shader
-                              Capability CoreBuiltinsARM
-                              Extension  "SPV_ARM_core_builtins"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 10 14 15 17 19 21
-                              ExecutionMode 4 OriginUpperLeft
-                              Source GLSL 450
-                              SourceExtension  "GL_ARM_shader_core_builtins"
-                              Name 4  "main"
-                              Name 8  "temp"
-                              Name 10  "gl_WarpMaxIDARM"
-                              Name 14  "data"
-                              Name 15  "gl_CoreIDARM"
-                              Name 17  "gl_CoreCountARM"
-                              Name 19  "gl_CoreMaxIDARM"
-                              Name 21  "gl_WarpIDARM"
-                              Decorate 10(gl_WarpMaxIDARM) Flat
-                              Decorate 10(gl_WarpMaxIDARM) BuiltIn BuiltInWarpMaxIDARM
-                              Decorate 14(data) Location 0
-                              Decorate 15(gl_CoreIDARM) Flat
-                              Decorate 15(gl_CoreIDARM) BuiltIn CoreIDARM
-                              Decorate 17(gl_CoreCountARM) Flat
-                              Decorate 17(gl_CoreCountARM) BuiltIn CoreCountARM
-                              Decorate 19(gl_CoreMaxIDARM) Flat
-                              Decorate 19(gl_CoreMaxIDARM) BuiltIn CoreMaxIDARM
-                              Decorate 21(gl_WarpIDARM) Flat
-                              Decorate 21(gl_WarpIDARM) BuiltIn WarpIDARM
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeInt 32 0
-               7:             TypePointer Function 6(int)
-               9:             TypePointer Input 6(int)
-10(gl_WarpMaxIDARM):      9(ptr) Variable Input
-              12:             TypeVector 6(int) 4
-              13:             TypePointer Output 12(ivec4)
-        14(data):     13(ptr) Variable Output
-15(gl_CoreIDARM):      9(ptr) Variable Input
-17(gl_CoreCountARM):      9(ptr) Variable Input
-19(gl_CoreMaxIDARM):      9(ptr) Variable Input
-21(gl_WarpIDARM):      9(ptr) Variable Input
-         4(main):           2 Function None 3
-               5:             Label
-         8(temp):      7(ptr) Variable Function
-              11:      6(int) Load 10(gl_WarpMaxIDARM)
-                              Store 8(temp) 11
-              16:      6(int) Load 15(gl_CoreIDARM)
-              18:      6(int) Load 17(gl_CoreCountARM)
-              20:      6(int) Load 19(gl_CoreMaxIDARM)
-              22:      6(int) Load 21(gl_WarpIDARM)
-              23:      6(int) Load 8(temp)
-              24:      6(int) IAdd 22 23
-              25:   12(ivec4) CompositeConstruct 16 18 20 24
-                              Store 14(data) 25
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.ARMCoreBuiltIns.vert.out b/Test/baseResults/spv.ARMCoreBuiltIns.vert.out
deleted file mode 100644
index 5419be4..0000000
--- a/Test/baseResults/spv.ARMCoreBuiltIns.vert.out
+++ /dev/null
@@ -1,65 +0,0 @@
-spv.ARMCoreBuiltIns.vert
-// Module Version 10000
-// Generated by (magic number): 8000b
-// Id's are bound by 31
-
-                              Capability Shader
-                              Capability CoreBuiltinsARM
-                              Extension  "SPV_ARM_core_builtins"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 10 18 20 22 24
-                              Source GLSL 450
-                              SourceExtension  "GL_ARM_shader_core_builtins"
-                              Name 4  "main"
-                              Name 8  "temp"
-                              Name 10  "gl_WarpMaxIDARM"
-                              Name 13  "Output"
-                              MemberName 13(Output) 0  "result"
-                              Name 15  ""
-                              Name 18  "gl_CoreIDARM"
-                              Name 20  "gl_CoreCountARM"
-                              Name 22  "gl_CoreMaxIDARM"
-                              Name 24  "gl_WarpIDARM"
-                              Decorate 10(gl_WarpMaxIDARM) BuiltIn BuiltInWarpMaxIDARM
-                              MemberDecorate 13(Output) 0 Offset 0
-                              Decorate 13(Output) BufferBlock
-                              Decorate 15 DescriptorSet 0
-                              Decorate 15 Binding 0
-                              Decorate 18(gl_CoreIDARM) BuiltIn CoreIDARM
-                              Decorate 20(gl_CoreCountARM) BuiltIn CoreCountARM
-                              Decorate 22(gl_CoreMaxIDARM) BuiltIn CoreMaxIDARM
-                              Decorate 24(gl_WarpIDARM) BuiltIn WarpIDARM
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeInt 32 0
-               7:             TypePointer Function 6(int)
-               9:             TypePointer Input 6(int)
-10(gl_WarpMaxIDARM):      9(ptr) Variable Input
-              12:             TypeVector 6(int) 4
-      13(Output):             TypeStruct 12(ivec4)
-              14:             TypePointer Uniform 13(Output)
-              15:     14(ptr) Variable Uniform
-              16:             TypeInt 32 1
-              17:     16(int) Constant 0
-18(gl_CoreIDARM):      9(ptr) Variable Input
-20(gl_CoreCountARM):      9(ptr) Variable Input
-22(gl_CoreMaxIDARM):      9(ptr) Variable Input
-24(gl_WarpIDARM):      9(ptr) Variable Input
-              29:             TypePointer Uniform 12(ivec4)
-         4(main):           2 Function None 3
-               5:             Label
-         8(temp):      7(ptr) Variable Function
-              11:      6(int) Load 10(gl_WarpMaxIDARM)
-                              Store 8(temp) 11
-              19:      6(int) Load 18(gl_CoreIDARM)
-              21:      6(int) Load 20(gl_CoreCountARM)
-              23:      6(int) Load 22(gl_CoreMaxIDARM)
-              25:      6(int) Load 24(gl_WarpIDARM)
-              26:      6(int) Load 8(temp)
-              27:      6(int) IAdd 25 26
-              28:   12(ivec4) CompositeConstruct 19 21 23 27
-              30:     29(ptr) AccessChain 15 17
-                              Store 30 28
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.AnyHitShader.rahit.out b/Test/baseResults/spv.AnyHitShader.rahit.out
index d075b36..c893f88 100644
--- a/Test/baseResults/spv.AnyHitShader.rahit.out
+++ b/Test/baseResults/spv.AnyHitShader.rahit.out
@@ -1,6 +1,6 @@
 spv.AnyHitShader.rahit
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 81
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.AnyHitShaderMotion.rahit.out b/Test/baseResults/spv.AnyHitShaderMotion.rahit.out
index 3d859db..f9e1e1b 100644
--- a/Test/baseResults/spv.AnyHitShaderMotion.rahit.out
+++ b/Test/baseResults/spv.AnyHitShaderMotion.rahit.out
@@ -1,6 +1,6 @@
 spv.AnyHitShaderMotion.rahit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 14
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out
index b2df36a..57cdcb0 100644
--- a/Test/baseResults/spv.AofA.frag.out
+++ b/Test/baseResults/spv.AofA.frag.out
@@ -3,7 +3,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 104
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ClosestHitShader.rchit.out b/Test/baseResults/spv.ClosestHitShader.rchit.out
index 80b5115..b76629c 100644
--- a/Test/baseResults/spv.ClosestHitShader.rchit.out
+++ b/Test/baseResults/spv.ClosestHitShader.rchit.out
@@ -1,6 +1,6 @@
 spv.ClosestHitShader.rchit
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 88
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out b/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out
index e20df80..45679eb 100644
--- a/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out
+++ b/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out
@@ -1,6 +1,6 @@
 spv.ClosestHitShaderMotion.rchit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
index 57fa691..4b29238 100644
--- a/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
+++ b/Test/baseResults/spv.GeometryShaderPassthrough.geom.out
@@ -1,6 +1,6 @@
 spv.GeometryShaderPassthrough.geom
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.IntersectShader.rint.out b/Test/baseResults/spv.IntersectShader.rint.out
index 81d86cd..7b0058c 100644
--- a/Test/baseResults/spv.IntersectShader.rint.out
+++ b/Test/baseResults/spv.IntersectShader.rint.out
@@ -1,6 +1,6 @@
 spv.IntersectShader.rint
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 71
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.IntersectShaderMotion.rint.out b/Test/baseResults/spv.IntersectShaderMotion.rint.out
index b3326ee..f77c9a8 100644
--- a/Test/baseResults/spv.IntersectShaderMotion.rint.out
+++ b/Test/baseResults/spv.IntersectShaderMotion.rint.out
@@ -1,6 +1,6 @@
 spv.IntersectShaderMotion.rint
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 14
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.MissShader.rmiss.out b/Test/baseResults/spv.MissShader.rmiss.out
index 581c0c6..e573bba 100644
--- a/Test/baseResults/spv.MissShader.rmiss.out
+++ b/Test/baseResults/spv.MissShader.rmiss.out
@@ -1,6 +1,6 @@
 spv.MissShader.rmiss
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 59
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.MissShaderMotion.rmiss.out b/Test/baseResults/spv.MissShaderMotion.rmiss.out
index 220dda9..185c934 100644
--- a/Test/baseResults/spv.MissShaderMotion.rmiss.out
+++ b/Test/baseResults/spv.MissShaderMotion.rmiss.out
@@ -1,6 +1,6 @@
 spv.MissShaderMotion.rmiss
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.OVR_multiview.vert.out b/Test/baseResults/spv.OVR_multiview.vert.out
index df7d949..90afed2 100644
--- a/Test/baseResults/spv.OVR_multiview.vert.out
+++ b/Test/baseResults/spv.OVR_multiview.vert.out
@@ -1,6 +1,6 @@
 spv.OVR_multiview.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index f9059c6..fc8e241 100644
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -1,6 +1,6 @@
 spv.Operations.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 591
 
                               Capability Shader
diff --git a/Test/baseResults/spv.RayCallable.rcall.out b/Test/baseResults/spv.RayCallable.rcall.out
index 1eff1fa..75698fc 100644
--- a/Test/baseResults/spv.RayCallable.rcall.out
+++ b/Test/baseResults/spv.RayCallable.rcall.out
@@ -1,6 +1,6 @@
 spv.RayCallable.rcall
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.RayConstants.rgen.out b/Test/baseResults/spv.RayConstants.rgen.out
index ebdcb50..962aeb7 100644
--- a/Test/baseResults/spv.RayConstants.rgen.out
+++ b/Test/baseResults/spv.RayConstants.rgen.out
@@ -1,6 +1,6 @@
 spv.RayConstants.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.RayGenShader.rgen.out b/Test/baseResults/spv.RayGenShader.rgen.out
index 01fdbf0..b708537 100644
--- a/Test/baseResults/spv.RayGenShader.rgen.out
+++ b/Test/baseResults/spv.RayGenShader.rgen.out
@@ -1,6 +1,6 @@
 spv.RayGenShader.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 54
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.RayGenShader11.rgen.out b/Test/baseResults/spv.RayGenShader11.rgen.out
index ae55e65..48509b0 100644
--- a/Test/baseResults/spv.RayGenShader11.rgen.out
+++ b/Test/baseResults/spv.RayGenShader11.rgen.out
@@ -1,6 +1,6 @@
 spv.RayGenShader11.rgen
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability RayTracingNV
diff --git a/Test/baseResults/spv.RayGenShaderArray.rgen.out b/Test/baseResults/spv.RayGenShaderArray.rgen.out
index c3bd191..8ddfca9 100644
--- a/Test/baseResults/spv.RayGenShaderArray.rgen.out
+++ b/Test/baseResults/spv.RayGenShaderArray.rgen.out
@@ -1,6 +1,6 @@
 spv.RayGenShaderArray.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 89
 
                               Capability ShaderNonUniformEXT
diff --git a/Test/baseResults/spv.RayGenShaderMotion.rgen.out b/Test/baseResults/spv.RayGenShaderMotion.rgen.out
index 9a3421c..a6af236 100644
--- a/Test/baseResults/spv.RayGenShaderMotion.rgen.out
+++ b/Test/baseResults/spv.RayGenShaderMotion.rgen.out
@@ -1,6 +1,6 @@
 spv.RayGenShaderMotion.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 47
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out
index 4001462..31dd2dd 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.16BitAccess.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out
index d0906a4..3447791 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.8BitAccess.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out
index 2a15286..b578bd3 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.MultiBlock.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out
index 9a9e919..19bcff6 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.NonBlock.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.NonBlock.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out
index cb3bd31..413fd2e 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.SingleBlock.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 19
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out
index 3d7ece1..6a43e23 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.scalar.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.scalar.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out
index 5c8f86d..df4b8ae 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std140.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.std140.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out
index bfc35e9..e782784 100644
--- a/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out
+++ b/Test/baseResults/spv.WorkgroupMemoryExplicitLayout.std430.comp.out
@@ -1,6 +1,6 @@
 spv.WorkgroupMemoryExplicitLayout.std430.comp
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index 2426999..379131b 100644
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -1,6 +1,6 @@
 spv.accessChain.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 228
 
                               Capability Shader
diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out
index bc19f23..05b14ea 100644
--- a/Test/baseResults/spv.aggOps.frag.out
+++ b/Test/baseResults/spv.aggOps.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 215
 
                               Capability Shader
diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out
index ba3331a..ed21b38 100644
--- a/Test/baseResults/spv.always-discard.frag.out
+++ b/Test/baseResults/spv.always-discard.frag.out
@@ -1,6 +1,6 @@
 spv.always-discard.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out
index 60262f7..5e7ac9f 100644
--- a/Test/baseResults/spv.always-discard2.frag.out
+++ b/Test/baseResults/spv.always-discard2.frag.out
@@ -1,6 +1,6 @@
 spv.always-discard2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/spv.arbPostDepthCoverage.frag.out b/Test/baseResults/spv.arbPostDepthCoverage.frag.out
index 5daa156..9b911cf 100644
--- a/Test/baseResults/spv.arbPostDepthCoverage.frag.out
+++ b/Test/baseResults/spv.arbPostDepthCoverage.frag.out
@@ -1,6 +1,6 @@
 spv.arbPostDepthCoverage.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.atomiAddEXT.task.out b/Test/baseResults/spv.atomiAddEXT.task.out
index 9ff35aa..4b58f15 100644
--- a/Test/baseResults/spv.atomiAddEXT.task.out
+++ b/Test/baseResults/spv.atomiAddEXT.task.out
@@ -1,6 +1,6 @@
 spv.atomiAddEXT.task
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability MeshShadingEXT
diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out
index 7c001ae..e74066c 100644
--- a/Test/baseResults/spv.atomic.comp.out
+++ b/Test/baseResults/spv.atomic.comp.out
@@ -1,6 +1,6 @@
 spv.atomic.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Shader
diff --git a/Test/baseResults/spv.atomicAdd.bufferReference.comp.out b/Test/baseResults/spv.atomicAdd.bufferReference.comp.out
index a00c45a..9ecc742 100644
--- a/Test/baseResults/spv.atomicAdd.bufferReference.comp.out
+++ b/Test/baseResults/spv.atomicAdd.bufferReference.comp.out
@@ -1,6 +1,6 @@
 spv.atomicAdd.bufferReference.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 188
 
                               Capability Shader
diff --git a/Test/baseResults/spv.atomicFloat.comp.out b/Test/baseResults/spv.atomicFloat.comp.out
index acb5d81..3799557 100644
--- a/Test/baseResults/spv.atomicFloat.comp.out
+++ b/Test/baseResults/spv.atomicFloat.comp.out
@@ -1,6 +1,6 @@
 spv.atomicFloat.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 470
 
                               Capability Shader
diff --git a/Test/baseResults/spv.atomicInt64.comp.out b/Test/baseResults/spv.atomicInt64.comp.out
index 24805cc..5b2e134 100644
--- a/Test/baseResults/spv.atomicInt64.comp.out
+++ b/Test/baseResults/spv.atomicInt64.comp.out
@@ -1,6 +1,6 @@
 spv.atomicInt64.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 149
 
                               Capability Shader
diff --git a/Test/baseResults/spv.atomicStoreInt64.comp.out b/Test/baseResults/spv.atomicStoreInt64.comp.out
index c2b3f30..3adadcb 100644
--- a/Test/baseResults/spv.atomicStoreInt64.comp.out
+++ b/Test/baseResults/spv.atomicStoreInt64.comp.out
@@ -1,6 +1,6 @@
 spv.atomicStoreInt64.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/spv.barrier.vert.out b/Test/baseResults/spv.barrier.vert.out
index 5208412..7199882 100644
--- a/Test/baseResults/spv.barrier.vert.out
+++ b/Test/baseResults/spv.barrier.vert.out
@@ -1,6 +1,6 @@
 spv.barrier.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out
index 9b3c9ec..88b2a09 100644
--- a/Test/baseResults/spv.bitCast.frag.out
+++ b/Test/baseResults/spv.bitCast.frag.out
@@ -1,6 +1,6 @@
 spv.bitCast.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 198
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bool.vert.out b/Test/baseResults/spv.bool.vert.out
index 265d900..fb7c686 100644
--- a/Test/baseResults/spv.bool.vert.out
+++ b/Test/baseResults/spv.bool.vert.out
@@ -1,6 +1,6 @@
 spv.bool.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 46
 
                               Capability Shader
diff --git a/Test/baseResults/spv.boolInBlock.frag.out b/Test/baseResults/spv.boolInBlock.frag.out
index c234cb4..004c204 100644
--- a/Test/baseResults/spv.boolInBlock.frag.out
+++ b/Test/baseResults/spv.boolInBlock.frag.out
@@ -1,6 +1,6 @@
 spv.boolInBlock.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 102
 
                               Capability Shader
diff --git a/Test/baseResults/spv.branch-return.vert.out b/Test/baseResults/spv.branch-return.vert.out
index 53ef876..30918ab 100644
--- a/Test/baseResults/spv.branch-return.vert.out
+++ b/Test/baseResults/spv.branch-return.vert.out
@@ -1,6 +1,6 @@
 spv.branch-return.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out
index 3afe643..3475266 100644
--- a/Test/baseResults/spv.buffer.autoassign.frag.out
+++ b/Test/baseResults/spv.buffer.autoassign.frag.out
@@ -1,6 +1,6 @@
 spv.buffer.autoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle1.frag.out b/Test/baseResults/spv.bufferhandle1.frag.out
index c44ad2a..b49c129 100644
--- a/Test/baseResults/spv.bufferhandle1.frag.out
+++ b/Test/baseResults/spv.bufferhandle1.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle1.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 52
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle10.frag.out b/Test/baseResults/spv.bufferhandle10.frag.out
index 93c3f70..f9ab60d 100644
--- a/Test/baseResults/spv.bufferhandle10.frag.out
+++ b/Test/baseResults/spv.bufferhandle10.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle10.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle11.frag.out b/Test/baseResults/spv.bufferhandle11.frag.out
index eec3cf3..9dd1c7b 100644
--- a/Test/baseResults/spv.bufferhandle11.frag.out
+++ b/Test/baseResults/spv.bufferhandle11.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 61
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle12.frag.out b/Test/baseResults/spv.bufferhandle12.frag.out
index 319684f..7cd5cb5 100644
--- a/Test/baseResults/spv.bufferhandle12.frag.out
+++ b/Test/baseResults/spv.bufferhandle12.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 183
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle13.frag.out b/Test/baseResults/spv.bufferhandle13.frag.out
index dd43089..5ce24ac 100644
--- a/Test/baseResults/spv.bufferhandle13.frag.out
+++ b/Test/baseResults/spv.bufferhandle13.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle13.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle14.frag.out b/Test/baseResults/spv.bufferhandle14.frag.out
index 4f994e1..34df753 100644
--- a/Test/baseResults/spv.bufferhandle14.frag.out
+++ b/Test/baseResults/spv.bufferhandle14.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle14.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 46
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle15.frag.out b/Test/baseResults/spv.bufferhandle15.frag.out
index 34d3d59..ab1b4db 100644
--- a/Test/baseResults/spv.bufferhandle15.frag.out
+++ b/Test/baseResults/spv.bufferhandle15.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle16.frag.out b/Test/baseResults/spv.bufferhandle16.frag.out
index ee04d36..a9d9dcf 100644
--- a/Test/baseResults/spv.bufferhandle16.frag.out
+++ b/Test/baseResults/spv.bufferhandle16.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle16.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 48
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle18.frag.out b/Test/baseResults/spv.bufferhandle18.frag.out
index 97c961a..59ad6d0 100644
--- a/Test/baseResults/spv.bufferhandle18.frag.out
+++ b/Test/baseResults/spv.bufferhandle18.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle18.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 196
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle2.frag.out b/Test/baseResults/spv.bufferhandle2.frag.out
index 31a39f2..e20f3b7 100644
--- a/Test/baseResults/spv.bufferhandle2.frag.out
+++ b/Test/baseResults/spv.bufferhandle2.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle3.frag.out b/Test/baseResults/spv.bufferhandle3.frag.out
index 9f66b5c..65ad1ca 100644
--- a/Test/baseResults/spv.bufferhandle3.frag.out
+++ b/Test/baseResults/spv.bufferhandle3.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle3.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle4.frag.out b/Test/baseResults/spv.bufferhandle4.frag.out
index 1ccb609..e06bca4 100644
--- a/Test/baseResults/spv.bufferhandle4.frag.out
+++ b/Test/baseResults/spv.bufferhandle4.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle4.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 61
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle5.frag.out b/Test/baseResults/spv.bufferhandle5.frag.out
index 0bcb34b..bf4d3a2 100644
--- a/Test/baseResults/spv.bufferhandle5.frag.out
+++ b/Test/baseResults/spv.bufferhandle5.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle5.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle6.frag.out b/Test/baseResults/spv.bufferhandle6.frag.out
index 758a30b..abc9187 100644
--- a/Test/baseResults/spv.bufferhandle6.frag.out
+++ b/Test/baseResults/spv.bufferhandle6.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle6.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 165
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle7.frag.out b/Test/baseResults/spv.bufferhandle7.frag.out
index 070adb7..4282a36 100644
--- a/Test/baseResults/spv.bufferhandle7.frag.out
+++ b/Test/baseResults/spv.bufferhandle7.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle7.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle8.frag.out b/Test/baseResults/spv.bufferhandle8.frag.out
index 4960144..65d4665 100644
--- a/Test/baseResults/spv.bufferhandle8.frag.out
+++ b/Test/baseResults/spv.bufferhandle8.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle8.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandle9.frag.out b/Test/baseResults/spv.bufferhandle9.frag.out
index ff7ede7..1e5091c 100644
--- a/Test/baseResults/spv.bufferhandle9.frag.out
+++ b/Test/baseResults/spv.bufferhandle9.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandle9.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 56
 
                               Capability Shader
diff --git a/Test/baseResults/spv.bufferhandleUvec2.frag.out b/Test/baseResults/spv.bufferhandleUvec2.frag.out
index 133190e..fbdbb6a 100644
--- a/Test/baseResults/spv.bufferhandleUvec2.frag.out
+++ b/Test/baseResults/spv.bufferhandleUvec2.frag.out
@@ -1,6 +1,6 @@
 spv.bufferhandleUvec2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 71
 
                               Capability Shader
diff --git a/Test/baseResults/spv.builtInXFB.vert.out b/Test/baseResults/spv.builtInXFB.vert.out
index b3a3e12..1f612e2 100644
--- a/Test/baseResults/spv.builtInXFB.vert.out
+++ b/Test/baseResults/spv.builtInXFB.vert.out
@@ -1,6 +1,6 @@
 spv.builtInXFB.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out b/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out
index 0191185..8daa79e 100644
--- a/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out
+++ b/Test/baseResults/spv.builtin.PrimitiveShadingRateEXT.vert.out
@@ -1,6 +1,6 @@
 spv.builtin.PrimitiveShadingRateEXT.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out b/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out
index 5707fb9..95b94d2 100644
--- a/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out
+++ b/Test/baseResults/spv.builtin.ShadingRateEXT.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 12
 
                               Capability Shader
diff --git a/Test/baseResults/spv.computeShaderDerivatives.comp.out b/Test/baseResults/spv.computeShaderDerivatives.comp.out
index 4761078..a713845 100644
--- a/Test/baseResults/spv.computeShaderDerivatives.comp.out
+++ b/Test/baseResults/spv.computeShaderDerivatives.comp.out
@@ -1,6 +1,6 @@
 spv.computeShaderDerivatives.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 212
 
                               Capability Shader
diff --git a/Test/baseResults/spv.computeShaderDerivatives2.comp.out b/Test/baseResults/spv.computeShaderDerivatives2.comp.out
index 52b5474..3c3d54e 100644
--- a/Test/baseResults/spv.computeShaderDerivatives2.comp.out
+++ b/Test/baseResults/spv.computeShaderDerivatives2.comp.out
@@ -1,6 +1,6 @@
 spv.computeShaderDerivatives2.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 212
 
                               Capability Shader
diff --git a/Test/baseResults/spv.conditionalDemote.frag.out b/Test/baseResults/spv.conditionalDemote.frag.out
index 84c816b..dfd4596 100644
--- a/Test/baseResults/spv.conditionalDemote.frag.out
+++ b/Test/baseResults/spv.conditionalDemote.frag.out
@@ -1,6 +1,6 @@
 spv.conditionalDemote.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out
index f31fa85..2e53e9b 100644
--- a/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -1,6 +1,6 @@
 spv.conditionalDiscard.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/spv.constConstruct.vert.out b/Test/baseResults/spv.constConstruct.vert.out
index 3dc42ed..a8d5097 100644
--- a/Test/baseResults/spv.constConstruct.vert.out
+++ b/Test/baseResults/spv.constConstruct.vert.out
@@ -1,6 +1,6 @@
 spv.constConstruct.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 150
 
                               Capability Shader
diff --git a/Test/baseResults/spv.constStruct.vert.out b/Test/baseResults/spv.constStruct.vert.out
index 6abc009..61d0e54 100644
--- a/Test/baseResults/spv.constStruct.vert.out
+++ b/Test/baseResults/spv.constStruct.vert.out
@@ -1,6 +1,6 @@
 spv.constStruct.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.constructComposite.comp.out b/Test/baseResults/spv.constructComposite.comp.out
index 491a33f..73d663b 100644
--- a/Test/baseResults/spv.constructComposite.comp.out
+++ b/Test/baseResults/spv.constructComposite.comp.out
@@ -1,6 +1,6 @@
 spv.constructComposite.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.controlFlowAttributes.frag.out b/Test/baseResults/spv.controlFlowAttributes.frag.out
index 038711d..cf34ae2 100644
--- a/Test/baseResults/spv.controlFlowAttributes.frag.out
+++ b/Test/baseResults/spv.controlFlowAttributes.frag.out
@@ -9,7 +9,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 123
 
                               Capability Shader
diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index 5ddf7db..b600b38 100644
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -1,6 +1,6 @@
 spv.conversion.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 455
 
                               Capability Shader
diff --git a/Test/baseResults/spv.coopmat.comp.out b/Test/baseResults/spv.coopmat.comp.out
index b594af2..0a609df 100644
--- a/Test/baseResults/spv.coopmat.comp.out
+++ b/Test/baseResults/spv.coopmat.comp.out
@@ -1,6 +1,6 @@
 spv.coopmat.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 228
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out
index b3bc623..980d1bd 100644
--- a/Test/baseResults/spv.dataOut.frag.out
+++ b/Test/baseResults/spv.dataOut.frag.out
@@ -1,7 +1,7 @@
 spv.dataOut.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out
index d07cfe9..a75e8d5 100644
--- a/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -1,6 +1,6 @@
 spv.dataOutIndirect.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index 712cd13..1c29410 100644
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -2,7 +2,7 @@
 WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-after-continue.vert.out b/Test/baseResults/spv.dead-after-continue.vert.out
index 1102481..6d8d7d9 100644
--- a/Test/baseResults/spv.dead-after-continue.vert.out
+++ b/Test/baseResults/spv.dead-after-continue.vert.out
@@ -1,6 +1,6 @@
 spv.dead-after-continue.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-after-discard.frag.out b/Test/baseResults/spv.dead-after-discard.frag.out
index 2948e22..987f5a2 100644
--- a/Test/baseResults/spv.dead-after-discard.frag.out
+++ b/Test/baseResults/spv.dead-after-discard.frag.out
@@ -1,6 +1,6 @@
 spv.dead-after-discard.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-after-loop-break.vert.out b/Test/baseResults/spv.dead-after-loop-break.vert.out
index 490dbcc..2d9e35a 100644
--- a/Test/baseResults/spv.dead-after-loop-break.vert.out
+++ b/Test/baseResults/spv.dead-after-loop-break.vert.out
@@ -1,6 +1,6 @@
 spv.dead-after-loop-break.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-after-return.vert.out b/Test/baseResults/spv.dead-after-return.vert.out
index 0969363..d6ba2c7 100644
--- a/Test/baseResults/spv.dead-after-return.vert.out
+++ b/Test/baseResults/spv.dead-after-return.vert.out
@@ -1,6 +1,6 @@
 spv.dead-after-return.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 14
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-after-switch-break.vert.out b/Test/baseResults/spv.dead-after-switch-break.vert.out
index 744355d..f8bc4d0 100644
--- a/Test/baseResults/spv.dead-after-switch-break.vert.out
+++ b/Test/baseResults/spv.dead-after-switch-break.vert.out
@@ -1,6 +1,6 @@
 spv.dead-after-switch-break.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-complex-continue-after-return.vert.out b/Test/baseResults/spv.dead-complex-continue-after-return.vert.out
index 3c41ff8..3db78ec 100644
--- a/Test/baseResults/spv.dead-complex-continue-after-return.vert.out
+++ b/Test/baseResults/spv.dead-complex-continue-after-return.vert.out
@@ -1,6 +1,6 @@
 spv.dead-complex-continue-after-return.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/spv.dead-complex-merge-after-return.vert.out b/Test/baseResults/spv.dead-complex-merge-after-return.vert.out
index 52431a3..cc1b25c 100644
--- a/Test/baseResults/spv.dead-complex-merge-after-return.vert.out
+++ b/Test/baseResults/spv.dead-complex-merge-after-return.vert.out
@@ -1,6 +1,6 @@
 spv.dead-complex-merge-after-return.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 36
 
                               Capability Shader
diff --git a/Test/baseResults/spv.debugInfo.1.1.frag.out b/Test/baseResults/spv.debugInfo.1.1.frag.out
index 67175de..fbf373b 100644
--- a/Test/baseResults/spv.debugInfo.1.1.frag.out
+++ b/Test/baseResults/spv.debugInfo.1.1.frag.out
@@ -1,6 +1,6 @@
 spv.debugInfo.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 124
 
                               Capability Shader
diff --git a/Test/baseResults/spv.debugInfo.frag.out b/Test/baseResults/spv.debugInfo.frag.out
index b9eb496..9a9e0d9 100644
--- a/Test/baseResults/spv.debugInfo.frag.out
+++ b/Test/baseResults/spv.debugInfo.frag.out
@@ -1,6 +1,6 @@
 spv.debugInfo.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 124
 
                               Capability Shader
diff --git a/Test/baseResults/spv.debugPrintf.frag.out b/Test/baseResults/spv.debugPrintf.frag.out
index 428e598..6517415 100644
--- a/Test/baseResults/spv.debugPrintf.frag.out
+++ b/Test/baseResults/spv.debugPrintf.frag.out
@@ -1,6 +1,6 @@
 spv.debugPrintf.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out b/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out
deleted file mode 100644
index a315f6d..0000000
--- a/Test/baseResults/spv.debuginfo.const_params.glsl.comp.out
+++ /dev/null
@@ -1,84 +0,0 @@
-spv.debuginfo.const_params.glsl.comp
-Validation failed
-// Module Version 10000
-// Generated by (magic number): 8000b
-// Id's are bound by 64
-
-                              Capability Shader
-                              Extension  "SPV_KHR_non_semantic_info"
-               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
-               2:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 13  "main"
-                              ExecutionMode 13 LocalSize 1 1 1
-               8:             String  "uint"
-              14:             String  "main"
-              17:             String  ""
-              24:             String  "float"
-              39:             String  "function"
-              45:             String  "f"
-              49:             String  "f2"
-              52:             String  "f3"
-              55:             String  "f4"
-                              Name 13  "main"
-                              Name 38  "function(f1;vf2;vf3;vf4;"
-                              Name 34  "f"
-                              Name 35  "f2"
-                              Name 36  "f3"
-                              Name 37  "f4"
-               3:             TypeVoid
-               4:             TypeFunction 3
-               6:             TypeInt 32 0
-               9:      6(int) Constant 32
-              10:      6(int) Constant 6
-              11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
-              12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
-              19:      6(int) Constant 1
-              20:      6(int) Constant 4
-              21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
-              23:             TypeFloat 32
-              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 24 9 12 11
-              26:             TypeVector 23(float) 2
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 21
-              28:             TypeVector 23(float) 3
-              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 12
-              30:             TypeVector 23(float) 4
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 20
-              32:             TypeFunction 3 23(float) 26(fvec2) 28(fvec3) 30(fvec4)
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3 25 27 29 31
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 39 33 16 11 11 18 39 12 11
-              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 25 16 11 11 40 20 19
-              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 27 16 11 11 40 20 21
-              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 29 16 11 11 40 20 12
-              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 55 31 16 11 11 40 20 20
-              59:   23(float) Constant 0
-              60:   26(fvec2) ConstantComposite 59 59
-              61:   28(fvec3) ConstantComposite 59 59 59
-              62:   30(fvec4) ConstantComposite 59 59 59 59
-        13(main):           3 Function None 4
-              22:             Label
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
-              63:           3 FunctionCall 38(function(f1;vf2;vf3;vf4;) 59 60 61 62
-                              Return
-                              FunctionEnd
-38(function(f1;vf2;vf3;vf4;):           3 Function None 32
-           34(f):   23(float) FunctionParameter
-          35(f2):   26(fvec2) FunctionParameter
-          36(f3):   28(fvec3) FunctionParameter
-          37(f4):   30(fvec4) FunctionParameter
-              41:             Label
-              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 44 34(f) 47
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 35(f2) 47
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 51 36(f3) 47
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 54 37(f4) 47
-              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 40 38(function(f1;vf2;vf3;vf4;)
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.debuginfo.glsl.comp.out b/Test/baseResults/spv.debuginfo.glsl.comp.out
index 820d12b..aaef897 100644
--- a/Test/baseResults/spv.debuginfo.glsl.comp.out
+++ b/Test/baseResults/spv.debuginfo.glsl.comp.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.comp
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 817
 
                               Capability Shader
@@ -157,168 +157,168 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               23:             TypeFloat 32
-              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 24 9 12 11
+              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 24 9 12 11
               26:             TypeVector 23(float) 3
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 12
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 12
               28:             TypePointer Function 26(fvec3)
               29:             TypePointer Function 23(float)
               30:             TypeFunction 26(fvec3) 28(ptr) 28(ptr) 29(ptr)
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 27 27 27 25
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 36 31 16 11 11 18 36 12 11
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 42 27 16 11 11 37 20 19
-              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 27 16 11 11 37 20 21
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 25 16 11 11 37 20 12
+              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 27 27 27 25
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 36 31 16 11 11 18 36 12 11
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 42 27 16 11 11 37 20 19
+              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 46 27 16 11 11 37 20 21
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 49 25 16 11 11 37 20 12
               55:      6(int) Constant 68
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 54 27 16 55 11 37 20
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 54 27 16 55 11 37 20
               62:             TypeVector 23(float) 4
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 20
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 20
               64:             TypeInt 32 1
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 65 9 20 11
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 65 9 20 11
               67:             TypeVector 64(int) 2
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 66 21
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 66 21
          69(UBO):             TypeStruct 23(float) 23(float) 23(float) 23(float) 23(float) 23(float) 23(float) 23(float) 62(fvec4) 62(fvec4) 67(ivec2)
               72:      6(int) Constant 56
               73:      6(int) Constant 8
-              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 71 25 16 72 73 11 11 12
+              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 71 25 16 72 73 11 11 12
               83:      6(int) Constant 58
               84:      6(int) Constant 7
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 82 63 16 83 84 11 11 12
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 82 63 16 83 84 11 11 12
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 82 63 16 83 84 11 11 12
+              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 82 63 16 83 84 11 11 12
               88:      6(int) Constant 59
-              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 87 68 16 88 73 11 11 12
+              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 87 68 16 88 73 11 11 12
               91:      6(int) Constant 69
-              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 90 19 16 91 11 18 90 11 12 70 74 75 76 77 78 79 80 81 85 86
+              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 90 19 16 91 11 18 90 11 12 70 74 75 76 77 78 79 80 81 85 86
               92:             TypePointer Uniform 69(UBO)
       93(params):     92(ptr) Variable Uniform
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 95 89 16 91 11 18 95 93(params) 73
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 95 89 16 91 11 18 95 93(params) 73
               96:     64(int) Constant 2
               97:             TypePointer Uniform 23(float)
              109:             TypeVector 6(int) 3
-             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 7 12
+             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 7 12
              111:             TypePointer Function 109(ivec3)
              115:      6(int) Constant 74
-             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 114 110 16 115 11 15 20
+             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 114 110 16 115 11 15 20
              117:             TypePointer Input 109(ivec3)
 118(gl_GlobalInvocationID):    117(ptr) Variable Input
-             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 120 110 16 115 11 18 120 118(gl_GlobalInvocationID) 73
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 120 110 16 115 11 18 120 118(gl_GlobalInvocationID) 73
              122:             TypePointer Function 6(int)
              126:      6(int) Constant 76
-             124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 125 7 16 126 11 15 20
+             124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 125 7 16 126 11 15 20
              130:     64(int) Constant 10
              131:             TypePointer Uniform 64(int)
              146:             TypeBool
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
    153(Particle):             TypeStruct 62(fvec4) 62(fvec4) 62(fvec4) 62(fvec4) 23(float)
              156:      6(int) Constant 31
-             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 63 16 156 84 11 11 12
-             157:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 63 16 156 84 11 11 12
-             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 63 16 156 84 11 11 12
-             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 155 63 16 156 84 11 11 12
-             160:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 161 25 16 9 73 11 11 12
+             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 155 63 16 156 84 11 11 12
+             157:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 155 63 16 156 84 11 11 12
+             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 155 63 16 156 84 11 11 12
+             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 155 63 16 156 84 11 11 12
+             160:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 161 25 16 9 73 11 11 12
              164:      6(int) Constant 81
-             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 163 19 16 164 11 18 163 11 12 154 157 158 159 160
+             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 163 19 16 164 11 18 163 11 12 154 157 158 159 160
              165:             TypeRuntimeArray 153(Particle)
-             166:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 162 11
+             166:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 162 11
  167(ParticleIn):             TypeStruct 165
              170:      6(int) Constant 36
              171:      6(int) Constant 11
-             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 169 166 16 170 171 11 11 12
-             172:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 173 19 16 164 11 18 173 11 12 168
+             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 169 166 16 170 171 11 11 12
+             172:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 173 19 16 164 11 18 173 11 12 168
              174:             TypePointer Uniform 167(ParticleIn)
              175:    174(ptr) Variable Uniform
-             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 17 172 16 164 11 18 17 175 73
+             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 172 16 164 11 18 17 175 73
              177:     64(int) Constant 0
              179:     64(int) Constant 4
              182:   23(float) Constant 1065353216
-             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              187:             TypeRuntimeArray 153(Particle)
-             188:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 162 11
+             188:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 162 11
 189(ParticleOut):             TypeStruct 187
              192:      6(int) Constant 40
-             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 191 188 16 192 171 11 11 12
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 191 188 16 192 171 11 11 12
              195:      6(int) Constant 82
-             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 194 19 16 195 11 18 194 11 12 190
+             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 194 19 16 195 11 18 194 11 12 190
              196:             TypePointer Uniform 189(ParticleOut)
              197:    196(ptr) Variable Uniform
-             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 17 193 16 195 11 18 17 197 73
+             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 193 16 195 11 18 17 197 73
              201:             TypePointer Uniform 62(fvec4)
              206:     64(int) Constant 1
              207:   23(float) Constant 0
              208:   62(fvec4) ConstantComposite 207 207 207 207
              214:      6(int) Constant 88
-             212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 213 27 16 214 11 15 20
+             212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 213 27 16 214 11 15 20
              216:     64(int) Constant 9
              226:      6(int) Constant 90
-             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 225 27 16 226 11 15 20
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 225 27 16 226 11 15 20
              235:      6(int) Constant 91
-             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 234 27 16 235 11 15 20
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             267:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 27 16 235 11 15 20
+             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             267:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              300:     64(int) Constant 5
-             315:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             338:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             315:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             338:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              359:     64(int) Constant 6
-             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             380:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             380:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              477:     64(int) Constant 3
              488:      6(int) Constant 130
-             486:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 487 27 16 488 11 15 20
+             486:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 487 27 16 488 11 15 20
              502:   23(float) Constant 1056964608
              532:      6(int) Constant 135
-             530:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 531 27 16 532 11 15 20
+             530:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 531 27 16 532 11 15 20
              538:     64(int) Constant 8
              545:     64(int) Constant 7
              548:   23(float) Constant 1008981770
-             550:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             550:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
  573(PushConsts):             TypeStruct 6(int)
              576:      6(int) Constant 63
-             574:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 575 7 16 576 84 11 11 12
+             574:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 575 7 16 576 84 11 11 12
              579:      6(int) Constant 144
-             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 578 19 16 579 11 18 578 11 12 574
+             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 578 19 16 579 11 18 578 11 12 574
              580:             TypePointer PushConstant 573(PushConsts)
  581(pushConsts):    580(ptr) Variable PushConstant
-             582:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 583 577 16 579 11 18 583 581(pushConsts) 73
+             582:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 583 577 16 579 11 18 583 581(pushConsts) 73
              584:             TypePointer PushConstant 6(int)
-             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              593:      6(int) Constant 145
-             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 155 27 16 593 11 15 20
+             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 155 27 16 593 11 15 20
              595:   26(fvec3) ConstantComposite 207 207 207
-             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             604:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             604:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              611:      6(int) Constant 149
-             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 610 27 16 611 11 15 20
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 27 16 611 11 15 20
              623:      6(int) Constant 150
-             621:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 622 27 16 623 11 15 20
+             621:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 622 27 16 623 11 15 20
              639:      6(int) Constant 151
-             637:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 638 27 16 639 11 15 20
-             666:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             713:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             719:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
-             766:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 147 9 21 11
+             637:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 638 27 16 639 11 15 20
+             666:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             713:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             719:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
+             766:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 147 9 21 11
              815:      6(int) Constant 10
              816:  109(ivec3) ConstantComposite 815 815 19
         13(main):           3 Function None 4
@@ -358,11 +358,11 @@
           608(a):     28(ptr) Variable Function
           620(b):     28(ptr) Variable Function
           636(c):     28(ptr) Variable Function
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
-             116:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 113 112(id) 44
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+             116:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 113 112(id) 44
              121:  109(ivec3) Load 118(gl_GlobalInvocationID)
                               Store 112(id) 121
-             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 124 123(index) 44
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 124 123(index) 44
              128:    122(ptr) AccessChain 112(id) 19
              129:      6(int) Load 128
              132:    131(ptr) AccessChain 93(params) 130 11
@@ -404,7 +404,7 @@
                                 Store 209 208
                                 Return
              186:             Label
-             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 212 211(force) 44
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 212 211(force) 44
              217:    201(ptr) AccessChain 93(params) 216
              218:   62(fvec4) Load 217
              219:   26(fvec3) VectorShuffle 218 218 0 1 2
@@ -412,13 +412,13 @@
              221:   23(float) Load 220
              222:   26(fvec3) VectorTimesScalar 219 221
                               Store 211(force) 222
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 224 223(pos) 44
+             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 224 223(pos) 44
              228:      6(int) Load 123(index)
              229:    201(ptr) AccessChain 175 177 228 177
              230:   62(fvec4) Load 229
              231:   26(fvec3) VectorShuffle 230 230 0 1 2
                               Store 223(pos) 231
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 233 232(vel) 44
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(vel) 44
              237:      6(int) Load 123(index)
              238:    201(ptr) AccessChain 175 177 237 206
              239:   62(fvec4) Load 238
@@ -698,7 +698,7 @@
              483:   26(fvec3) Load 211(force)
              484:   26(fvec3) FAdd 483 482
                               Store 211(force) 484
-             489:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 486 485(f) 44
+             489:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 486 485(f) 44
              490:   26(fvec3) Load 211(force)
              491:     97(ptr) AccessChain 93(params) 206
              492:   23(float) Load 491
@@ -740,7 +740,7 @@
              527:   62(fvec4) CompositeConstruct 524 525 526 207
              528:    201(ptr) AccessChain 197 177 517 206
                               Store 528 527
-             533:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 530 529(sphereDist) 44
+             533:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 530 529(sphereDist) 44
              534:      6(int) Load 123(index)
              535:    201(ptr) AccessChain 197 177 534 177
              536:   62(fvec4) Load 535
@@ -790,7 +790,7 @@
                               SelectionMerge 590 None
                               BranchConditional 588 589 590
              589:               Label
-             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 592 591(normal) 44
+             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 592 591(normal) 44
                                 Store 591(normal) 595
              596:    122(ptr)   AccessChain 112(id) 19
              597:      6(int)   Load 596
@@ -804,7 +804,7 @@
                                   SelectionMerge 607 None
                                   BranchConditional 605 606 607
              606:                   Label
-             612:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 609 608(a) 44
+             612:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(a) 44
              613:      6(int)       Load 123(index)
              614:      6(int)       ISub 613 19
              615:    201(ptr)       AccessChain 175 177 614 177
@@ -813,7 +813,7 @@
              618:   26(fvec3)       Load 223(pos)
              619:   26(fvec3)       FSub 617 618
                                     Store 608(a) 619
-             624:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 621 620(b) 44
+             624:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 621 620(b) 44
              625:      6(int)       Load 123(index)
              626:    131(ptr)       AccessChain 93(params) 130 11
              627:     64(int)       Load 626
@@ -826,7 +826,7 @@
              634:   26(fvec3)       Load 223(pos)
              635:   26(fvec3)       FSub 633 634
                                     Store 620(b) 635
-             640:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 637 636(c) 44
+             640:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 637 636(c) 44
              641:      6(int)       Load 123(index)
              642:    131(ptr)       AccessChain 93(params) 130 11
              643:     64(int)       Load 642
@@ -1038,13 +1038,13 @@
     34(restDist):     29(ptr) FunctionParameter
               38:             Label
         52(dist):     28(ptr) Variable Function
-              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 37
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 41 32(p0) 44
-              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 45 33(p1) 44
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 34(restDist) 44
-              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 37 35(springForce(vf3;vf3;f1;)
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 53 52(dist) 44
+              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 37
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 41 32(p0) 44
+              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 45 33(p1) 44
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 48 34(restDist) 44
+              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 37 35(springForce(vf3;vf3;f1;)
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 53 52(dist) 44
               57:   26(fvec3) Load 32(p0)
               58:   26(fvec3) Load 33(p1)
               59:   26(fvec3) FSub 57 58
diff --git a/Test/baseResults/spv.debuginfo.glsl.frag.out b/Test/baseResults/spv.debuginfo.glsl.frag.out
index ffe3275..3b9f8cb 100644
--- a/Test/baseResults/spv.debuginfo.glsl.frag.out
+++ b/Test/baseResults/spv.debuginfo.glsl.frag.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 704
 
                               Capability Shader
@@ -178,208 +178,208 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               23:             TypeFloat 32
-              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 24 9 12 11
+              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 24 9 12 11
               26:             TypeVector 23(float) 4
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 20
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 20
               28:             TypePointer Function 26(fvec4)
               29:             TypePointer Function 23(float)
               30:             TypeVector 23(float) 2
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 21
+              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 21
               32:             TypePointer Function 30(fvec2)
               33:             TypeFunction 23(float) 28(ptr) 29(ptr) 32(ptr)
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 25 27 25 31
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 39 34 16 11 11 18 39 12 11
-              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 45 27 16 11 11 40 20 19
-              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 25 16 11 11 40 20 21
-              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 52 31 16 11 11 40 20 12
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 25 27 25 31
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 39 34 16 11 11 18 39 12 11
+              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 45 27 16 11 11 40 20 19
+              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 49 25 16 11 11 40 20 21
+              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 52 31 16 11 11 40 20 12
               54:             TypeFunction 23(float) 28(ptr) 29(ptr)
-              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 25 27 25
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 59 55 16 11 11 18 59 12 11
-              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 65 27 16 11 11 60 20 19
-              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 49 25 16 11 11 60 20 21
+              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 25 27 25
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 59 55 16 11 11 18 59 12 11
+              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 65 27 16 11 11 60 20 19
+              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 49 25 16 11 11 60 20 21
               69:             TypeVector 23(float) 3
-              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 12
+              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 12
               71:             TypePointer Function 69(fvec3)
               72:             TypeFunction 69(fvec3) 71(ptr) 71(ptr)
-              73:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 70 70 70
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 77 73 16 11 11 18 77 12 11
-              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 70 16 11 11 78 20 19
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 86 70 16 11 11 78 20 21
+              73:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 70 70 70
+              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 77 73 16 11 11 18 77 12 11
+              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 83 70 16 11 11 78 20 19
+              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 86 70 16 11 11 78 20 21
               91:      6(int) Constant 59
-              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 25 16 91 11 40 20
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 77 25 16 91 11 40 20
               93:   23(float) Constant 1065353216
               97:      6(int) Constant 60
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 96 27 16 97 11 40 20
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 96 27 16 97 11 40 20
              106:   23(float) Constant 1056964608
              114:             TypeBool
              117:   23(float) Constant 3212836864
-             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              133:      6(int) Constant 65
-             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 132 25 16 133 11 40 20
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 132 25 16 133 11 40 20
              135:             TypeImage 23(float) 2D array sampled format:Unknown
-             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 137 11 16 133 11 18 138 139 12
+             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 137 11 16 133 11 18 138 139 12
              140:             TypeSampledImage 135
-             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 142 11 16 133 11 18 143 139 12
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 11 16 133 11 18 143 139 12
              144:             TypePointer UniformConstant 140
 145(samplerShadowMap):    144(ptr) Variable UniformConstant
              148:      6(int) Constant 8
-             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 147 141 16 133 11 18 147 145(samplerShadowMap) 148
+             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 147 141 16 133 11 18 147 145(samplerShadowMap) 148
              162:   23(float) Constant 0
-             163:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
-             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             163:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
+             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              175:   23(float) Constant 1048576000
              180:             TypeInt 32 1
-             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 181 9 20 11
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 181 9 20 11
              183:             TypeVector 180(int) 2
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 182 21
+             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 182 21
              185:             TypePointer Function 183(ivec2)
              189:      6(int) Constant 76
-             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 188 184 16 189 11 60 20
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 188 184 16 189 11 60 20
              192:    180(int) Constant 0
              194:             TypeVector 180(int) 3
-             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 182 12
+             195:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 182 12
              201:      6(int) Constant 77
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 200 25 16 201 11 60 20
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 200 25 16 201 11 60 20
              203:   23(float) Constant 1069547520
              207:      6(int) Constant 78
-             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 206 25 16 207 11 60 20
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 206 25 16 207 11 60 20
              211:             TypePointer Function 180(int)
              219:      6(int) Constant 79
-             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 218 25 16 219 11 60 20
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 218 25 16 219 11 60 20
              230:      6(int) Constant 81
-             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 229 25 16 230 11 60 20
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 25 16 230 11 60 20
              235:      6(int) Constant 82
-             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 234 182 16 235 11 60 20
+             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 182 16 235 11 60 20
              240:      6(int) Constant 83
-             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 239 182 16 240 11 60 20
+             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 239 182 16 240 11 60 20
              242:    180(int) Constant 1
              246:      6(int) Constant 85
-             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 245 182 16 246 11 60 20
-             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 245 182 16 246 11 60 20
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              262:      6(int) Constant 87
-             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 261 182 16 262 11 60 20
-             273:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 261 182 16 262 11 60 20
+             273:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              308:      6(int) Constant 98
-             306:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 307 182 16 308 11 78 20
+             306:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 307 182 16 308 11 78 20
              316:    180(int) Constant 3
-             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              322:      6(int) Constant 100
-             320:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 321 27 16 322 11 78 20
+             320:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 321 27 16 322 11 78 20
              324:             TypeMatrix 26(fvec4) 4
              326:   114(bool) ConstantTrue
-             325:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 27 20 326
+             325:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 326
       327(Light):             TypeStruct 26(fvec4) 26(fvec4) 26(fvec4) 324
              330:      6(int) Constant 45
              331:      6(int) Constant 7
-             328:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 329 27 16 330 331 11 11 12
-             332:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 329 27 16 330 331 11 11 12
-             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 329 27 16 330 331 11 11 12
+             328:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             332:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
+             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
              336:      6(int) Constant 46
-             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 335 325 16 336 331 11 11 12
-             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 338 19 16 322 11 18 338 11 12 328 332 333 334
+             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 335 325 16 336 331 11 11 12
+             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 338 19 16 322 11 18 338 11 12 328 332 333 334
              339:             TypeArray 327(Light) 12
-             340:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 337 12
+             340:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 337 12
         341(UBO):             TypeStruct 26(fvec4) 339 180(int) 180(int)
-             342:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 329 27 16 330 331 11 11 12
+             342:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 329 27 16 330 331 11 11 12
              345:      6(int) Constant 52
-             343:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 344 340 16 345 148 11 11 12
+             343:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 344 340 16 345 148 11 11 12
              348:      6(int) Constant 54
-             346:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 347 182 16 348 10 11 11 12
-             349:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 347 182 16 348 10 11 11 12
-             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 351 19 16 322 11 18 351 11 12 342 343 346 349
+             346:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 347 182 16 348 10 11 11 12
+             349:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 347 182 16 348 10 11 11 12
+             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 351 19 16 322 11 18 351 11 12 342 343 346 349
              352:             TypePointer Uniform 341(UBO)
         353(ubo):    352(ptr) Variable Uniform
-             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 355 350 16 322 11 18 355 353(ubo) 148
+             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 355 350 16 322 11 18 355 353(ubo) 148
              357:             TypePointer Uniform 324
              368:      6(int) Constant 104
-             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 229 25 16 368 11 78 20
+             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 25 16 368 11 78 20
              388:      6(int) Constant 117
-             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 387 70 16 388 11 15 20
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 387 70 16 388 11 15 20
              390:             TypeImage 23(float) 2D sampled format:Unknown
-             391:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 137 11 16 388 11 18 138 139 12
+             391:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 137 11 16 388 11 18 138 139 12
              392:             TypeSampledImage 390
-             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 142 11 16 388 11 18 143 139 12
+             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 11 16 388 11 18 143 139 12
              394:             TypePointer UniformConstant 392
 395(samplerposition):    394(ptr) Variable UniformConstant
-             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 397 393 16 388 11 18 397 395(samplerposition) 148
+             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 397 393 16 388 11 18 397 395(samplerposition) 148
              399:             TypePointer Input 30(fvec2)
        400(inUV):    399(ptr) Variable Input
-             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 402 31 16 388 11 18 402 400(inUV) 148
+             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 402 31 16 388 11 18 402 400(inUV) 148
              409:      6(int) Constant 118
-             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 408 70 16 409 11 15 20
+             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 408 70 16 409 11 15 20
 411(samplerNormal):    394(ptr) Variable UniformConstant
-             412:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 413 393 16 409 11 18 413 411(samplerNormal) 148
+             412:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 413 393 16 409 11 18 413 411(samplerNormal) 148
              421:      6(int) Constant 119
-             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 420 27 16 421 11 15 20
+             419:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 420 27 16 421 11 15 20
 423(samplerAlbedo):    394(ptr) Variable UniformConstant
-             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 425 393 16 421 11 18 425 423(samplerAlbedo) 148
+             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 425 393 16 421 11 18 425 423(samplerAlbedo) 148
              429:             TypePointer Uniform 180(int)
-             432:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             432:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              444:             TypePointer Output 26(fvec4)
 445(outFragColor):    444(ptr) Variable Output
              448:      6(int) Constant 125
-             446:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 447 27 16 448 11 18 447 445(outFragColor) 148
+             446:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 447 27 16 448 11 18 447 445(outFragColor) 148
              449:   69(fvec3) ConstantComposite 93 93 93
              454:             TypePointer Output 23(float)
              501:      6(int) Constant 145
-             500:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 83 70 16 501 11 15 20
+             500:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 83 70 16 501 11 15 20
              505:   23(float) Constant 1036831949
              510:      6(int) Constant 147
-             508:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 509 70 16 510 11 15 20
+             508:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 509 70 16 510 11 15 20
              516:      6(int) Constant 149
-             515:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 307 182 16 516 11 15 20
-             524:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             515:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 307 182 16 516 11 15 20
+             524:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
              529:      6(int) Constant 152
-             527:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 528 70 16 529 11 15 20
+             527:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 528 70 16 529 11 15 20
              532:             TypePointer Uniform 26(fvec4)
              540:      6(int) Constant 154
-             539:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 132 25 16 540 11 15 20
+             539:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 132 25 16 540 11 15 20
              549:      6(int) Constant 158
-             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 548 70 16 549 11 15 20
+             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 548 70 16 549 11 15 20
              561:      6(int) Constant 161
-             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 560 25 16 561 11 15 20
+             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 560 25 16 561 11 15 20
              563:   23(float) Constant 1064781546
              567:      6(int) Constant 162
-             565:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 566 25 16 567 11 15 20
+             565:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 566 25 16 567 11 15 20
              569:   23(float) Constant 1063781322
              573:      6(int) Constant 163
-             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 572 25 16 573 11 15 20
+             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 572 25 16 573 11 15 20
              575:   23(float) Constant 1120403456
              579:      6(int) Constant 166
-             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 578 70 16 579 11 15 20
+             577:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 578 70 16 579 11 15 20
              594:      6(int) Constant 169
-             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 593 25 16 594 11 15 20
+             592:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 593 25 16 594 11 15 20
              602:      6(int) Constant 170
-             600:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 601 25 16 602 11 15 20
+             600:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 601 25 16 602 11 15 20
              611:      6(int) Constant 171
-             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 610 25 16 611 11 15 20
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 25 16 611 11 15 20
              619:      6(int) Constant 174
-             617:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 618 25 16 619 11 15 20
+             617:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 618 25 16 619 11 15 20
              628:      6(int) Constant 175
-             626:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 627 70 16 628 11 15 20
+             626:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 627 70 16 628 11 15 20
              635:      6(int) Constant 178
-             633:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 634 70 16 635 11 15 20
+             633:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 634 70 16 635 11 15 20
              644:      6(int) Constant 179
-             642:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 643 25 16 644 11 15 20
+             642:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 643 25 16 644 11 15 20
              653:      6(int) Constant 180
-             651:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 652 70 16 653 11 15 20
+             651:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 652 70 16 653 11 15 20
              656:   23(float) Constant 1098907648
              661:   23(float) Constant 1075838976
              676:    180(int) Constant 2
-             690:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 118 9 21 11
+             690:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 118 9 21 11
         13(main):           3 Function None 4
               22:             Label
     385(fragPos):     71(ptr) Variable Function
@@ -407,20 +407,20 @@
        650(spec):     71(ptr) Variable Function
       694(param):     71(ptr) Variable Function
       696(param):     71(ptr) Variable Function
-             384:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
-             389:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 386 385(fragPos) 47
+             384:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+             389:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 386 385(fragPos) 47
              398:         392 Load 395(samplerposition)
              403:   30(fvec2) Load 400(inUV)
              404:   26(fvec4) ImageSampleImplicitLod 398 403
              405:   69(fvec3) VectorShuffle 404 404 0 1 2
                               Store 385(fragPos) 405
-             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 407 406(normal) 47
+             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 407 406(normal) 47
              414:         392 Load 411(samplerNormal)
              415:   30(fvec2) Load 400(inUV)
              416:   26(fvec4) ImageSampleImplicitLod 414 415
              417:   69(fvec3) VectorShuffle 416 416 0 1 2
                               Store 406(normal) 417
-             422:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 419 418(albedo) 47
+             422:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 419 418(albedo) 47
              426:         392 Load 423(samplerAlbedo)
              427:   30(fvec2) Load 400(inUV)
              428:   26(fvec4) ImageSampleImplicitLod 426 427
@@ -510,16 +510,16 @@
                                 Store 497 93
                                 Return
              435:             Label
-             502:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 500 499(fragcolor) 47
+             502:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 500 499(fragcolor) 47
              503:   26(fvec4) Load 418(albedo)
              504:   69(fvec3) VectorShuffle 503 503 0 1 2
              506:   69(fvec3) VectorTimesScalar 504 505
                               Store 499(fragcolor) 506
-             511:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 508 507(N) 47
+             511:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 508 507(N) 47
              512:   69(fvec3) Load 406(normal)
              513:   69(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 512
                               Store 507(N) 513
-             517:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 515 514(i) 47
+             517:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 515 514(i) 47
                               Store 514(i) 192
                               Branch 518
              518:             Label
@@ -530,7 +530,7 @@
              525:   114(bool) SLessThan 523 316
                               BranchConditional 525 519 520
              519:               Label
-             530:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 527 526(L) 47
+             530:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 527 526(L) 47
              531:    180(int)   Load 514(i)
              533:    532(ptr)   AccessChain 353(ubo) 242 531 192
              534:   26(fvec4)   Load 533
@@ -538,14 +538,14 @@
              536:   69(fvec3)   Load 385(fragPos)
              537:   69(fvec3)   FSub 535 536
                                 Store 526(L) 537
-             541:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 539 538(dist) 47
+             541:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 539 538(dist) 47
              542:   69(fvec3)   Load 526(L)
              543:   23(float)   ExtInst 2(GLSL.std.450) 66(Length) 542
                                 Store 538(dist) 543
              544:   69(fvec3)   Load 526(L)
              545:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 544
                                 Store 526(L) 545
-             550:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 547 546(V) 47
+             550:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 547 546(V) 47
              551:    532(ptr)   AccessChain 353(ubo) 192
              552:   26(fvec4)   Load 551
              553:   69(fvec3)   VectorShuffle 552 552 0 1 2
@@ -555,13 +555,13 @@
              556:   69(fvec3)   Load 546(V)
              557:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 556
                                 Store 546(V) 557
-             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 559 558(lightCosInnerAngle) 47
+             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 559 558(lightCosInnerAngle) 47
                                 Store 558(lightCosInnerAngle) 563
-             568:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 565 564(lightCosOuterAngle) 47
+             568:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 565 564(lightCosOuterAngle) 47
                                 Store 564(lightCosOuterAngle) 569
-             574:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 571 570(lightRange) 47
+             574:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 571 570(lightRange) 47
                                 Store 570(lightRange) 575
-             580:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 577 576(dir) 47
+             580:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 577 576(dir) 47
              581:    180(int)   Load 514(i)
              582:    532(ptr)   AccessChain 353(ubo) 242 581 192
              583:   26(fvec4)   Load 582
@@ -573,45 +573,45 @@
              589:   69(fvec3)   FSub 584 588
              590:   69(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 589
                                 Store 576(dir) 590
-             595:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 592 591(cosDir) 47
+             595:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 592 591(cosDir) 47
              596:   69(fvec3)   Load 526(L)
              597:   69(fvec3)   Load 576(dir)
              598:   23(float)   Dot 596 597
                                 Store 591(cosDir) 598
-             603:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 600 599(spotEffect) 47
+             603:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 600 599(spotEffect) 47
              604:   23(float)   Load 564(lightCosOuterAngle)
              605:   23(float)   Load 558(lightCosInnerAngle)
              606:   23(float)   Load 591(cosDir)
              607:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 604 605 606
                                 Store 599(spotEffect) 607
-             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 609 608(heightAttenuation) 47
+             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(heightAttenuation) 47
              613:   23(float)   Load 570(lightRange)
              614:   23(float)   Load 538(dist)
              615:   23(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 613 162 614
                                 Store 608(heightAttenuation) 615
-             620:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 617 616(NdotL) 47
+             620:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 617 616(NdotL) 47
              621:   69(fvec3)   Load 507(N)
              622:   69(fvec3)   Load 526(L)
              623:   23(float)   Dot 621 622
              624:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 623
                                 Store 616(NdotL) 624
-             629:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 626 625(diff) 47
+             629:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 626 625(diff) 47
              630:   23(float)   Load 616(NdotL)
              631:   69(fvec3)   CompositeConstruct 630 630 630
                                 Store 625(diff) 631
-             636:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 633 632(R) 47
+             636:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 633 632(R) 47
              637:   69(fvec3)   Load 526(L)
              638:   69(fvec3)   FNegate 637
              639:   69(fvec3)   Load 507(N)
              640:   69(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 638 639
                                 Store 632(R) 640
-             645:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 642 641(NdotR) 47
+             645:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 642 641(NdotR) 47
              646:   69(fvec3)   Load 632(R)
              647:   69(fvec3)   Load 546(V)
              648:   23(float)   Dot 646 647
              649:   23(float)   ExtInst 2(GLSL.std.450) 40(FMax) 162 648
                                 Store 641(NdotR) 649
-             654:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 651 650(spec) 47
+             654:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 651 650(spec) 47
              655:   23(float)   Load 641(NdotR)
              657:   23(float)   ExtInst 2(GLSL.std.450) 26(Pow) 655 656
              658:     29(ptr)   AccessChain 418(albedo) 12
@@ -679,15 +679,15 @@
       89(shadow):     29(ptr) Variable Function
  94(shadowCoord):     28(ptr) Variable Function
        130(dist):     29(ptr) Variable Function
-              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 40
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 44 35(P) 47
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 48 36(layer) 47
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 51 37(offset) 47
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 40 38(textureProj(vf4;f1;vf2;)
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 90 89(shadow) 47
+              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 40
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
+              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 44 35(P) 47
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 48 36(layer) 47
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 51 37(offset) 47
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 40 38(textureProj(vf4;f1;vf2;)
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 90 89(shadow) 47
                               Store 89(shadow) 93
-              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 95 94(shadowCoord) 47
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 95 94(shadowCoord) 47
               99:   26(fvec4) Load 35(P)
              100:     29(ptr) AccessChain 35(P) 12
              101:   23(float) Load 100
@@ -720,7 +720,7 @@
                               SelectionMerge 129 None
                               BranchConditional 127 128 129
              128:               Label
-             134:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 131 130(dist) 47
+             134:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 131 130(dist) 47
              149:         140   Load 145(samplerShadowMap)
              150:   26(fvec4)   Load 94(shadowCoord)
              151:   30(fvec2)   VectorShuffle 150 150 0 1
@@ -773,20 +773,20 @@
       284(param):     28(ptr) Variable Function
       286(param):     29(ptr) Variable Function
       288(param):     32(ptr) Variable Function
-              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 60
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 64 56(sc) 47
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 67 57(layer) 47
-             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 60 58(filterPCF(vf4;f1;)
-             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 187 186(texDim) 47
+              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 60
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 64 56(sc) 47
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 67 57(layer) 47
+             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 60 58(filterPCF(vf4;f1;)
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 187 186(texDim) 47
              191:         140 Load 145(samplerShadowMap)
              193:         135 Image 191
              196:  194(ivec3) ImageQuerySizeLod 193 192
              197:  183(ivec2) VectorShuffle 196 196 0 1
                               Store 186(texDim) 197
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 199 198(scale) 47
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 199 198(scale) 47
                               Store 198(scale) 203
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 205 204(dx) 47
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 205 204(dx) 47
              209:   23(float) Load 198(scale)
              210:   23(float) FMul 209 93
              212:    211(ptr) AccessChain 186(texDim) 11
@@ -794,7 +794,7 @@
              214:   23(float) ConvertSToF 213
              215:   23(float) FDiv 210 214
                               Store 204(dx) 215
-             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 217 216(dy) 47
+             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 217 216(dy) 47
              221:   23(float) Load 198(scale)
              222:   23(float) FMul 221 93
              223:    211(ptr) AccessChain 186(texDim) 19
@@ -802,13 +802,13 @@
              225:   23(float) ConvertSToF 224
              226:   23(float) FDiv 222 225
                               Store 216(dy) 226
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 228 227(shadowFactor) 47
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 228 227(shadowFactor) 47
                               Store 227(shadowFactor) 162
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 233 232(count) 47
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(count) 47
                               Store 232(count) 192
-             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 238 237(range) 47
+             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 238 237(range) 47
                               Store 237(range) 242
-             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 244 243(x) 47
+             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 244 243(x) 47
              248:    180(int) Load 237(range)
              249:    180(int) SNegate 248
                               Store 243(x) 249
@@ -822,7 +822,7 @@
              258:   114(bool) SLessThanEqual 255 256
                               BranchConditional 258 251 252
              251:               Label
-             263:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 260 259(y) 47
+             263:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 260 259(y) 47
              264:    180(int)   Load 237(range)
              265:    180(int)   SNegate 264
                                 Store 259(y) 265
@@ -886,12 +886,12 @@
 366(shadowFactor):     29(ptr) Variable Function
       372(param):     28(ptr) Variable Function
       374(param):     29(ptr) Variable Function
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 78
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 82 74(fragcolor) 47
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 85 75(fragpos) 47
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 78 76(shadow(vf3;vf3;)
-             309:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 306 305(i) 47
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 78
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
+              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 82 74(fragcolor) 47
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 85 75(fragpos) 47
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 78 76(shadow(vf3;vf3;)
+             309:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 306 305(i) 47
                               Store 305(i) 192
                               Branch 310
              310:             Label
@@ -902,7 +902,7 @@
              318:   114(bool) SLessThan 315 316
                               BranchConditional 318 311 312
              311:               Label
-             323:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 320 319(shadowClip) 47
+             323:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 320 319(shadowClip) 47
              356:    180(int)   Load 305(i)
              358:    357(ptr)   AccessChain 353(ubo) 242 356 316
              359:         324   Load 358
@@ -913,7 +913,7 @@
              364:   26(fvec4)   CompositeConstruct 361 362 363 93
              365:   26(fvec4)   MatrixTimesVector 359 364
                                 Store 319(shadowClip) 365
-             369:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 367 366(shadowFactor) 47
+             369:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 367 366(shadowFactor) 47
              370:    180(int)   Load 305(i)
              371:   23(float)   ConvertSToF 370
              373:   26(fvec4)   Load 319(shadowClip)
diff --git a/Test/baseResults/spv.debuginfo.glsl.geom.out b/Test/baseResults/spv.debuginfo.glsl.geom.out
index e3ffd38..8c5733e 100644
--- a/Test/baseResults/spv.debuginfo.glsl.geom.out
+++ b/Test/baseResults/spv.debuginfo.glsl.geom.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.geom
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 231
 
                               Capability Geometry
@@ -116,136 +116,136 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               24:             TypeInt 32 1
-              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 9 20 11
+              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 25 9 20 11
               27:             TypePointer Function 24(int)
               31:      6(int) Constant 49
-              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 30 26 16 31 11 15 20
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 30 26 16 31 11 15 20
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               34:     24(int) Constant 0
               41:     24(int) Constant 3
               42:             TypeBool
-              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 43 9 21 11
+              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 43 9 21 11
               46:             TypeFloat 32
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 12 11
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 12 11
               49:             TypeVector 46(float) 3
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 48 12
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 48 12
               51:             TypePointer Output 49(fvec3)
    52(outNormal):     51(ptr) Variable Output
               55:      6(int) Constant 51
               56:      6(int) Constant 8
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 54 50 16 55 11 18 54 52(outNormal) 56
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 54 50 16 55 11 18 54 52(outNormal) 56
               57:             TypeVector 46(float) 4
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 48 20
+              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 48 20
               59:             TypeMatrix 57(fvec4) 4
               61:    42(bool) ConstantTrue
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 58 20 61
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 58 20 61
               62:             TypeArray 59 21
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 60 21
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 60 21
               64:             TypeArray 59 21
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 60 21
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 60 21
          66(UBO):             TypeStruct 62 64 57(fvec4)
               69:      6(int) Constant 34
               70:      6(int) Constant 7
-              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 68 63 16 69 70 11 11 12
+              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 68 63 16 69 70 11 11 12
               73:      6(int) Constant 35
-              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 72 65 16 73 70 11 11 12
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 72 65 16 73 70 11 11 12
               76:      6(int) Constant 36
-              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 75 58 16 76 70 11 11 12
-              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 78 19 16 55 11 18 78 11 12 67 71 74
+              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 75 58 16 76 70 11 11 12
+              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 78 19 16 55 11 18 78 11 12 67 71 74
               79:             TypePointer Uniform 66(UBO)
          80(ubo):     79(ptr) Variable Uniform
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 82 77 16 55 11 18 82 80(ubo) 56
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 82 77 16 55 11 18 82 80(ubo) 56
               83:     24(int) Constant 1
               84:             TypePointer Input 24(int)
 85(gl_InvocationID):     84(ptr) Variable Input
-              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 87 26 16 55 11 18 87 85(gl_InvocationID) 56
+              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 87 26 16 55 11 18 87 85(gl_InvocationID) 56
               89:             TypePointer Uniform 59
               92:             TypeMatrix 49(fvec3) 3
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 50 12 61
+              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 50 12 61
              101:             TypeArray 49(fvec3) 12
-             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 50 12
+             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 50 12
              103:             TypePointer Input 101
    104(inNormal):    103(ptr) Variable Input
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 106 102 16 55 11 18 106 104(inNormal) 56
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 106 102 16 55 11 18 106 104(inNormal) 56
              108:             TypePointer Input 49(fvec3)
    112(outColor):     51(ptr) Variable Output
              115:      6(int) Constant 52
-             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 114 50 16 115 11 18 114 112(outColor) 56
+             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 114 50 16 115 11 18 114 112(outColor) 56
     116(inColor):    103(ptr) Variable Input
-             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 118 102 16 115 11 18 118 116(inColor) 56
+             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 118 102 16 115 11 18 118 116(inColor) 56
              122:             TypePointer Function 57(fvec4)
              126:      6(int) Constant 54
-             124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 125 58 16 126 11 15 20
+             124:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 125 58 16 126 11 15 20
              128:             TypeArray 46(float) 19
-             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 48 19
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 48 19
 130(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 128 128
              133:      6(int) Constant 23
-             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 132 58 16 21 133 11 11 12
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 132 58 16 21 133 11 11 12
              136:      6(int) Constant 41
-             134:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 135 48 16 21 136 11 11 12
+             134:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 135 48 16 21 136 11 11 12
              139:      6(int) Constant 84
-             137:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 138 129 16 21 139 11 11 12
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 138 129 16 21 139 11 11 12
-             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 142 19 16 126 11 18 142 11 12 131 134 137 140
+             137:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 21 139 11 11 12
+             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 21 139 11 11 12
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 19 16 126 11 18 142 11 12 131 134 137 140
              143:             TypeArray 130(gl_PerVertex) 12
-             144:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 141 12
+             144:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 141 12
              145:             TypePointer Input 143
       146(gl_in):    145(ptr) Variable Input
-             147:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 148 144 16 126 11 18 148 146(gl_in) 56
+             147:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 148 144 16 126 11 18 148 146(gl_in) 56
              150:             TypePointer Input 57(fvec4)
              156:      6(int) Constant 55
-             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 155 58 16 156 11 15 20
+             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 155 58 16 156 11 15 20
              163:             TypePointer Function 49(fvec3)
              167:      6(int) Constant 57
-             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 166 50 16 167 11 15 20
+             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 166 50 16 167 11 15 20
              172:     24(int) Constant 2
              173:             TypePointer Uniform 57(fvec4)
 181(outLightVec):     51(ptr) Variable Output
              184:      6(int) Constant 58
-             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 183 50 16 184 11 18 183 181(outLightVec) 56
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 183 50 16 184 11 18 183 181(outLightVec) 56
  189(outViewVec):     51(ptr) Variable Output
              192:      6(int) Constant 59
-             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 191 50 16 192 11 18 191 189(outViewVec) 56
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 191 50 16 192 11 18 191 189(outViewVec) 56
 196(gl_PerVertex):             TypeStruct 57(fvec4) 46(float) 128 128
              198:      6(int) Constant 215
-             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 132 58 16 21 198 11 11 12
+             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 132 58 16 21 198 11 11 12
              200:      6(int) Constant 233
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 135 48 16 21 200 11 11 12
-             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 138 129 16 12 70 11 11 12
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 138 129 16 12 70 11 11 12
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 135 48 16 21 200 11 11 12
+             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 12 70 11 11 12
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 129 16 12 70 11 11 12
              204:      6(int) Constant 61
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 142 19 16 204 11 18 142 11 12 197 199 201 202
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 19 16 204 11 18 142 11 12 197 199 201 202
              205:             TypePointer Output 196(gl_PerVertex)
              206:    205(ptr) Variable Output
-             207:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 17 203 16 204 11 18 17 206 56
+             207:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 203 16 204 11 18 17 206 56
              213:             TypePointer Output 57(fvec4)
              215:             TypePointer Output 24(int)
 216(gl_ViewportIndex):    215(ptr) Variable Output
              219:      6(int) Constant 64
-             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 218 26 16 219 11 18 218 216(gl_ViewportIndex) 56
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 218 26 16 219 11 18 218 216(gl_ViewportIndex) 56
 221(gl_PrimitiveID):    215(ptr) Variable Output
              224:      6(int) Constant 65
-             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 223 26 16 224 11 18 223 221(gl_PrimitiveID) 56
+             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 223 26 16 224 11 18 223 221(gl_PrimitiveID) 56
 225(gl_PrimitiveIDIn):     84(ptr) Variable Input
-             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 227 26 16 224 11 18 227 225(gl_PrimitiveIDIn) 56
+             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 227 26 16 224 11 18 227 225(gl_PrimitiveIDIn) 56
         13(main):           3 Function None 4
               22:             Label
            28(i):     27(ptr) Variable Function
         123(pos):    122(ptr) Variable Function
    153(worldPos):    122(ptr) Variable Function
        164(lPos):    163(ptr) Variable Function
-              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
-              32:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 29 28(i) 33
+              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+              32:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 29 28(i) 33
                               Store 28(i) 34
                               Branch 35
               35:             Label
@@ -275,19 +275,19 @@
              120:    108(ptr)   AccessChain 116(inColor) 119
              121:   49(fvec3)   Load 120
                                 Store 112(outColor) 121
-             127:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 124 123(pos) 33
+             127:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 124 123(pos) 33
              149:     24(int)   Load 28(i)
              151:    150(ptr)   AccessChain 146(gl_in) 149 34
              152:   57(fvec4)   Load 151
                                 Store 123(pos) 152
-             157:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 154 153(worldPos) 33
+             157:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 154 153(worldPos) 33
              158:     24(int)   Load 85(gl_InvocationID)
              159:     89(ptr)   AccessChain 80(ubo) 83 158
              160:          59   Load 159
              161:   57(fvec4)   Load 123(pos)
              162:   57(fvec4)   MatrixTimesVector 160 161
                                 Store 153(worldPos) 162
-             168:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 165 164(lPos) 33
+             168:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 165 164(lPos) 33
              169:     24(int)   Load 85(gl_InvocationID)
              170:     89(ptr)   AccessChain 80(ubo) 83 169
              171:          59   Load 170
diff --git a/Test/baseResults/spv.debuginfo.glsl.tesc.out b/Test/baseResults/spv.debuginfo.glsl.tesc.out
index c0cddfd..d5dca88 100644
--- a/Test/baseResults/spv.debuginfo.glsl.tesc.out
+++ b/Test/baseResults/spv.debuginfo.glsl.tesc.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.tesc
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 457
 
                               Capability Tessellation
@@ -146,79 +146,79 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               23:             TypeFloat 32
-              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 24 9 12 11
+              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 24 9 12 11
               26:             TypeVector 23(float) 4
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 20
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 20
               28:             TypePointer Function 26(fvec4)
               29:             TypeFunction 23(float) 28(ptr) 28(ptr)
-              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 25 27 27
-              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 34 30 16 11 11 18 34 12 11
-              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 40 27 16 11 11 35 20 19
-              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 44 27 16 11 11 35 20 21
+              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 25 27 27
+              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 34 30 16 11 11 18 34 12 11
+              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 40 27 16 11 11 35 20 19
+              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 44 27 16 11 11 35 20 21
               46:             TypeBool
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
               49:             TypeFunction 46(bool)
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 48
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 52 50 16 11 11 18 52 12 11
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 48
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 52 50 16 11 11 18 52 12 11
               59:      6(int) Constant 54
-              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 58 27 16 59 11 35 20
+              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 58 27 16 59 11 35 20
               61:   23(float) Constant 1056964608
               66:             TypePointer Function 23(float)
               70:      6(int) Constant 56
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 69 25 16 70 11 35 20
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 69 25 16 70 11 35 20
               75:   23(float) Constant 1073741824
               80:      6(int) Constant 59
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 79 27 16 80 11 35 20
+              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 79 27 16 80 11 35 20
               82:             TypeMatrix 26(fvec4) 4
               84:    46(bool) ConstantTrue
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 27 20 84
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 27 20 84
               85:             TypeArray 26(fvec4) 10
-              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 27 10
+              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 27 10
               87:             TypeVector 23(float) 2
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 21
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 21
          89(UBO):             TypeStruct 82 82 26(fvec4) 85 23(float) 23(float) 87(fvec2) 23(float)
               92:      6(int) Constant 30
               93:      6(int) Constant 7
-              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 91 83 16 92 93 11 11 12
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 91 83 16 92 93 11 11 12
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 91 83 16 92 93 11 11 12
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 91 83 16 92 93 11 11 12
               97:      6(int) Constant 31
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 96 27 16 97 93 11 11 12
-              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 99 86 16 9 93 11 11 12
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 96 27 16 97 93 11 11 12
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 99 86 16 9 93 11 11 12
              102:      6(int) Constant 36
              103:      6(int) Constant 8
-             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 25 16 102 103 11 11 12
-             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 25 16 102 103 11 11 12
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
+             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
              107:      6(int) Constant 35
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 106 88 16 107 93 11 11 12
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 101 25 16 102 103 11 11 12
-             109:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 110 19 16 80 11 18 110 11 12 90 94 95 98 100 104 105 108
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 106 88 16 107 93 11 11 12
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 101 25 16 102 103 11 11 12
+             109:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 110 19 16 80 11 18 110 11 12 90 94 95 98 100 104 105 108
              111:             TypePointer Uniform 89(UBO)
         112(ubo):    111(ptr) Variable Uniform
-             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 114 109 16 80 11 18 114 112(ubo) 103
+             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 114 109 16 80 11 18 114 112(ubo) 103
              115:             TypeInt 32 1
-             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 116 9 20 11
+             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 116 9 20 11
              118:    115(int) Constant 1
              119:             TypePointer Uniform 82
              127:      6(int) Constant 62
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 126 27 16 127 11 35 20
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 126 27 16 127 11 35 20
              129:    115(int) Constant 0
              134:             TypeVector 23(float) 3
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 25 12
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 25 12
              136:   23(float) Constant 0
              137:  134(fvec3) ConstantComposite 136 136 136
              147:      6(int) Constant 63
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 146 27 16 147 11 35 20
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 146 27 16 147 11 35 20
              169:    115(int) Constant 6
              170:             TypePointer Uniform 87(fvec2)
              192:    115(int) Constant 7
@@ -227,107 +227,107 @@
              201:   23(float) Constant 1065353216
              202:   23(float) Constant 1115684864
              210:      6(int) Constant 85
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 209 27 16 210 11 53 20
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 209 27 16 210 11 53 20
              212:             TypeArray 23(float) 19
-             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 25 19
+             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 19
 214(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 212 212
              217:      6(int) Constant 1756
-             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 216 27 16 19 217 11 11 12
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 216 27 16 19 217 11 11 12
              220:      6(int) Constant 1774
-             218:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 219 25 16 19 220 11 11 12
+             218:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 219 25 16 19 220 11 11 12
              223:      6(int) Constant 1817
-             221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 222 213 16 19 223 11 11 12
-             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 222 213 16 19 223 11 11 12
-             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 226 19 16 210 11 18 226 11 12 215 218 221 224
+             221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 223 11 11 12
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 223 11 11 12
+             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 19 16 210 11 18 226 11 12 215 218 221 224
              227:             TypeArray 214(gl_PerVertex) 9
-             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 225 9
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 225 9
              229:             TypePointer Input 227
       230(gl_in):    229(ptr) Variable Input
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 232 228 16 210 11 18 232 230(gl_in) 103
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 232 228 16 210 11 18 232 230(gl_in) 103
              233:             TypePointer Input 115(int)
 234(gl_InvocationID):    233(ptr) Variable Input
-             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 236 117 16 210 11 18 236 234(gl_InvocationID) 103
+             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 236 117 16 210 11 18 236 234(gl_InvocationID) 103
              238:             TypePointer Input 26(fvec4)
              241:             TypeImage 23(float) 2D sampled format:Unknown
              244:      6(int) Constant 86
-             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 243 11 16 244 11 18 245 246 12
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 243 11 16 244 11 18 245 246 12
              247:             TypeSampledImage 241
-             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 249 11 16 244 11 18 250 246 12
+             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 249 11 16 244 11 18 250 246 12
              251:             TypePointer UniformConstant 247
 252(samplerHeight):    251(ptr) Variable UniformConstant
-             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 254 248 16 244 11 18 254 252(samplerHeight) 103
+             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 254 248 16 244 11 18 254 252(samplerHeight) 103
              256:             TypeArray 87(fvec2) 9
-             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 88 9
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 88 9
              258:             TypePointer Input 256
        259(inUV):    258(ptr) Variable Input
-             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 261 257 16 244 11 18 261 259(inUV) 103
+             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 261 257 16 244 11 18 261 259(inUV) 103
              262:             TypePointer Input 87(fvec2)
              267:    115(int) Constant 4
              275:             TypePointer Function 115(int)
              279:      6(int) Constant 89
-             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 278 117 16 279 11 53 20
-             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
+             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 278 117 16 279 11 53 20
+             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
              290:    115(int) Constant 3
              292:             TypePointer Uniform 26(fvec4)
              296:   23(float) Constant 1090519040
-             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
-             302:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
+             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             302:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
              303:    46(bool) ConstantFalse
-             307:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
-             312:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
-             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
-             318:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
+             307:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             312:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
+             318:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
              322:             TypeArray 23(float) 21
-             323:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 25 21
+             323:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 21
              324:             TypePointer Output 322
 325(gl_TessLevelInner):    324(ptr) Variable Output
              328:      6(int) Constant 104
-             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 327 323 16 328 11 18 327 325(gl_TessLevelInner) 103
+             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 327 323 16 328 11 18 327 325(gl_TessLevelInner) 103
              329:             TypePointer Output 23(float)
              332:             TypeArray 23(float) 20
-             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 25 20
+             333:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 25 20
              334:             TypePointer Output 332
 335(gl_TessLevelOuter):    334(ptr) Variable Output
              338:      6(int) Constant 106
-             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 337 333 16 338 11 18 337 335(gl_TessLevelOuter) 103
+             336:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 337 333 16 338 11 18 337 335(gl_TessLevelOuter) 103
              341:    115(int) Constant 2
-             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 47 9 21 11
+             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 47 9 21 11
 402(gl_PerVertex):             TypeStruct 26(fvec4) 23(float) 212 212
              404:      6(int) Constant 110
-             403:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 216 27 16 19 404 11 11 12
+             403:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 216 27 16 19 404 11 11 12
              406:      6(int) Constant 128
-             405:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 219 25 16 19 406 11 11 12
+             405:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 219 25 16 19 406 11 11 12
              408:      6(int) Constant 171
-             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 222 213 16 19 408 11 11 12
-             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 222 213 16 19 408 11 11 12
+             407:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 408 11 11 12
+             409:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 222 213 16 19 408 11 11 12
              411:      6(int) Constant 137
-             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 226 19 16 411 11 18 226 11 12 403 405 407 409
+             410:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 19 16 411 11 18 226 11 12 403 405 407 409
              412:             TypeArray 402(gl_PerVertex) 20
-             413:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 410 20
+             413:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 410 20
              414:             TypePointer Output 412
      415(gl_out):    414(ptr) Variable Output
-             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 417 413 16 411 11 18 417 415(gl_out) 103
+             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 417 413 16 411 11 18 417 415(gl_out) 103
              422:             TypePointer Output 26(fvec4)
              424:             TypeArray 134(fvec3) 20
-             425:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 135 20
+             425:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 135 20
              426:             TypePointer Output 424
   427(outNormal):    426(ptr) Variable Output
              430:      6(int) Constant 138
-             428:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 429 425 16 430 11 18 429 427(outNormal) 103
+             428:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 429 425 16 430 11 18 429 427(outNormal) 103
              432:             TypeArray 134(fvec3) 9
-             433:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 135 9
+             433:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 135 9
              434:             TypePointer Input 432
    435(inNormal):    434(ptr) Variable Input
-             436:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 437 433 16 430 11 18 437 435(inNormal) 103
+             436:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 437 433 16 430 11 18 437 435(inNormal) 103
              439:             TypePointer Input 134(fvec3)
              442:             TypePointer Output 134(fvec3)
              444:             TypeArray 87(fvec2) 20
-             445:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 88 20
+             445:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 88 20
              446:             TypePointer Output 444
       447(outUV):    446(ptr) Variable Output
              450:      6(int) Constant 139
-             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 449 445 16 450 11 18 449 447(outUV) 103
+             448:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 449 445 16 450 11 18 449 447(outUV) 103
              455:             TypePointer Output 87(fvec2)
         13(main):           3 Function None 4
               22:             Label
@@ -339,7 +339,7 @@
       370(param):     28(ptr) Variable Function
       375(param):     28(ptr) Variable Function
       378(param):     28(ptr) Variable Function
-             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
+             310:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
              311:    115(int) Load 234(gl_InvocationID)
              313:    46(bool) IEqual 311 129
                               SelectionMerge 315 None
@@ -469,30 +469,30 @@
           77(v0):     28(ptr) Variable Function
       124(clip0):     28(ptr) Variable Function
       144(clip1):     28(ptr) Variable Function
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 35
-              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 16 11 11 11 11
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 39 31(p0) 42
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 43 32(p1) 42
-              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 35 33(screenSpaceTessFactor(vf4;vf4;)
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 57 56(midPoint) 42
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 35
+              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 16 11 11 11 11
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 39 31(p0) 42
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 43 32(p1) 42
+              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 35 33(screenSpaceTessFactor(vf4;vf4;)
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 57 56(midPoint) 42
               62:   26(fvec4) Load 31(p0)
               63:   26(fvec4) Load 32(p1)
               64:   26(fvec4) FAdd 62 63
               65:   26(fvec4) VectorTimesScalar 64 61
                               Store 56(midPoint) 65
-              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 68 67(radius) 42
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 68 67(radius) 42
               72:   26(fvec4) Load 31(p0)
               73:   26(fvec4) Load 32(p1)
               74:   23(float) ExtInst 2(GLSL.std.450) 67(Distance) 72 73
               76:   23(float) FDiv 74 75
                               Store 67(radius) 76
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 78 77(v0) 42
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 78 77(v0) 42
              120:    119(ptr) AccessChain 112(ubo) 118
              121:          82 Load 120
              122:   26(fvec4) Load 56(midPoint)
              123:   26(fvec4) MatrixTimesVector 121 122
                               Store 77(v0) 123
-             128:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 125 124(clip0) 42
+             128:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 125 124(clip0) 42
              130:    119(ptr) AccessChain 112(ubo) 129
              131:          82 Load 130
              132:   26(fvec4) Load 77(v0)
@@ -504,7 +504,7 @@
              142:   26(fvec4) FSub 132 141
              143:   26(fvec4) MatrixTimesVector 131 142
                               Store 124(clip0) 143
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 145 144(clip1) 42
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 145 144(clip1) 42
              149:    119(ptr) AccessChain 112(ubo) 129
              150:          82 Load 149
              151:   26(fvec4) Load 77(v0)
@@ -566,8 +566,8 @@
               54:             Label
         207(pos):     28(ptr) Variable Function
           276(i):    275(ptr) Variable Function
-             206:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 53 51(frustumCheck()
-             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 208 207(pos) 42
+             206:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 53 51(frustumCheck()
+             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 208 207(pos) 42
              237:    115(int) Load 234(gl_InvocationID)
              239:    238(ptr) AccessChain 230(gl_in) 237 129
              240:   26(fvec4) Load 239
@@ -585,7 +585,7 @@
              273:   23(float) FSub 272 270
              274:     66(ptr) AccessChain 207(pos) 19
                               Store 274 273
-             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 277 276(i) 42
+             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 277 276(i) 42
                               Store 276(i) 129
                               Branch 281
              281:             Label
diff --git a/Test/baseResults/spv.debuginfo.glsl.tese.out b/Test/baseResults/spv.debuginfo.glsl.tese.out
index 3c5d692..696d4bf 100644
--- a/Test/baseResults/spv.debuginfo.glsl.tese.out
+++ b/Test/baseResults/spv.debuginfo.glsl.tese.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.tese
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 315
 
                               Capability Tessellation
@@ -134,153 +134,153 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               24:             TypeFloat 32
-              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 9 12 11
+              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 25 9 12 11
               27:             TypeVector 24(float) 2
-              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
+              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 21
               29:             TypePointer Function 27(fvec2)
               33:      6(int) Constant 56
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 32 28 16 33 11 15 20
-              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 32 28 16 33 11 15 20
+              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               36:             TypeArray 27(fvec2) 9
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 28 9
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 28 9
               38:             TypePointer Input 36
         39(inUV):     38(ptr) Variable Input
               42:      6(int) Constant 8
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 41 37 16 33 11 18 41 39(inUV) 42
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 41 37 16 33 11 18 41 39(inUV) 42
               43:             TypeInt 32 1
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 44 9 20 11
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 44 9 20 11
               46:     43(int) Constant 0
               47:             TypePointer Input 27(fvec2)
               50:     43(int) Constant 1
               53:             TypeVector 24(float) 3
-              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 12
+              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 12
               55:             TypePointer Input 53(fvec3)
 56(gl_TessCoord):     55(ptr) Variable Input
-              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 58 54 16 33 11 18 58 56(gl_TessCoord) 42
+              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 58 54 16 33 11 18 58 56(gl_TessCoord) 42
               59:             TypePointer Input 24(float)
               67:      6(int) Constant 57
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 66 28 16 67 11 15 20
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 66 28 16 67 11 15 20
               69:     43(int) Constant 3
               72:     43(int) Constant 2
               79:             TypePointer Output 27(fvec2)
        80(outUV):     79(ptr) Variable Output
               83:      6(int) Constant 58
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 82 28 16 83 11 18 82 80(outUV) 42
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 82 28 16 83 11 18 82 80(outUV) 42
               90:             TypePointer Function 53(fvec3)
               94:      6(int) Constant 60
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 93 54 16 94 11 15 20
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 93 54 16 94 11 15 20
               96:             TypeArray 53(fvec3) 9
-              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 54 9
+              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 54 9
               98:             TypePointer Input 96
     99(inNormal):     98(ptr) Variable Input
-             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 101 97 16 94 11 18 101 99(inNormal) 42
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 101 97 16 94 11 18 101 99(inNormal) 42
              113:      6(int) Constant 61
-             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 112 54 16 113 11 15 20
+             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 112 54 16 113 11 15 20
              123:             TypePointer Output 53(fvec3)
   124(outNormal):    123(ptr) Variable Output
              127:      6(int) Constant 62
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 126 54 16 127 11 18 126 124(outNormal) 42
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 126 54 16 127 11 18 126 124(outNormal) 42
              134:             TypeVector 24(float) 4
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 20
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 20
              136:             TypePointer Function 134(fvec4)
              140:      6(int) Constant 65
-             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 139 135 16 140 11 15 20
+             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 139 135 16 140 11 15 20
              142:             TypeArray 24(float) 19
-             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 26 19
+             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
 144(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 142 142
              147:      6(int) Constant 1756
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 135 16 19 147 11 11 12
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 146 135 16 19 147 11 11 12
              150:      6(int) Constant 1774
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 26 16 19 150 11 11 12
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 149 26 16 19 150 11 11 12
              153:      6(int) Constant 1817
-             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 143 16 19 153 11 11 12
-             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 143 16 19 153 11 11 12
-             155:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 156 19 16 140 11 18 156 11 12 145 148 151 154
+             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 153 11 11 12
+             154:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 153 11 11 12
+             155:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 19 16 140 11 18 156 11 12 145 148 151 154
              157:             TypeArray 144(gl_PerVertex) 9
-             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 155 9
+             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 155 9
              159:             TypePointer Input 157
       160(gl_in):    159(ptr) Variable Input
-             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 162 158 16 140 11 18 162 160(gl_in) 42
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 162 158 16 140 11 18 162 160(gl_in) 42
              163:             TypePointer Input 134(fvec4)
              175:      6(int) Constant 66
-             173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 174 135 16 175 11 15 20
+             173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 174 135 16 175 11 15 20
              188:      6(int) Constant 67
-             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 187 135 16 188 11 15 20
+             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 187 135 16 188 11 15 20
              196:             TypeImage 24(float) 2D sampled format:Unknown
              199:      6(int) Constant 69
-             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 198 11 16 199 11 18 200 201 12
+             201:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 198 11 16 199 11 18 200 201 12
              202:             TypeSampledImage 196
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 204 11 16 199 11 18 205 201 12
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 204 11 16 199 11 18 205 201 12
              206:             TypePointer UniformConstant 202
 207(displacementMap):    206(ptr) Variable UniformConstant
-             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 209 203 16 199 11 18 209 207(displacementMap) 42
+             208:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 209 203 16 199 11 18 209 207(displacementMap) 42
              212:   24(float) Constant 0
              215:             TypeMatrix 134(fvec4) 4
              217:             TypeBool
              218:   217(bool) ConstantTrue
-             216:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 135 20 218
+             216:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 135 20 218
              219:             TypeArray 134(fvec4) 10
-             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 135 10
+             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 135 10
         221(UBO):             TypeStruct 215 215 134(fvec4) 219 24(float) 24(float) 27(fvec2) 24(float)
              224:      6(int) Constant 30
              225:      6(int) Constant 7
-             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 223 216 16 224 225 11 11 12
-             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 223 216 16 224 225 11 11 12
+             222:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 216 16 224 225 11 11 12
+             226:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 223 216 16 224 225 11 11 12
              229:      6(int) Constant 31
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 228 135 16 229 225 11 11 12
-             230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 231 220 16 9 225 11 11 12
+             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 228 135 16 229 225 11 11 12
+             230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 231 220 16 9 225 11 11 12
              234:      6(int) Constant 36
-             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 233 26 16 234 42 11 11 12
-             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 233 26 16 234 42 11 11 12
+             232:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
+             235:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
              238:      6(int) Constant 35
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 237 28 16 238 225 11 11 12
-             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 233 26 16 234 42 11 11 12
-             240:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 241 19 16 199 11 18 241 11 12 222 226 227 230 232 235 236 239
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 237 28 16 238 225 11 11 12
+             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 233 26 16 234 42 11 11 12
+             240:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 241 19 16 199 11 18 241 11 12 222 226 227 230 232 235 236 239
              242:             TypePointer Uniform 221(UBO)
         243(ubo):    242(ptr) Variable Uniform
-             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 245 240 16 199 11 18 245 243(ubo) 42
+             244:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 245 240 16 199 11 18 245 243(ubo) 42
              246:     43(int) Constant 4
              247:             TypePointer Uniform 24(float)
              251:             TypePointer Function 24(float)
 256(gl_PerVertex):             TypeStruct 134(fvec4) 24(float) 142 142
              258:      6(int) Constant 165
-             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 135 16 19 258 11 11 12
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 146 135 16 19 258 11 11 12
              260:      6(int) Constant 183
-             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 149 26 16 19 260 11 11 12
+             259:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 149 26 16 19 260 11 11 12
              262:      6(int) Constant 226
-             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 143 16 19 262 11 11 12
-             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 152 143 16 19 262 11 11 12
+             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 262 11 11 12
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 152 143 16 19 262 11 11 12
              265:      6(int) Constant 71
-             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 156 19 16 265 11 18 156 11 12 257 259 261 263
+             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 156 19 16 265 11 18 156 11 12 257 259 261 263
              266:             TypePointer Output 256(gl_PerVertex)
              267:    266(ptr) Variable Output
-             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 17 264 16 265 11 18 17 267 42
+             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 264 16 265 11 18 17 267 42
              269:             TypePointer Uniform 215
              277:             TypePointer Output 134(fvec4)
  279(outViewVec):    123(ptr) Variable Output
              282:      6(int) Constant 74
-             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 281 54 16 282 11 18 281 279(outViewVec) 42
+             280:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 281 54 16 282 11 18 281 279(outViewVec) 42
 286(outLightVec):    123(ptr) Variable Output
              289:      6(int) Constant 75
-             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 288 54 16 289 11 18 288 286(outLightVec) 42
+             287:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 288 54 16 289 11 18 288 286(outLightVec) 42
              290:             TypePointer Uniform 134(fvec4)
 297(outWorldPos):    123(ptr) Variable Output
              300:      6(int) Constant 76
-             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 299 54 16 300 11 18 299 297(outWorldPos) 42
+             298:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 299 54 16 300 11 18 299 297(outWorldPos) 42
   303(outEyePos):    123(ptr) Variable Output
              306:      6(int) Constant 77
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 305 54 16 306 11 18 305 303(outEyePos) 42
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 305 54 16 306 11 18 305 303(outEyePos) 42
         13(main):           3 Function None 4
               22:             Label
          30(uv1):     29(ptr) Variable Function
@@ -290,8 +290,8 @@
        137(pos1):    136(ptr) Variable Function
        172(pos2):    136(ptr) Variable Function
         185(pos):    136(ptr) Variable Function
-              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 31 30(uv1) 35
+              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 31 30(uv1) 35
               48:     47(ptr) AccessChain 39(inUV) 46
               49:   27(fvec2) Load 48
               51:     47(ptr) AccessChain 39(inUV) 50
@@ -301,7 +301,7 @@
               62:   27(fvec2) CompositeConstruct 61 61
               63:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 49 52 62
                               Store 30(uv1) 63
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 65 64(uv2) 35
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 64(uv2) 35
               70:     47(ptr) AccessChain 39(inUV) 69
               71:   27(fvec2) Load 70
               73:     47(ptr) AccessChain 39(inUV) 72
@@ -318,7 +318,7 @@
               88:   27(fvec2) CompositeConstruct 87 87
               89:   27(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 84 85 88
                               Store 80(outUV) 89
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 92 91(n1) 35
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 92 91(n1) 35
              102:     55(ptr) AccessChain 99(inNormal) 46
              103:   53(fvec3) Load 102
              104:     55(ptr) AccessChain 99(inNormal) 50
@@ -328,7 +328,7 @@
              108:   53(fvec3) CompositeConstruct 107 107 107
              109:   53(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 103 105 108
                               Store 91(n1) 109
-             114:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 111 110(n2) 35
+             114:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 111 110(n2) 35
              115:     55(ptr) AccessChain 99(inNormal) 69
              116:   53(fvec3) Load 115
              117:     55(ptr) AccessChain 99(inNormal) 72
@@ -345,7 +345,7 @@
              132:   53(fvec3) CompositeConstruct 131 131 131
              133:   53(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 128 129 132
                               Store 124(outNormal) 133
-             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 138 137(pos1) 35
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 138 137(pos1) 35
              164:    163(ptr) AccessChain 160(gl_in) 46 46
              165:  134(fvec4) Load 164
              166:    163(ptr) AccessChain 160(gl_in) 50 46
@@ -355,7 +355,7 @@
              170:  134(fvec4) CompositeConstruct 169 169 169 169
              171:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 165 167 170
                               Store 137(pos1) 171
-             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 173 172(pos2) 35
+             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 173 172(pos2) 35
              177:    163(ptr) AccessChain 160(gl_in) 69 46
              178:  134(fvec4) Load 177
              179:    163(ptr) AccessChain 160(gl_in) 72 46
@@ -365,7 +365,7 @@
              183:  134(fvec4) CompositeConstruct 182 182 182 182
              184:  134(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 178 180 183
                               Store 172(pos2) 184
-             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 186 185(pos) 35
+             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 186 185(pos) 35
              190:  134(fvec4) Load 137(pos1)
              191:  134(fvec4) Load 172(pos2)
              192:     59(ptr) AccessChain 56(gl_TessCoord) 19
diff --git a/Test/baseResults/spv.debuginfo.glsl.vert.out b/Test/baseResults/spv.debuginfo.glsl.vert.out
index 24025de..9a7bdd6 100644
--- a/Test/baseResults/spv.debuginfo.glsl.vert.out
+++ b/Test/baseResults/spv.debuginfo.glsl.vert.out
@@ -1,7 +1,7 @@
 spv.debuginfo.glsl.vert
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 374
 
                               Capability Shader
@@ -120,76 +120,76 @@
                9:      6(int) Constant 32
               10:      6(int) Constant 6
               11:      6(int) Constant 0
-               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 8 9 10 11
+               7:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 8 9 10 11
               12:      6(int) Constant 3
-               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 12 3
-              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 17
+               5:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 12 3
+              16:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 17
               19:      6(int) Constant 1
               20:      6(int) Constant 4
               21:      6(int) Constant 2
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 19 20 16 21
-              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 14 5 16 11 11 18 14 12 11
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 19 20 16 21
+              15:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 14 5 16 11 11 18 14 12 11
               24:             TypeFloat 32
-              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 25 9 12 11
+              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 25 9 12 11
               27:             TypeVector 24(float) 3
-              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 12
+              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 12
               29:             TypePointer Output 27(fvec3)
     30(outColor):     29(ptr) Variable Output
               33:      6(int) Constant 56
               34:      6(int) Constant 8
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 32 28 16 33 11 18 32 30(outColor) 34
+              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 32 28 16 33 11 18 32 30(outColor) 34
               35:             TypePointer Input 27(fvec3)
      36(inColor):     35(ptr) Variable Input
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 38 28 16 33 11 18 38 36(inColor) 34
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 38 28 16 33 11 18 38 36(inColor) 34
        40(outUV):     29(ptr) Variable Output
               43:      6(int) Constant 57
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 42 28 16 43 11 18 42 40(outUV) 34
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 42 28 16 43 11 18 42 40(outUV) 34
               44:             TypeVector 24(float) 2
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 21
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 21
               46:             TypePointer Input 44(fvec2)
         47(inUV):     46(ptr) Variable Input
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 49 45 16 43 11 18 49 47(inUV) 34
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 49 45 16 43 11 18 49 47(inUV) 34
               51:             TypeInt 32 1
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 52 9 20 11
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 52 9 20 11
               54:             TypePointer Input 51(int)
 55(instanceTexIndex):     54(ptr) Variable Input
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 57 53 16 43 11 18 57 55(instanceTexIndex) 34
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 57 53 16 43 11 18 57 55(instanceTexIndex) 34
               63:             TypePointer Function 24(float)
               67:      6(int) Constant 62
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 66 26 16 67 11 15 20
-              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 66 26 16 67 11 15 20
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
  70(instanceRot):     35(ptr) Variable Input
-              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 72 28 16 67 11 18 72 70(instanceRot) 34
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 72 28 16 67 11 18 72 70(instanceRot) 34
               73:             TypePointer Input 24(float)
               76:             TypeVector 24(float) 4
-              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 26 20
+              77:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 26 20
               78:             TypeMatrix 76(fvec4) 4
               80:             TypeBool
               81:    80(bool) ConstantTrue
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 77 20 81
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 77 20 81
          82(UBO):             TypeStruct 78 78 76(fvec4) 24(float) 24(float)
               85:      6(int) Constant 42
               86:      6(int) Constant 7
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 79 16 85 86 11 11 12
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 79 16 85 86 11 11 12
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 79 16 85 86 11 11 12
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 79 16 85 86 11 11 12
               90:      6(int) Constant 43
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 89 77 16 90 86 11 11 12
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 89 77 16 90 86 11 11 12
               93:      6(int) Constant 45
-              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 26 16 93 34 11 11 12
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 92 26 16 93 34 11 11 12
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 96 19 16 67 11 18 96 11 12 83 87 88 91 94
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 92 26 16 93 34 11 11 12
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 92 26 16 93 34 11 11 12
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 96 19 16 67 11 18 96 11 12 83 87 88 91 94
               97:             TypePointer Uniform 82(UBO)
          98(ubo):     97(ptr) Variable Uniform
-              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 100 95 16 67 11 18 100 98(ubo) 34
+              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 100 95 16 67 11 18 100 98(ubo) 34
              101:     51(int) Constant 3
              102:             TypePointer Uniform 24(float)
              110:      6(int) Constant 63
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 26 16 110 11 15 20
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 26 16 110 11 15 20
              118:             TypeMatrix 27(fvec3) 3
-             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 28 12 81
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 28 12 81
              120:             TypePointer Function 118
              124:      6(int) Constant 65
-             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 123 119 16 124 11 15 20
+             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 123 119 16 124 11 15 20
              126:     51(int) Constant 0
              129:   24(float) Constant 0
              131:             TypePointer Function 27(fvec3)
@@ -198,59 +198,59 @@
              140:   24(float) Constant 1065353216
              141:   27(fvec3) ConstantComposite 129 129 140
              158:      6(int) Constant 73
-             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 157 119 16 158 11 15 20
+             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 157 119 16 158 11 15 20
              164:   27(fvec3) ConstantComposite 129 140 129
              186:      6(int) Constant 81
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 185 119 16 186 11 15 20
+             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 185 119 16 186 11 15 20
              188:   27(fvec3) ConstantComposite 140 129 129
              202:      6(int) Constant 85
-             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 201 119 16 202 11 15 20
+             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 201 119 16 202 11 15 20
              211:     51(int) Constant 4
              222:             TypePointer Function 78
              226:      6(int) Constant 90
-             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 225 79 16 226 11 15 20
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 225 79 16 226 11 15 20
              231:             TypePointer Function 76(fvec4)
              233:   76(fvec4) ConstantComposite 129 140 129 129
              240:   76(fvec4) ConstantComposite 129 129 129 140
              245:      6(int) Constant 95
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 244 77 16 245 11 15 20
+             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 244 77 16 245 11 15 20
       247(inPos):     35(ptr) Variable Input
-             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 249 28 16 245 11 18 249 247(inPos) 34
+             248:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 249 28 16 245 11 18 249 247(inPos) 34
              260:      6(int) Constant 96
-             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 259 77 16 260 11 15 20
+             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 259 77 16 260 11 15 20
 264(instanceScale):     73(ptr) Variable Input
-             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 266 26 16 260 11 18 266 264(instanceScale) 34
+             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 266 26 16 260 11 18 266 264(instanceScale) 34
 269(instancePos):     35(ptr) Variable Input
-             270:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 271 28 16 260 11 18 271 269(instancePos) 34
+             270:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 271 28 16 260 11 18 271 269(instancePos) 34
              278:             TypeArray 24(float) 19
-             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 26 19
+             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 26 19
 280(gl_PerVertex):             TypeStruct 76(fvec4) 24(float) 278 278
              283:      6(int) Constant 24
-             281:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 282 77 16 19 283 11 11 12
-             284:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 285 26 16 19 85 11 11 12
-             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 287 279 16 19 202 11 11 12
-             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 287 279 16 19 202 11 11 12
+             281:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 282 77 16 19 283 11 11 12
+             284:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 285 26 16 19 85 11 11 12
+             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 287 279 16 19 202 11 11 12
+             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 287 279 16 19 202 11 11 12
              291:      6(int) Constant 98
-             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 290 19 16 291 11 18 290 11 12 281 284 286 288
+             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 290 19 16 291 11 18 290 11 12 281 284 286 288
              292:             TypePointer Output 280(gl_PerVertex)
              293:    292(ptr) Variable Output
-             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 17 289 16 291 11 18 17 293 34
+             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 17 289 16 291 11 18 17 293 34
              295:             TypePointer Uniform 78
              305:             TypePointer Output 76(fvec4)
   307(outNormal):     29(ptr) Variable Output
              310:      6(int) Constant 99
-             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 309 28 16 310 11 18 309 307(outNormal) 34
+             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 309 28 16 310 11 18 309 307(outNormal) 34
    325(inNormal):     35(ptr) Variable Input
-             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 327 28 16 310 11 18 327 325(inNormal) 34
+             326:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 327 28 16 310 11 18 327 325(inNormal) 34
              343:      6(int) Constant 102
-             341:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 342 28 16 343 11 15 20
+             341:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 342 28 16 343 11 15 20
              354:             TypePointer Uniform 76(fvec4)
 359(outLightVec):     29(ptr) Variable Output
              362:      6(int) Constant 103
-             360:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 361 28 16 362 11 18 361 359(outLightVec) 34
+             360:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 361 28 16 362 11 18 361 359(outLightVec) 34
  367(outViewVec):     29(ptr) Variable Output
              370:      6(int) Constant 104
-             368:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 369 28 16 370 11 18 369 367(outViewVec) 34
+             368:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 369 28 16 370 11 18 369 367(outViewVec) 34
         13(main):           3 Function None 4
               22:             Label
            64(s):     63(ptr) Variable Function
@@ -263,7 +263,7 @@
      242(locPos):    231(ptr) Variable Function
         257(pos):    231(ptr) Variable Function
        340(lPos):    131(ptr) Variable Function
-              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 15 13(main)
+              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 15 13(main)
               39:   27(fvec3) Load 36(inColor)
                               Store 30(outColor) 39
               50:   44(fvec2) Load 47(inUV)
@@ -273,7 +273,7 @@
               61:   24(float) CompositeExtract 50 1
               62:   27(fvec3) CompositeConstruct 60 61 59
                               Store 40(outUV) 62
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 65 64(s) 69
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 64(s) 69
               74:     73(ptr) AccessChain 70(instanceRot) 11
               75:   24(float) Load 74
              103:    102(ptr) AccessChain 98(ubo) 101
@@ -281,7 +281,7 @@
              105:   24(float) FAdd 75 104
              106:   24(float) ExtInst 2(GLSL.std.450) 13(Sin) 105
                               Store 64(s) 106
-             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 107(c) 69
+             111:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 107(c) 69
              112:     73(ptr) AccessChain 70(instanceRot) 11
              113:   24(float) Load 112
              114:    102(ptr) AccessChain 98(ubo) 101
@@ -289,7 +289,7 @@
              116:   24(float) FAdd 113 115
              117:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 116
                               Store 107(c) 117
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 122 121(mx) 69
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 122 121(mx) 69
              127:   24(float) Load 107(c)
              128:   24(float) Load 64(s)
              130:   27(fvec3) CompositeConstruct 127 128 129
@@ -317,7 +317,7 @@
              153:   24(float) FAdd 150 152
              154:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 153
                               Store 107(c) 154
-             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 156 155(my) 69
+             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 156 155(my) 69
              160:   24(float) Load 107(c)
              161:   24(float) Load 64(s)
              162:   27(fvec3) CompositeConstruct 160 129 161
@@ -345,7 +345,7 @@
              181:   24(float) FAdd 178 180
              182:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 181
                               Store 107(c) 182
-             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 184 183(mz) 69
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 184 183(mz) 69
              189:    131(ptr) AccessChain 183(mz) 126
                               Store 189 188
              190:   24(float) Load 107(c)
@@ -359,7 +359,7 @@
              197:   27(fvec3) CompositeConstruct 129 195 196
              198:    131(ptr) AccessChain 183(mz) 139
                               Store 198 197
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 200 199(rotMat) 69
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 200 199(rotMat) 69
              204:         118 Load 183(mz)
              205:         118 Load 155(my)
              206:         118 MatrixTimesMatrix 204 205
@@ -380,7 +380,7 @@
              220:   24(float) FAdd 217 219
              221:   24(float) ExtInst 2(GLSL.std.450) 14(Cos) 220
                               Store 107(c) 221
-             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 224 223(gRotMat) 69
+             227:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 224 223(gRotMat) 69
              228:   24(float) Load 107(c)
              229:   24(float) Load 64(s)
              230:   76(fvec4) CompositeConstruct 228 129 229 129
@@ -396,7 +396,7 @@
                               Store 239 238
              241:    231(ptr) AccessChain 223(gRotMat) 101
                               Store 241 240
-             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 243 242(locPos) 69
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 243 242(locPos) 69
              250:   27(fvec3) Load 247(inPos)
              251:         118 Load 199(rotMat)
              252:   27(fvec3) VectorTimesMatrix 250 251
@@ -405,7 +405,7 @@
              255:   24(float) CompositeExtract 252 2
              256:   76(fvec4) CompositeConstruct 253 254 255 140
                               Store 242(locPos) 256
-             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 258 257(pos) 69
+             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 258 257(pos) 69
              262:   76(fvec4) Load 242(locPos)
              263:   27(fvec3) VectorShuffle 262 262 0 1 2
              267:   24(float) Load 264(instanceScale)
@@ -456,7 +456,7 @@
              338:   76(fvec4) CompositeConstruct 335 336 337 140
              339:   76(fvec4) MatrixTimesVector 331 338
                               Store 257(pos) 339
-             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 341 340(lPos) 69
+             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 341 340(lPos) 69
              345:    295(ptr) AccessChain 98(ubo) 133
              346:          78 Load 345
              347:   76(fvec4) CompositeExtract 346 0
diff --git a/Test/baseResults/spv.debuginfo.hlsl.comp.out b/Test/baseResults/spv.debuginfo.hlsl.comp.out
index 593dca9..abad608 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.comp.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.comp.out
@@ -1,7 +1,7 @@
 spv.debuginfo.hlsl.comp
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 833
 
                               Capability Shader
@@ -169,183 +169,183 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:             TypeVector 7(float) 3
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
               19:             TypePointer Function 17(fvec3)
               20:             TypePointer Function 7(float)
               21:             TypeFunction 17(fvec3) 19(ptr) 19(ptr) 20(ptr)
-              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 18 18 18 8
-              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 30
+              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 18 18 18 8
+              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 30
               32:     10(int) Constant 1
               33:     10(int) Constant 4
               34:     10(int) Constant 5
-              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 32 33 29 34
-              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 27 22 29 15 15 31 27 16 15
-              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 39 18 29 15 15 28 33 32
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              31:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 32 33 29 34
+              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 27 22 29 15 15 31 27 16 15
+              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 39 18 29 15 15 28 33 32
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               44:     10(int) Constant 2
-              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 43 18 29 15 15 28 33 44
-              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 8 29 15 15 28 33 16
+              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 43 18 29 15 15 28 33 44
+              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 47 8 29 15 15 28 33 16
               49:             TypeVector 10(int) 3
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 11 16
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 11 16
               51:             TypePointer Function 49(ivec3)
               52:             TypeFunction 3 51(ptr)
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 3 50
-              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 56 53 29 15 15 31 56 16 15
-              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 62 50 29 15 15 57 33 32
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 3 50
+              57:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 56 53 29 15 15 31 56 16 15
+              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 62 50 29 15 15 57 33 32
               68:     10(int) Constant 76
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 67 18 29 68 15 28 33
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 67 18 29 68 15 28 33
               75:             TypeVector 7(float) 4
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 33
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 33
               77:             TypeInt 32 1
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 78 13 33 15
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 78 13 33 15
               80:             TypeVector 77(int) 2
-              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 79 44
+              81:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 79 44
          82(UBO):             TypeStruct 7(float) 7(float) 7(float) 7(float) 7(float) 7(float) 7(float) 7(float) 75(fvec4) 75(fvec4) 80(ivec2)
               85:     10(int) Constant 48
               86:     10(int) Constant 20
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 84 8 29 85 86 15 15 16
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
+              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 84 8 29 85 86 15 15 16
               96:     10(int) Constant 50
               97:     10(int) Constant 16
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 76 29 96 97 15 15 16
-              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 76 29 96 97 15 15 16
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 95 76 29 96 97 15 15 16
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 95 76 29 96 97 15 15 16
              101:     10(int) Constant 51
-              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 100 81 29 101 86 15 15 16
+              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 100 81 29 101 86 15 15 16
              104:     10(int) Constant 77
-             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 103 32 29 104 15 31 103 15 16 83 87 88 89 90 91 92 93 94 98 99
+             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 103 32 29 104 15 31 103 15 16 83 87 88 89 90 91 92 93 94 98 99
         105(ubo):             TypeStruct 82(UBO)
              108:     10(int) Constant 56
              109:     10(int) Constant 12
-             106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 107 102 29 108 109 15 15 16
-             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 111 32 29 104 15 31 111 15 16 106
+             106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 107 102 29 108 109 15 15 16
+             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 111 32 29 104 15 31 111 15 16 106
              112:             TypePointer Uniform 105(ubo)
              113:    112(ptr) Variable Uniform
              115:     10(int) Constant 8
-             114:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 30 110 29 104 15 31 30 113 115
+             114:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 110 29 104 15 31 30 113 115
              116:     77(int) Constant 0
              117:     77(int) Constant 2
              118:             TypePointer Uniform 7(float)
              130:             TypePointer Function 10(int)
              134:     10(int) Constant 83
-             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 133 11 29 134 15 57 33
+             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 133 11 29 134 15 57 33
              138:     77(int) Constant 10
              139:             TypePointer Uniform 77(int)
              154:             TypeBool
-             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
    161(Particle):             TypeStruct 75(fvec4) 75(fvec4) 75(fvec4) 75(fvec4) 7(float)
              164:     10(int) Constant 30
              165:     10(int) Constant 15
-             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 76 29 164 165 15 15 16
-             166:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 76 29 164 165 15 15 16
-             167:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 76 29 164 165 15 15 16
-             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 163 76 29 164 165 15 15 16
+             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 163 76 29 164 165 15 15 16
+             166:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 163 76 29 164 165 15 15 16
+             167:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 163 76 29 164 165 15 15 16
+             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 163 76 29 164 165 15 15 16
              171:     10(int) Constant 31
              172:     10(int) Constant 14
-             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 170 8 29 171 172 15 15 16
+             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 170 8 29 171 172 15 15 16
              175:     10(int) Constant 88
-             173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 174 32 29 175 15 31 174 15 16 162 166 167 168 169
+             173:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 174 32 29 175 15 31 174 15 16 162 166 167 168 169
              176:             TypeRuntimeArray 161(Particle)
-             177:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 173 15
+             177:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 173 15
  178(particleIn):             TypeStruct 176
              181:     10(int) Constant 35
              182:     10(int) Constant 28
-             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 177 29 181 182 15 15 16
-             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 184 32 29 175 15 31 184 15 16 179
+             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 180 177 29 181 182 15 15 16
+             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 184 32 29 175 15 31 184 15 16 179
              185:             TypePointer Uniform 178(particleIn)
  186(particleIn):    185(ptr) Variable Uniform
-             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 184 183 29 175 15 31 184 186(particleIn) 115
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 184 183 29 175 15 31 184 186(particleIn) 115
              189:     77(int) Constant 4
              192:    7(float) Constant 1065353216
-             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              197:             TypeRuntimeArray 161(Particle)
-             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 173 15
+             198:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 173 15
 199(particleOut):             TypeStruct 197
              201:     10(int) Constant 37
-             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 198 29 201 164 15 15 16
+             200:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 180 198 29 201 164 15 15 16
              204:     10(int) Constant 89
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 203 32 29 204 15 31 203 15 16 200
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 203 32 29 204 15 31 203 15 16 200
              205:             TypePointer Uniform 199(particleOut)
 206(particleOut):    205(ptr) Variable Uniform
-             207:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 203 202 29 204 15 31 203 206(particleOut) 115
+             207:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 203 202 29 204 15 31 203 206(particleOut) 115
              210:             TypePointer Uniform 75(fvec4)
              215:     77(int) Constant 1
              216:    7(float) Constant 0
              217:   75(fvec4) ConstantComposite 216 216 216 216
              223:     10(int) Constant 95
-             221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 222 18 29 223 15 57 33
+             221:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 222 18 29 223 15 57 33
              225:     77(int) Constant 9
              235:     10(int) Constant 97
-             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 234 18 29 235 15 57 33
+             233:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 234 18 29 235 15 57 33
              244:     10(int) Constant 98
-             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 243 18 29 244 15 57 33
-             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             300:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 243 18 29 244 15 57 33
+             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             300:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              309:     77(int) Constant 5
-             324:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             324:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             347:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              367:     77(int) Constant 6
-             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             388:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             426:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             458:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             388:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             416:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             424:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             426:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             454:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             458:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              482:     77(int) Constant 3
              493:     10(int) Constant 137
-             491:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 492 18 29 493 15 57 33
+             491:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 492 18 29 493 15 57 33
              507:    7(float) Constant 1056964608
              537:     10(int) Constant 142
-             535:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 536 18 29 537 15 57 33
+             535:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 536 18 29 537 15 57 33
              543:     77(int) Constant 8
              550:     77(int) Constant 7
              553:    7(float) Constant 1008981770
-             555:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             555:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
 578(PushConstants):             TypeStruct 10(int)
              581:     10(int) Constant 67
              582:     10(int) Constant 23
-             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 580 11 29 581 582 15 15 16
+             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 580 11 29 581 582 15 15 16
              585:     10(int) Constant 151
-             583:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 584 32 29 585 15 31 584 15 16 579
+             583:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 584 32 29 585 15 31 584 15 16 579
     586($Global):             TypeStruct 578(PushConstants)
              589:     10(int) Constant 71
-             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 588 583 29 589 165 15 15 16
-             590:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 591 32 29 585 15 31 591 15 16 587
+             587:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 588 583 29 589 165 15 15 16
+             590:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 591 32 29 585 15 31 591 15 16 587
              592:             TypePointer Uniform 586($Global)
              593:    592(ptr) Variable Uniform
-             594:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 30 590 29 585 15 31 30 593 115
+             594:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 590 29 585 15 31 30 593 115
              595:             TypePointer Uniform 10(int)
-             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             598:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              604:     10(int) Constant 152
-             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 163 18 29 604 15 57 33
+             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 163 18 29 604 15 57 33
              606:   17(fvec3) ConstantComposite 216 216 216
-             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             615:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             615:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              622:     10(int) Constant 156
-             620:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 621 18 29 622 15 57 33
+             620:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 621 18 29 622 15 57 33
              634:     10(int) Constant 157
-             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 633 18 29 634 15 57 33
+             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 633 18 29 634 15 57 33
              650:     10(int) Constant 158
-             648:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 649 18 29 650 15 57 33
-             677:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             724:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             730:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
-             777:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 155 13 44 15
+             648:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 649 18 29 650 15 57 33
+             677:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             724:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             730:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
+             777:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 155 13 44 15
              827:             TypePointer Input 49(ivec3)
          828(id):    827(ptr) Variable Input
          5(main):           3 Function None 4
@@ -365,13 +365,13 @@
     25(restDist):     20(ptr) FunctionParameter
               35:             Label
         65(dist):     19(ptr) Variable Function
-              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 28
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 15 15 15 15
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 38 23(p0) 41
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 42 24(p1) 41
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 46 25(restDist) 41
-              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 28 26(springForce(vf3;vf3;f1;)
-              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 66 65(dist) 41
+              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 28
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 29 15 15 15 15
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 38 23(p0) 41
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 42 24(p1) 41
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 46 25(restDist) 41
+              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 28 26(springForce(vf3;vf3;f1;)
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 66 65(dist) 41
               70:   17(fvec3) Load 23(p0)
               71:   17(fvec3) Load 24(p1)
               72:   17(fvec3) FSub 70 71
@@ -425,11 +425,11 @@
           619(a):     19(ptr) Variable Function
           631(b):     19(ptr) Variable Function
           647(c):     19(ptr) Variable Function
-              59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 57
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 15 15 15 15
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 61 54(id) 41
-             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 57 55(@main(vu3;)
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 132 131(index) 41
+              59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 57
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 29 15 15 15 15
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 61 54(id) 41
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 57 55(@main(vu3;)
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 132 131(index) 41
              136:    130(ptr) AccessChain 54(id) 32
              137:     10(int) Load 136
              140:    139(ptr) AccessChain 113 116 138 15
@@ -471,7 +471,7 @@
                                 Store 218 217
                                 Return
              196:             Label
-             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 221 220(force) 41
+             224:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 221 220(force) 41
              226:    210(ptr) AccessChain 113 116 225
              227:   75(fvec4) Load 226
              228:   17(fvec3) VectorShuffle 227 227 0 1 2
@@ -479,13 +479,13 @@
              230:    7(float) Load 229
              231:   17(fvec3) VectorTimesScalar 228 230
                               Store 220(force) 231
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 233 232(pos) 41
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 233 232(pos) 41
              237:     10(int) Load 131(index)
              238:    210(ptr) AccessChain 186(particleIn) 116 237 116
              239:   75(fvec4) Load 238
              240:   17(fvec3) VectorShuffle 239 239 0 1 2
                               Store 232(pos) 240
-             245:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 242 241(vel) 41
+             245:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 242 241(vel) 41
              246:     10(int) Load 131(index)
              247:    210(ptr) AccessChain 186(particleIn) 116 246 215
              248:   75(fvec4) Load 247
@@ -745,7 +745,7 @@
              488:   17(fvec3) Load 220(force)
              489:   17(fvec3) FAdd 488 487
                               Store 220(force) 489
-             494:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 491 490(f) 41
+             494:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 491 490(f) 41
              495:   17(fvec3) Load 220(force)
              496:    118(ptr) AccessChain 113 116 215
              497:    7(float) Load 496
@@ -787,7 +787,7 @@
              532:   75(fvec4) CompositeConstruct 529 530 531 216
              533:    210(ptr) AccessChain 206(particleOut) 116 522 215
                               Store 533 532
-             538:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 535 534(sphereDist) 41
+             538:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 535 534(sphereDist) 41
              539:     10(int) Load 131(index)
              540:    210(ptr) AccessChain 206(particleOut) 116 539 116
              541:   75(fvec4) Load 540
@@ -837,7 +837,7 @@
                               SelectionMerge 601 None
                               BranchConditional 599 600 601
              600:               Label
-             605:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 603 602(normal) 41
+             605:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 603 602(normal) 41
                                 Store 602(normal) 606
              607:    130(ptr)   AccessChain 54(id) 32
              608:     10(int)   Load 607
@@ -851,7 +851,7 @@
                                   SelectionMerge 618 None
                                   BranchConditional 616 617 618
              617:                   Label
-             623:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 620 619(a) 41
+             623:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 620 619(a) 41
              624:     10(int)       Load 131(index)
              625:     10(int)       ISub 624 32
              626:    210(ptr)       AccessChain 186(particleIn) 116 625 116
@@ -860,7 +860,7 @@
              629:   17(fvec3)       Load 232(pos)
              630:   17(fvec3)       FSub 628 629
                                     Store 619(a) 630
-             635:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 632 631(b) 41
+             635:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 632 631(b) 41
              636:     10(int)       Load 131(index)
              637:    139(ptr)       AccessChain 113 116 138 15
              638:     77(int)       Load 637
@@ -873,7 +873,7 @@
              645:   17(fvec3)       Load 232(pos)
              646:   17(fvec3)       FSub 644 645
                                     Store 631(b) 646
-             651:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 648 647(c) 41
+             651:           3       ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 648 647(c) 41
              652:     10(int)       Load 131(index)
              653:    139(ptr)       AccessChain 113 116 138 15
              654:     77(int)       Load 653
diff --git a/Test/baseResults/spv.debuginfo.hlsl.frag.out b/Test/baseResults/spv.debuginfo.hlsl.frag.out
index 2d8cc16..a008da8 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.frag.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.frag.out
@@ -1,7 +1,7 @@
 spv.debuginfo.hlsl.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 743
 
                               Capability Shader
@@ -208,230 +208,230 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:             TypeVector 7(float) 4
               18:     10(int) Constant 4
-              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 18
+              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 18
               20:             TypePointer Function 17(fvec4)
               21:             TypePointer Function 7(float)
               22:             TypeVector 7(float) 2
               23:     10(int) Constant 2
-              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 23
+              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 23
               25:             TypePointer Function 22(fvec2)
               26:             TypeFunction 7(float) 20(ptr) 21(ptr) 25(ptr)
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 8 19 8 24
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 35
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 8 19 8 24
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 35
               37:     10(int) Constant 1
               38:     10(int) Constant 5
-              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 37 18 34 38
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 32 27 34 15 15 36 32 16 15
-              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 43 19 34 15 15 33 18 37
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 8 34 15 15 33 18 23
-              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 50 24 34 15 15 33 18 16
+              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 37 18 34 38
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 32 27 34 15 15 36 32 16 15
+              42:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 43 19 34 15 15 33 18 37
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              46:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 47 8 34 15 15 33 18 23
+              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 50 24 34 15 15 33 18 16
               52:             TypeFunction 7(float) 20(ptr) 21(ptr)
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 8 19 8
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 57 53 34 15 15 36 57 16 15
-              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 63 19 34 15 15 58 18 37
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 47 8 34 15 15 58 18 23
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 8 19 8
+              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 57 53 34 15 15 36 57 16 15
+              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 63 19 34 15 15 58 18 37
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 47 8 34 15 15 58 18 23
               67:             TypeVector 7(float) 3
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
               69:             TypePointer Function 67(fvec3)
               70:             TypeFunction 67(fvec3) 69(ptr) 69(ptr)
-              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 68 68 68
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 75 71 34 15 15 36 75 16 15
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 81 68 34 15 15 76 18 37
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 68 34 15 15 76 18 23
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 68 68 68
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 75 71 34 15 15 36 75 16 15
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 68 34 15 15 76 18 37
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 84 68 34 15 15 76 18 23
               86:             TypeFunction 17(fvec4) 25(ptr)
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 19 24
-              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 90 87 34 15 15 36 90 16 15
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 96 24 34 15 15 91 18 37
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 19 24
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 90 87 34 15 15 36 90 16 15
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 96 24 34 15 15 91 18 37
              101:     10(int) Constant 62
-             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 75 8 34 101 15 33 18
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 75 8 34 101 15 33 18
              103:    7(float) Constant 1065353216
              107:     10(int) Constant 63
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 106 19 34 107 15 33 18
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 106 19 34 107 15 33 18
              116:    7(float) Constant 1056964608
              126:    7(float) Constant 3212836864
              127:             TypeBool
-             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
-             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              142:     10(int) Constant 68
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 141 8 34 142 15 33 18
+             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 141 8 34 142 15 33 18
              144:             TypeImage 7(float) 2D array sampled format:Unknown
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 146 15 34 142 15 36 147 148 16
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 146 15 34 142 15 36 147 148 16
              149:             TypePointer UniformConstant 144
 150(textureShadowMap):    149(ptr) Variable UniformConstant
              153:     10(int) Constant 8
-             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 152 145 34 142 15 36 152 150(textureShadowMap) 153
+             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 152 145 34 142 15 36 152 150(textureShadowMap) 153
              155:             TypeSampler
-             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 157 37 34 142 15 36 158 148 16
+             156:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 142 15 36 158 148 16
              159:             TypePointer UniformConstant 155
 160(samplerShadowMap):    159(ptr) Variable UniformConstant
-             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 162 156 34 142 15 36 162 160(samplerShadowMap) 153
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 162 156 34 142 15 36 162 160(samplerShadowMap) 153
              164:             TypeSampledImage 144
-             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 166 15 34 142 15 36 167 148 16
+             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 166 15 34 142 15 36 167 148 16
              181:    7(float) Constant 0
-             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
-             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
-             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             187:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
+             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              193:    7(float) Constant 1048576000
              198:             TypeVector 10(int) 3
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 11 16
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 11 16
              200:             TypePointer Function 198(ivec3)
              204:     10(int) Constant 80
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 203 199 34 204 15 58 18
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 203 199 34 204 15 58 18
              208:             TypeInt 32 1
-             210:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 209 13 18 15
+             210:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 209 13 18 15
              211:             TypeVector 208(int) 2
-             212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 210 23
+             212:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 210 23
              213:             TypePointer Function 211(ivec2)
-             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 216 212 34 204 15 58 18
+             215:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 216 212 34 204 15 58 18
              218:             TypePointer Function 10(int)
              222:             TypePointer Function 208(int)
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 230 210 34 204 15 58 18
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 237 210 34 204 15 58 18
+             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 230 210 34 204 15 58 18
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 237 210 34 204 15 58 18
              245:     10(int) Constant 81
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 244 8 34 245 15 58 18
+             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 244 8 34 245 15 58 18
              247:    7(float) Constant 1069547520
              251:     10(int) Constant 82
-             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 250 8 34 251 15 58 18
+             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 250 8 34 251 15 58 18
              262:     10(int) Constant 83
-             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 261 8 34 262 15 58 18
+             260:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 261 8 34 262 15 58 18
              273:     10(int) Constant 85
-             271:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 272 8 34 273 15 58 18
+             271:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 272 8 34 273 15 58 18
              278:     10(int) Constant 86
-             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 277 210 34 278 15 58 18
+             276:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 277 210 34 278 15 58 18
              280:    208(int) Constant 0
              284:     10(int) Constant 87
-             282:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 283 210 34 284 15 58 18
+             282:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 283 210 34 284 15 58 18
              286:    208(int) Constant 1
              290:     10(int) Constant 89
-             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 289 210 34 290 15 58 18
-             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             288:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 289 210 34 290 15 58 18
+             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              306:     10(int) Constant 91
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 305 210 34 306 15 58 18
-             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 305 210 34 306 15 58 18
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              352:     10(int) Constant 102
-             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 351 210 34 352 15 76 18
+             350:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 351 210 34 352 15 76 18
              360:    208(int) Constant 3
-             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             361:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              366:     10(int) Constant 104
-             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 365 19 34 366 15 76 18
+             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 365 19 34 366 15 76 18
              373:             TypeMatrix 17(fvec4) 4
              375:   127(bool) ConstantTrue
-             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 19 18 375
+             374:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 375
       376(Light):             TypeStruct 17(fvec4) 17(fvec4) 17(fvec4) 373
              379:     10(int) Constant 46
              380:     10(int) Constant 14
-             377:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 378 19 34 379 380 15 15 16
-             381:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 378 19 34 379 380 15 15 16
-             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 378 19 34 379 380 15 15 16
+             377:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             381:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
+             382:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
              385:     10(int) Constant 47
              386:     10(int) Constant 21
-             383:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 384 374 34 385 386 15 15 16
-             387:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 388 37 34 366 15 36 388 15 16 377 381 382 383
+             383:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 384 374 34 385 386 15 15 16
+             387:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 388 37 34 366 15 36 388 15 16 377 381 382 383
              389:             TypeArray 376(Light) 16
-             390:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 387 16
+             390:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 387 16
         391(UBO):             TypeStruct 17(fvec4) 389 208(int) 208(int)
-             392:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 378 19 34 379 380 15 15 16
+             392:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 378 19 34 379 380 15 15 16
              395:     10(int) Constant 53
-             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 394 390 34 395 380 15 15 16
+             393:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 394 390 34 395 380 15 15 16
              398:     10(int) Constant 55
              399:     10(int) Constant 24
-             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 210 34 398 399 15 15 16
-             400:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 397 210 34 398 399 15 15 16
-             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 402 37 34 366 15 36 402 15 16 392 393 396 400
+             396:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 397 210 34 398 399 15 15 16
+             400:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 397 210 34 398 399 15 15 16
+             401:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 402 37 34 366 15 36 402 15 16 392 393 396 400
         403(ubo):             TypeStruct 391(UBO)
              406:     10(int) Constant 58
              407:     10(int) Constant 37
-             404:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 405 401 34 406 407 15 15 16
-             408:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 405 37 34 366 15 36 405 15 16 404
+             404:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 405 401 34 406 407 15 15 16
+             408:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 405 37 34 366 15 36 405 15 16 404
              409:             TypePointer Uniform 403(ubo)
              410:    409(ptr) Variable Uniform
-             411:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 35 408 34 366 15 36 35 410 153
+             411:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 35 408 34 366 15 36 35 410 153
              413:             TypePointer Uniform 373
              419:     10(int) Constant 108
-             418:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 272 8 34 419 15 76 18
+             418:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 272 8 34 419 15 76 18
              438:     10(int) Constant 121
-             437:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 84 68 34 438 15 91 18
+             437:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 84 68 34 438 15 91 18
              440:             TypeImage 7(float) 2D sampled format:Unknown
-             441:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 146 15 34 438 15 36 147 148 16
+             441:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 146 15 34 438 15 36 147 148 16
              442:             TypePointer UniformConstant 440
 443(textureposition):    442(ptr) Variable UniformConstant
-             444:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 445 441 34 438 15 36 445 443(textureposition) 153
-             447:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 157 37 34 438 15 36 158 148 16
+             444:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 445 441 34 438 15 36 445 443(textureposition) 153
+             447:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 438 15 36 158 148 16
 448(samplerposition):    159(ptr) Variable UniformConstant
-             449:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 450 447 34 438 15 36 450 448(samplerposition) 153
+             449:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 450 447 34 438 15 36 450 448(samplerposition) 153
              452:             TypeSampledImage 440
-             453:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 166 15 34 438 15 36 167 148 16
+             453:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 166 15 34 438 15 36 167 148 16
              461:     10(int) Constant 122
-             459:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 460 68 34 461 15 91 18
+             459:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 460 68 34 461 15 91 18
 463(textureNormal):    442(ptr) Variable UniformConstant
-             464:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 465 441 34 461 15 36 465 463(textureNormal) 153
-             467:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 157 37 34 461 15 36 158 148 16
+             464:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 465 441 34 461 15 36 465 463(textureNormal) 153
+             467:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 461 15 36 158 148 16
 468(samplerNormal):    159(ptr) Variable UniformConstant
-             469:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 470 467 34 461 15 36 470 468(samplerNormal) 153
+             469:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 470 467 34 461 15 36 470 468(samplerNormal) 153
              479:     10(int) Constant 123
-             477:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 478 19 34 479 15 91 18
+             477:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 478 19 34 479 15 91 18
 481(textureAlbedo):    442(ptr) Variable UniformConstant
-             482:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 483 441 34 479 15 36 483 481(textureAlbedo) 153
-             485:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 157 37 34 479 15 36 158 148 16
+             482:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 483 441 34 479 15 36 483 481(textureAlbedo) 153
+             485:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 157 37 34 479 15 36 158 148 16
 486(samplerAlbedo):    159(ptr) Variable UniformConstant
-             487:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 488 485 34 479 15 36 488 486(samplerAlbedo) 153
+             487:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 488 485 34 479 15 36 488 486(samplerAlbedo) 153
              493:             TypePointer Uniform 208(int)
-             496:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             496:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              510:     10(int) Constant 131
-             509:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 81 68 34 510 15 91 18
+             509:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 68 34 510 15 91 18
              512:   67(fvec3) ConstantComposite 103 103 103
              537:    7(float) Constant 1036831949
              542:     10(int) Constant 152
-             540:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 541 68 34 542 15 91 18
+             540:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 541 68 34 542 15 91 18
              548:     10(int) Constant 154
-             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 351 210 34 548 15 91 18
-             556:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             547:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 351 210 34 548 15 91 18
+             556:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              561:     10(int) Constant 157
-             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 560 68 34 561 15 91 18
+             559:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 560 68 34 561 15 91 18
              564:             TypePointer Uniform 17(fvec4)
              572:     10(int) Constant 159
-             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 141 8 34 572 15 91 18
+             571:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 141 8 34 572 15 91 18
              581:     10(int) Constant 163
-             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 580 68 34 581 15 91 18
+             579:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 580 68 34 581 15 91 18
              593:     10(int) Constant 166
-             591:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 592 8 34 593 15 91 18
+             591:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 592 8 34 593 15 91 18
              595:    7(float) Constant 1064781546
              599:     10(int) Constant 167
-             597:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 598 8 34 599 15 91 18
+             597:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 598 8 34 599 15 91 18
              601:    7(float) Constant 1063781322
              605:     10(int) Constant 168
-             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 604 8 34 605 15 91 18
+             603:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 604 8 34 605 15 91 18
              607:    7(float) Constant 1120403456
              611:     10(int) Constant 171
-             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 610 68 34 611 15 91 18
+             609:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 610 68 34 611 15 91 18
              626:     10(int) Constant 174
-             624:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 625 8 34 626 15 91 18
+             624:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 625 8 34 626 15 91 18
              634:     10(int) Constant 175
-             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 633 8 34 634 15 91 18
+             632:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 633 8 34 634 15 91 18
              643:     10(int) Constant 176
-             641:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 642 8 34 643 15 91 18
+             641:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 642 8 34 643 15 91 18
              651:     10(int) Constant 179
-             649:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 650 8 34 651 15 91 18
+             649:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 650 8 34 651 15 91 18
              660:     10(int) Constant 180
-             658:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 659 68 34 660 15 91 18
+             658:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 659 68 34 660 15 91 18
              667:     10(int) Constant 183
-             665:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 666 68 34 667 15 91 18
+             665:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 666 68 34 667 15 91 18
              676:     10(int) Constant 184
-             674:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 675 8 34 676 15 91 18
+             674:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 675 8 34 676 15 91 18
              685:     10(int) Constant 185
-             683:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 684 68 34 685 15 91 18
+             683:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 684 68 34 685 15 91 18
              688:    7(float) Constant 1098907648
              693:    7(float) Constant 1075838976
              704:    208(int) Constant 2
-             718:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 128 13 23 15
+             718:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 128 13 23 15
              735:             TypePointer Input 22(fvec2)
        736(inUV):    735(ptr) Variable Input
              738:             TypePointer Output 17(fvec4)
@@ -456,15 +456,15 @@
       99(shadow):     21(ptr) Variable Function
 104(shadowCoord):     20(ptr) Variable Function
        139(dist):     21(ptr) Variable Function
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 33
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 15 15 15 15
-              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 42 28(P) 45
-              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 46 29(layer) 45
-              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 49 30(offset) 45
-              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 33 31(textureProj(vf4;f1;vf2;)
-             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 100 99(shadow) 45
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 33
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
+              44:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 42 28(P) 45
+              48:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 46 29(layer) 45
+              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 49 30(offset) 45
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 33 31(textureProj(vf4;f1;vf2;)
+             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 100 99(shadow) 45
                               Store 99(shadow) 103
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 105 104(shadowCoord) 45
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 105 104(shadowCoord) 45
              109:   17(fvec4) Load 28(P)
              110:     21(ptr) AccessChain 28(P) 16
              111:    7(float) Load 110
@@ -492,7 +492,7 @@
                               SelectionMerge 138 None
                               BranchConditional 136 137 138
              137:               Label
-             143:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 140 139(dist) 45
+             143:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 140 139(dist) 45
              154:         144   Load 150(textureShadowMap)
              163:         155   Load 160(samplerShadowMap)
              168:         164   SampledImage 154 163
@@ -545,16 +545,16 @@
       328(param):     20(ptr) Variable Function
       330(param):     21(ptr) Variable Function
       332(param):     25(ptr) Variable Function
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 58
-              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 15 15 15 15
-              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 62 54(sc) 45
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 65 55(layer) 45
-             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 58 56(filterPCF(vf4;f1;)
-             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 202 201(sizeQueryTemp) 45
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 58
+              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
+              64:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 62 54(sc) 45
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 65 55(layer) 45
+             197:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 58 56(filterPCF(vf4;f1;)
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 202 201(sizeQueryTemp) 45
              206:         144 Load 150(textureShadowMap)
              207:  198(ivec3) ImageQuerySizeLod 206 15
                               Store 201(sizeQueryTemp) 207
-             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 215 214(texDim) 45
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 215 214(texDim) 45
              219:    218(ptr) AccessChain 201(sizeQueryTemp) 15
              220:     10(int) Load 219
              221:    208(int) Bitcast 220
@@ -565,19 +565,19 @@
              226:    208(int) Bitcast 225
              227:    222(ptr) AccessChain 214(texDim) 37
                               Store 227 226
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 229 228(elements) 45
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 229 228(elements) 45
              232:    218(ptr) AccessChain 201(sizeQueryTemp) 23
              233:     10(int) Load 232
              234:    208(int) Bitcast 233
                               Store 228(elements) 234
-             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 236 235(levels) 45
+             238:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 236 235(levels) 45
              239:         144 Load 150(textureShadowMap)
              240:     10(int) ImageQueryLevels 239
              241:    208(int) Bitcast 240
                               Store 235(levels) 241
-             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 243 242(scale) 45
+             246:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 243 242(scale) 45
                               Store 242(scale) 247
-             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 249 248(dx) 45
+             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 249 248(dx) 45
              253:    7(float) Load 242(scale)
              254:    7(float) FMul 253 103
              255:    222(ptr) AccessChain 214(texDim) 15
@@ -585,7 +585,7 @@
              257:    7(float) ConvertSToF 256
              258:    7(float) FDiv 254 257
                               Store 248(dx) 258
-             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 260 259(dy) 45
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 260 259(dy) 45
              264:    7(float) Load 242(scale)
              265:    7(float) FMul 264 103
              266:    222(ptr) AccessChain 214(texDim) 37
@@ -593,13 +593,13 @@
              268:    7(float) ConvertSToF 267
              269:    7(float) FDiv 265 268
                               Store 259(dy) 269
-             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 271 270(shadowFactor) 45
+             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 271 270(shadowFactor) 45
                               Store 270(shadowFactor) 181
-             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 276 275(count) 45
+             279:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 276 275(count) 45
                               Store 275(count) 280
-             285:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 282 281(range) 45
+             285:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 282 281(range) 45
                               Store 281(range) 286
-             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 288 287(x) 45
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 288 287(x) 45
              292:    208(int) Load 281(range)
              293:    208(int) SNegate 292
                               Store 287(x) 293
@@ -613,7 +613,7 @@
              302:   127(bool) SLessThanEqual 299 300
                               BranchConditional 302 295 296
              295:               Label
-             307:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 304 303(y) 45
+             307:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 304 303(y) 45
              308:    208(int)   Load 281(range)
              309:    208(int)   SNegate 308
                                 Store 303(y) 309
@@ -677,12 +677,12 @@
 417(shadowFactor):     21(ptr) Variable Function
       423(param):     20(ptr) Variable Function
       425(param):     21(ptr) Variable Function
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 76
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 15 15 15 15
-              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 80 72(fragcolor) 45
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 83 73(fragPos) 45
-             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 76 74(shadow(vf3;vf3;)
-             353:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 350 349(i) 45
+              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 76
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
+              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 72(fragcolor) 45
+              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 83 73(fragPos) 45
+             348:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 76 74(shadow(vf3;vf3;)
+             353:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 350 349(i) 45
                               Store 349(i) 280
                               Branch 354
              354:             Label
@@ -693,7 +693,7 @@
              362:   127(bool) SLessThan 359 360
                               BranchConditional 362 355 356
              355:               Label
-             367:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 364 363(shadowClip) 45
+             367:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 364 363(shadowClip) 45
              368:   67(fvec3)   Load 73(fragPos)
              369:    7(float)   CompositeExtract 368 0
              370:    7(float)   CompositeExtract 368 1
@@ -704,7 +704,7 @@
              415:         373   Load 414
              416:   17(fvec4)   VectorTimesMatrix 372 415
                                 Store 363(shadowClip) 416
-             420:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 418 417(shadowFactor) 45
+             420:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 418 417(shadowFactor) 45
              421:    208(int)   Load 349(i)
              422:    7(float)   ConvertSToF 421
              424:   17(fvec4)   Load 363(shadowClip)
@@ -754,11 +754,11 @@
        682(spec):     69(ptr) Variable Function
       722(param):     69(ptr) Variable Function
       724(param):     69(ptr) Variable Function
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 91
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 34 15 15 15 15
-              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 95 88(inUV) 45
-             435:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 91 89(@main(vf2;)
-             439:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 437 436(fragPos) 45
+              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 91
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 34 15 15 15 15
+              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 95 88(inUV) 45
+             435:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 91 89(@main(vf2;)
+             439:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 437 436(fragPos) 45
              446:         440 Load 443(textureposition)
              451:         155 Load 448(samplerposition)
              454:         452 SampledImage 446 451
@@ -766,7 +766,7 @@
              456:   17(fvec4) ImageSampleImplicitLod 454 455
              457:   67(fvec3) VectorShuffle 456 456 0 1 2
                               Store 436(fragPos) 457
-             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 459 458(normal) 45
+             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 459 458(normal) 45
              466:         440 Load 463(textureNormal)
              471:         155 Load 468(samplerNormal)
              472:         452 SampledImage 466 471
@@ -774,7 +774,7 @@
              474:   17(fvec4) ImageSampleImplicitLod 472 473
              475:   67(fvec3) VectorShuffle 474 474 0 1 2
                               Store 458(normal) 475
-             480:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 477 476(albedo) 45
+             480:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 477 476(albedo) 45
              484:         440 Load 481(textureAlbedo)
              489:         155 Load 486(samplerAlbedo)
              490:         452 SampledImage 484 489
@@ -797,7 +797,7 @@
                                        case 4: 505
                                        case 5: 506
              502:                 Label
-             511:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 509 508(fragcolor) 45
+             511:           3     ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 509 508(fragcolor) 45
                                   Store 513(param) 512
              515:   67(fvec3)     Load 436(fragPos)
                                   Store 514(param) 515
@@ -834,11 +834,11 @@
              536:   67(fvec3) VectorShuffle 535 535 0 1 2
              538:   67(fvec3) VectorTimesScalar 536 537
                               Store 508(fragcolor) 538
-             543:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 540 539(N) 45
+             543:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 540 539(N) 45
              544:   67(fvec3) Load 458(normal)
              545:   67(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 544
                               Store 539(N) 545
-             549:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 547 546(i) 45
+             549:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 547 546(i) 45
                               Store 546(i) 280
                               Branch 550
              550:             Label
@@ -849,7 +849,7 @@
              557:   127(bool) SLessThan 555 360
                               BranchConditional 557 551 552
              551:               Label
-             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 559 558(L) 45
+             562:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 559 558(L) 45
              563:    208(int)   Load 546(i)
              565:    564(ptr)   AccessChain 410 280 286 563 280
              566:   17(fvec4)   Load 565
@@ -857,14 +857,14 @@
              568:   67(fvec3)   Load 436(fragPos)
              569:   67(fvec3)   FSub 567 568
                                 Store 558(L) 569
-             573:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 571 570(dist) 45
+             573:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 571 570(dist) 45
              574:   67(fvec3)   Load 558(L)
              575:    7(float)   ExtInst 2(GLSL.std.450) 66(Length) 574
                                 Store 570(dist) 575
              576:   67(fvec3)   Load 558(L)
              577:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 576
                                 Store 558(L) 577
-             582:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 579 578(V) 45
+             582:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 579 578(V) 45
              583:    564(ptr)   AccessChain 410 280 280
              584:   17(fvec4)   Load 583
              585:   67(fvec3)   VectorShuffle 584 584 0 1 2
@@ -874,13 +874,13 @@
              588:   67(fvec3)   Load 578(V)
              589:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 588
                                 Store 578(V) 589
-             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 591 590(lightCosInnerAngle) 45
+             594:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 591 590(lightCosInnerAngle) 45
                                 Store 590(lightCosInnerAngle) 595
-             600:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 597 596(lightCosOuterAngle) 45
+             600:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 597 596(lightCosOuterAngle) 45
                                 Store 596(lightCosOuterAngle) 601
-             606:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 603 602(lightRange) 45
+             606:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 603 602(lightRange) 45
                                 Store 602(lightRange) 607
-             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 609 608(dir) 45
+             612:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 609 608(dir) 45
              613:    208(int)   Load 546(i)
              614:    564(ptr)   AccessChain 410 280 286 613 280
              615:   17(fvec4)   Load 614
@@ -892,45 +892,45 @@
              621:   67(fvec3)   FSub 616 620
              622:   67(fvec3)   ExtInst 2(GLSL.std.450) 69(Normalize) 621
                                 Store 608(dir) 622
-             627:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 624 623(cosDir) 45
+             627:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 624 623(cosDir) 45
              628:   67(fvec3)   Load 558(L)
              629:   67(fvec3)   Load 608(dir)
              630:    7(float)   Dot 628 629
                                 Store 623(cosDir) 630
-             635:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 632 631(spotEffect) 45
+             635:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 632 631(spotEffect) 45
              636:    7(float)   Load 596(lightCosOuterAngle)
              637:    7(float)   Load 590(lightCosInnerAngle)
              638:    7(float)   Load 623(cosDir)
              639:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 636 637 638
                                 Store 631(spotEffect) 639
-             644:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 641 640(heightAttenuation) 45
+             644:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 641 640(heightAttenuation) 45
              645:    7(float)   Load 602(lightRange)
              646:    7(float)   Load 570(dist)
              647:    7(float)   ExtInst 2(GLSL.std.450) 49(SmoothStep) 645 181 646
                                 Store 640(heightAttenuation) 647
-             652:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 649 648(NdotL) 45
+             652:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 649 648(NdotL) 45
              653:   67(fvec3)   Load 539(N)
              654:   67(fvec3)   Load 558(L)
              655:    7(float)   Dot 653 654
              656:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 655
                                 Store 648(NdotL) 656
-             661:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 658 657(diff) 45
+             661:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 658 657(diff) 45
              662:    7(float)   Load 648(NdotL)
              663:   67(fvec3)   CompositeConstruct 662 662 662
                                 Store 657(diff) 663
-             668:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 665 664(R) 45
+             668:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 665 664(R) 45
              669:   67(fvec3)   Load 558(L)
              670:   67(fvec3)   FNegate 669
              671:   67(fvec3)   Load 539(N)
              672:   67(fvec3)   ExtInst 2(GLSL.std.450) 71(Reflect) 670 671
                                 Store 664(R) 672
-             677:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 674 673(NdotR) 45
+             677:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 674 673(NdotR) 45
              678:   67(fvec3)   Load 664(R)
              679:   67(fvec3)   Load 578(V)
              680:    7(float)   Dot 678 679
              681:    7(float)   ExtInst 2(GLSL.std.450) 40(FMax) 181 680
                                 Store 673(NdotR) 681
-             686:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 683 682(spec) 45
+             686:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 683 682(spec) 45
              687:    7(float)   Load 673(NdotR)
              689:    7(float)   ExtInst 2(GLSL.std.450) 26(Pow) 687 688
              690:     21(ptr)   AccessChain 476(albedo) 16
diff --git a/Test/baseResults/spv.debuginfo.hlsl.geom.out b/Test/baseResults/spv.debuginfo.hlsl.geom.out
index 52db589..1eb9f83 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.geom.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.geom.out
@@ -1,7 +1,7 @@
 spv.debuginfo.hlsl.geom
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 322
 
                               Capability Geometry
@@ -129,65 +129,65 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:             TypeVector 7(float) 4
               18:     10(int) Constant 4
-              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 18
+              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 18
               20:             TypeVector 7(float) 3
-              21:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              21:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
     22(VSOutput):             TypeStruct 17(fvec4) 20(fvec3) 20(fvec3)
-              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 26
+              25:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 26
               27:     10(int) Constant 37
               28:     10(int) Constant 13
-              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 24 19 25 27 28 15 15 16
+              23:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 24 19 25 27 28 15 15 16
               31:     10(int) Constant 39
               32:     10(int) Constant 34
-              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 30 21 25 31 32 15 15 16
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 30 21 25 31 32 15 15 16
+              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 30 21 25 31 32 15 15 16
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 30 21 25 31 32 15 15 16
               36:     10(int) Constant 1
               38:     10(int) Constant 5
-              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 36 18 25 38
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 35 36 25 15 15 37 35 15 16 23 29 33
+              37:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 36 18 25 38
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 35 36 25 15 15 37 35 15 16 23 29 33
               39:             TypeArray 22(VSOutput) 16
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 34 16
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 34 16
               41:             TypePointer Function 39
     42(GSOutput):             TypeStruct 17(fvec4) 10(int) 10(int) 20(fvec3) 20(fvec3) 20(fvec3) 20(fvec3)
               44:     10(int) Constant 44
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 24 19 25 44 28 15 15 16
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 24 19 25 44 28 15 15 16
               47:     10(int) Constant 46
               48:     10(int) Constant 19
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 46 11 25 47 48 15 15 16
-              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 46 11 25 47 48 15 15 16
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 46 11 25 47 48 15 15 16
+              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 46 11 25 47 48 15 15 16
               52:     10(int) Constant 50
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 51 21 25 52 27 15 15 16
-              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 51 21 25 52 27 15 15 16
-              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 51 21 25 52 27 15 15 16
-              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 51 21 25 52 27 15 15 16
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 57 36 25 15 15 37 57 15 16 43 45 49 50 53 54 55
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 21 25 52 27 15 15 16
+              53:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 21 25 52 27 15 15 16
+              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 21 25 52 27 15 15 16
+              55:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 21 25 52 27 15 15 16
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 57 36 25 15 15 37 57 15 16 43 45 49 50 53 54 55
               58:             TypePointer Function 42(GSOutput)
               59:             TypePointer Function 10(int)
               60:             TypeFunction 3 41(ptr) 58(ptr) 59(ptr) 59(ptr)
-              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 3 40 56 11 11
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 67 61 25 15 15 37 67 16 15
-              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 73 40 25 15 15 68 18 36
-              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 3 40 56 11 11
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 67 61 25 15 15 37 67 16 15
+              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 73 40 25 15 15 68 18 36
+              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               78:     10(int) Constant 2
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 77 56 25 15 15 68 18 78
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 81 11 25 15 15 68 18 16
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 46 11 25 15 15 68 18 18
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 77 56 25 15 15 68 18 78
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 11 25 15 15 68 18 16
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 46 11 25 15 15 68 18 18
               86:             TypeInt 32 1
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 87 13 18 15
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 87 13 18 15
               89:             TypePointer Function 86(int)
               93:     10(int) Constant 57
-              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 92 88 25 93 15 68 18
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 92 88 25 93 15 68 18
               95:     86(int) Constant 0
              102:     86(int) Constant 3
              103:             TypeBool
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 104 13 78 15
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 104 13 78 15
              110:     10(int) Constant 59
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 56 25 110 15 68 18
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 56 25 110 15 68 18
              112:    7(float) Constant 0
              113:   17(fvec4) ConstantComposite 112 112 112 112
              114:   20(fvec3) ConstantComposite 112 112 112
@@ -196,64 +196,64 @@
              118:             TypePointer Function 20(fvec3)
              121:             TypeMatrix 17(fvec4) 4
              123:   103(bool) ConstantTrue
-             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 19 18 123
+             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 123
              124:             TypeArray 121 78
-             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 122 78
+             125:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 122 78
              126:             TypeArray 121 78
-             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 122 78
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 122 78
         128(UBO):             TypeStruct 124 126 17(fvec4)
              131:     10(int) Constant 28
              132:     10(int) Constant 21
-             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 130 125 25 131 132 15 15 16
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 130 125 25 131 132 15 15 16
              135:     10(int) Constant 29
              136:     10(int) Constant 20
-             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 134 127 25 135 136 15 15 16
+             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 134 127 25 135 136 15 15 16
              139:     10(int) Constant 30
              140:     10(int) Constant 17
-             137:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 138 19 25 139 140 15 15 16
+             137:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 138 19 25 139 140 15 15 16
              143:     10(int) Constant 60
-             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 142 36 25 143 15 37 142 15 16 129 133 137
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 142 36 25 143 15 37 142 15 16 129 133 137
         144(ubo):             TypeStruct 128(UBO)
              147:     10(int) Constant 33
-             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 146 141 25 147 27 15 15 16
-             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 146 36 25 143 15 37 146 15 16 145
+             145:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 146 141 25 147 27 15 15 16
+             148:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 146 36 25 143 15 37 146 15 16 145
              149:             TypePointer Uniform 144(ubo)
              150:    149(ptr) Variable Uniform
              152:     10(int) Constant 8
-             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 26 148 25 143 15 37 26 150 152
+             151:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 26 148 25 143 15 37 26 150 152
              154:             TypePointer Uniform 121
              157:             TypeMatrix 20(fvec3) 3
-             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 21 16 123
+             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 21 16 123
              168:     86(int) Constant 4
              170:     86(int) Constant 2
              174:             TypePointer Function 17(fvec4)
              178:     10(int) Constant 63
-             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 177 19 25 178 15 68 18
+             176:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 177 19 25 178 15 68 18
              186:     10(int) Constant 64
-             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 185 19 25 186 15 68 18
+             184:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 185 19 25 186 15 68 18
              196:     10(int) Constant 66
-             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 195 21 25 196 15 68 18
+             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 195 21 25 196 15 68 18
              198:             TypePointer Uniform 17(fvec4)
              206:     86(int) Constant 6
              212:     86(int) Constant 5
              227:             TypePointer Output 17(fvec4)
 228(outStream.Pos):    227(ptr) Variable Output
              231:     10(int) Constant 75
-             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 230 19 25 231 15 37 230 228(outStream.Pos) 152
+             229:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 230 19 25 231 15 37 230 228(outStream.Pos) 152
              234:             TypePointer Output 10(int)
 235(outStream.ViewportIndex):    234(ptr) Variable Output
-             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 237 11 25 231 15 37 237 235(outStream.ViewportIndex) 152
+             236:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 237 11 25 231 15 37 237 235(outStream.ViewportIndex) 152
 240(outStream.PrimitiveID):    234(ptr) Variable Output
-             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 242 11 25 231 15 37 242 240(outStream.PrimitiveID) 152
+             241:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 242 11 25 231 15 37 242 240(outStream.PrimitiveID) 152
              245:             TypePointer Output 20(fvec3)
 246(outStream.Normal):    245(ptr) Variable Output
-             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 248 21 25 231 15 37 248 246(outStream.Normal) 152
+             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 248 21 25 231 15 37 248 246(outStream.Normal) 152
 251(outStream.Color):    245(ptr) Variable Output
-             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 253 21 25 231 15 37 253 251(outStream.Color) 152
+             252:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 253 21 25 231 15 37 253 251(outStream.Color) 152
 256(outStream.ViewVec):    245(ptr) Variable Output
-             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 258 21 25 231 15 37 258 256(outStream.ViewVec) 152
+             257:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 258 21 25 231 15 37 258 256(outStream.ViewVec) 152
 261(outStream.LightVec):    245(ptr) Variable Output
-             262:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 263 21 25 231 15 37 263 261(outStream.LightVec) 152
+             262:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 263 21 25 231 15 37 263 261(outStream.LightVec) 152
              269:             TypeArray 17(fvec4) 16
              270:             TypePointer Input 269
   271(input.Pos):    270(ptr) Variable Input
@@ -338,14 +338,14 @@
         175(pos):    174(ptr) Variable Function
    183(worldPos):    174(ptr) Variable Function
        193(lPos):    118(ptr) Variable Function
-              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 68
-              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 25 15 15 15 15
-              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 72 62(input) 75
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 76 63(outStream) 75
-              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 80 64(InvocationID) 75
-              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 83 65(PrimitiveID) 75
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 68 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 91 90(i) 75
+              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 68
+              71:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 25 15 15 15 15
+              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 72 62(input) 75
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 76 63(outStream) 75
+              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 64(InvocationID) 75
+              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 83 65(PrimitiveID) 75
+              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 68 66(@main(struct-VSOutput-vf4-vf3-vf31[3];struct-GSOutput-vf4-u1-u1-vf3-vf3-vf3-vf31;u1;u1;)
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 91 90(i) 75
                               Store 90(i) 95
                               Branch 96
               96:             Label
@@ -356,7 +356,7 @@
              106:   103(bool) SLessThan 101 102
                               BranchConditional 106 97 98
               97:               Label
-             111:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 107(output) 75
+             111:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 107(output) 75
                                 Store 107(output) 115
              116:     86(int)   Load 90(i)
              119:    118(ptr)   AccessChain 62(input) 116 117
@@ -379,19 +379,19 @@
              172:   20(fvec3)   Load 171
              173:    118(ptr)   AccessChain 107(output) 168
                                 Store 173 172
-             179:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 176 175(pos) 75
+             179:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 176 175(pos) 75
              180:     86(int)   Load 90(i)
              181:    174(ptr)   AccessChain 62(input) 180 95
              182:   17(fvec4)   Load 181
                                 Store 175(pos) 182
-             187:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 184 183(worldPos) 75
+             187:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 184 183(worldPos) 75
              188:   17(fvec4)   Load 175(pos)
              189:     10(int)   Load 64(InvocationID)
              190:    154(ptr)   AccessChain 150 95 117 189
              191:         121   Load 190
              192:   17(fvec4)   VectorTimesMatrix 188 191
                                 Store 183(worldPos) 192
-             197:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 194 193(lPos) 75
+             197:           3   ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 194 193(lPos) 75
              199:    198(ptr)   AccessChain 150 95 170
              200:   17(fvec4)   Load 199
              201:     10(int)   Load 64(InvocationID)
diff --git a/Test/baseResults/spv.debuginfo.hlsl.tesc.out b/Test/baseResults/spv.debuginfo.hlsl.tesc.out
index c373681..5d0ccc6 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.tesc.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.tesc.out
@@ -3,7 +3,7 @@
 
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 593
 
                               Capability Tessellation
@@ -172,129 +172,129 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:             TypeVector 7(float) 4
               18:     10(int) Constant 4
-              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 18
+              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 18
               20:             TypePointer Function 17(fvec4)
               21:             TypeFunction 7(float) 20(ptr) 20(ptr)
-              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 8 19 19
-              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 29
+              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 8 19 19
+              28:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 29
               31:     10(int) Constant 1
               32:     10(int) Constant 5
-              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 31 18 28 32
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 26 22 28 15 15 30 26 16 15
-              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 37 19 28 15 15 27 18 31
-              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 31 18 28 32
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 26 22 28 15 15 30 26 16 15
+              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 37 19 28 15 15 27 18 31
+              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               42:     10(int) Constant 2
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 41 19 28 15 15 27 18 42
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 41 19 28 15 15 27 18 42
               44:             TypeVector 7(float) 2
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 42
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 42
               46:             TypePointer Function 44(fvec2)
               47:             TypeBool
-              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
+              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
               50:             TypeFunction 47(bool) 20(ptr) 46(ptr)
-              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 49 19 45
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 55 51 28 15 15 30 55 16 15
-              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 61 19 28 15 15 56 18 31
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 64 45 28 15 15 56 18 42
+              51:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 49 19 45
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 55 51 28 15 15 30 55 16 15
+              60:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 61 19 28 15 15 56 18 31
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 64 45 28 15 15 56 18 42
               66:             TypeVector 7(float) 3
-              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
     68(VSOutput):             TypeStruct 17(fvec4) 66(fvec3) 44(fvec2)
               70:     10(int) Constant 44
               71:     10(int) Constant 13
-              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 61 19 28 70 71 15 15 16
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 61 19 28 70 71 15 15 16
               74:     10(int) Constant 45
               75:     10(int) Constant 35
-              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 73 67 28 74 75 15 15 16
+              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 73 67 28 74 75 15 15 16
               78:     10(int) Constant 46
               79:     10(int) Constant 31
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 77 45 28 78 79 15 15 16
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 81 31 28 15 15 30 81 15 16 69 72 76
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 77 45 28 78 79 15 15 16
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 81 31 28 15 15 30 81 15 16 69 72 76
               82:             TypeArray 68(VSOutput) 18
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 80 18
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 80 18
               84:             TypePointer Function 82
               85:             TypeArray 7(float) 18
-              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 8 18
+              86:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 18
               87:             TypeArray 7(float) 42
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 8 42
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 42
 89(ConstantsHSOutput):             TypeStruct 85 87
               92:     10(int) Constant 58
               93:     10(int) Constant 25
-              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 91 86 28 92 93 15 15 16
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 91 86 28 92 93 15 15 16
               96:     10(int) Constant 59
-              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 95 88 28 96 93 15 15 16
-              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 98 31 28 15 15 30 98 15 16 90 94
+              94:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 95 88 28 96 93 15 15 16
+              97:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 98 31 28 15 15 30 98 15 16 90 94
               99:             TypeFunction 89(ConstantsHSOutput) 84(ptr)
-             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 97 83
-             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 103 100 28 15 15 30 103 16 15
-             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 83 28 15 15 104 18 31
+             100:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 97 83
+             104:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 103 100 28 15 15 30 103 16 15
+             108:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 83 28 15 15 104 18 31
              111:             TypePointer Function 10(int)
    112(HSOutput):             TypeStruct 17(fvec4) 66(fvec3) 44(fvec2)
              114:     10(int) Constant 51
-             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 61 19 28 114 13 15 15 16
+             113:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 61 19 28 114 13 15 15 16
              116:     10(int) Constant 52
-             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 73 67 28 116 75 15 15 16
+             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 73 67 28 116 75 15 15 16
              118:     10(int) Constant 53
-             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 77 45 28 118 79 15 15 16
-             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 120 31 28 15 15 30 120 15 16 113 115 117
+             117:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 77 45 28 118 79 15 15 16
+             119:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 120 31 28 15 15 30 120 15 16 113 115 117
              121:             TypeFunction 112(HSOutput) 84(ptr) 111(ptr)
-             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 119 83 11
-             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 126 122 28 15 15 30 126 16 15
-             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 109 83 28 15 15 127 18 31
-             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 134 11 28 15 15 127 18 42
+             122:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 119 83 11
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 126 122 28 15 15 30 126 16 15
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 109 83 28 15 15 127 18 31
+             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 134 11 28 15 15 127 18 42
              140:     10(int) Constant 67
-             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 139 19 28 140 15 27 18
+             138:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 139 19 28 140 15 27 18
              142:    7(float) Constant 1056964608
              147:             TypePointer Function 7(float)
              151:     10(int) Constant 69
-             149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 150 8 28 151 15 27 18
+             149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 150 8 28 151 15 27 18
              156:    7(float) Constant 1073741824
              161:     10(int) Constant 72
-             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 160 19 28 161 15 27 18
+             159:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 160 19 28 161 15 27 18
              164:             TypeMatrix 17(fvec4) 4
              166:    47(bool) ConstantTrue
-             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 19 18 166
+             165:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 19 18 166
              167:             TypeArray 17(fvec4) 14
-             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 19 14
+             168:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 19 14
         169(UBO):             TypeStruct 164 164 17(fvec4) 167 7(float) 7(float) 44(fvec2) 7(float)
              172:     10(int) Constant 29
              173:     10(int) Constant 20
-             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 165 28 172 173 15 15 16
-             174:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 171 165 28 172 173 15 15 16
+             170:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 171 165 28 172 173 15 15 16
+             174:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 171 165 28 172 173 15 15 16
              177:     10(int) Constant 30
              178:     10(int) Constant 17
-             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 176 19 28 177 178 15 15 16
+             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 176 19 28 177 178 15 15 16
              181:     10(int) Constant 22
-             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 180 168 28 79 181 15 15 16
+             179:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 180 168 28 79 181 15 15 16
              184:     10(int) Constant 27
-             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 183 8 28 75 184 15 15 16
-             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 183 8 28 75 184 15 15 16
+             182:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
+             185:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
              188:     10(int) Constant 34
-             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 187 45 28 188 173 15 15 16
-             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 183 8 28 75 184 15 15 16
-             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 191 31 28 161 15 30 191 15 16 170 174 175 179 182 185 186 189
+             186:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 187 45 28 188 173 15 15 16
+             189:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 183 8 28 75 184 15 15 16
+             190:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 191 31 28 161 15 30 191 15 16 170 174 175 179 182 185 186 189
         192(ubo):             TypeStruct 169(UBO)
              195:     10(int) Constant 37
-             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 194 190 28 195 195 15 15 16
-             196:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 194 31 28 161 15 30 194 15 16 193
+             193:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 194 190 28 195 195 15 15 16
+             196:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 194 31 28 161 15 30 194 15 16 193
              197:             TypePointer Uniform 192(ubo)
              198:    197(ptr) Variable Uniform
              200:     10(int) Constant 8
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 29 196 28 161 15 30 29 198 200
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 29 196 28 161 15 30 29 198 200
              201:             TypeInt 32 1
-             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 202 13 18 15
+             203:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 202 13 18 15
              204:    201(int) Constant 0
              205:    201(int) Constant 1
              206:             TypePointer Uniform 164
              213:     10(int) Constant 75
-             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 212 19 28 213 15 27 18
+             211:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 212 19 28 213 15 27 18
              217:    7(float) Constant 0
              218:   66(fvec3) ConstantComposite 217 217 217
              230:     10(int) Constant 76
-             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 229 19 28 230 15 27 18
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 229 19 28 230 15 27 18
              252:    201(int) Constant 6
              253:             TypePointer Uniform 44(fvec2)
              275:    201(int) Constant 7
@@ -303,46 +303,46 @@
              284:    7(float) Constant 1065353216
              285:    7(float) Constant 1115684864
              293:     10(int) Constant 98
-             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 292 19 28 293 15 56 18
+             291:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 292 19 28 293 15 56 18
              296:             TypeImage 7(float) 2D sampled format:Unknown
              299:     10(int) Constant 99
-             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             297:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 298 15 28 299 15 30 300 301 16
+             301:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             297:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 298 15 28 299 15 30 300 301 16
              302:             TypePointer UniformConstant 296
 303(textureHeight):    302(ptr) Variable UniformConstant
-             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 305 297 28 299 15 30 305 303(textureHeight) 200
+             304:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 305 297 28 299 15 30 305 303(textureHeight) 200
              307:             TypeSampler
-             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 309 31 28 299 15 30 310 301 16
+             308:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 309 31 28 299 15 30 310 301 16
              311:             TypePointer UniformConstant 307
 312(samplerHeight):    311(ptr) Variable UniformConstant
-             313:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 314 308 28 299 15 30 314 312(samplerHeight) 200
+             313:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 314 308 28 299 15 30 314 312(samplerHeight) 200
              316:             TypeSampledImage 296
-             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 318 15 28 299 15 30 319 301 16
+             317:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 318 15 28 299 15 30 319 301 16
              324:    201(int) Constant 4
              332:             TypePointer Function 201(int)
              336:     10(int) Constant 102
-             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 335 203 28 336 15 56 18
-             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
+             334:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 335 203 28 336 15 56 18
+             344:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
              347:    201(int) Constant 3
              349:             TypePointer Uniform 17(fvec4)
              353:    7(float) Constant 1090519040
-             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
-             359:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
+             355:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             359:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
              360:    47(bool) ConstantFalse
-             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
+             364:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
              368:             TypePointer Function 89(ConstantsHSOutput)
              372:     10(int) Constant 113
-             370:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 371 97 28 372 15 104 18
+             370:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 371 97 28 372 15 104 18
              374:          85 ConstantComposite 217 217 217 217
              375:          87 ConstantComposite 217 217
              376:89(ConstantsHSOutput) ConstantComposite 374 375
              377:    201(int) Constant 2
-             385:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
-             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
-             399:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 48 13 42 15
+             385:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             386:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
+             399:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 48 13 42 15
              458:             TypePointer Function 112(HSOutput)
              461:     10(int) Constant 159
-             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 371 119 28 461 15 127 18
+             460:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 371 119 28 461 15 127 18
              463:   17(fvec4) ConstantComposite 217 217 217 217
              464:   44(fvec2) ConstantComposite 217 217
              465:112(HSOutput) ConstantComposite 463 218 464
@@ -502,30 +502,30 @@
          158(v0):     20(ptr) Variable Function
       210(clip0):     20(ptr) Variable Function
       227(clip1):     20(ptr) Variable Function
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 27
-              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 28 15 15 15 15
-              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 36 23(p0) 39
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 40 24(p1) 39
-             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 27 25(screenSpaceTessFactor(vf4;vf4;)
-             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 138 137(midPoint) 39
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 27
+              35:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
+              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 36 23(p0) 39
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 40 24(p1) 39
+             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 27 25(screenSpaceTessFactor(vf4;vf4;)
+             141:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 138 137(midPoint) 39
              143:   17(fvec4) Load 23(p0)
              144:   17(fvec4) Load 24(p1)
              145:   17(fvec4) FAdd 143 144
              146:   17(fvec4) VectorTimesScalar 145 142
                               Store 137(midPoint) 146
-             152:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 149 148(radius) 39
+             152:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 149 148(radius) 39
              153:   17(fvec4) Load 23(p0)
              154:   17(fvec4) Load 24(p1)
              155:    7(float) ExtInst 2(GLSL.std.450) 67(Distance) 153 154
              157:    7(float) FDiv 155 156
                               Store 148(radius) 157
-             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 159 158(v0) 39
+             162:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 159 158(v0) 39
              163:   17(fvec4) Load 137(midPoint)
              207:    206(ptr) AccessChain 198 204 205
              208:         164 Load 207
              209:   17(fvec4) VectorTimesMatrix 163 208
                               Store 158(v0) 209
-             214:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 211 210(clip0) 39
+             214:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 211 210(clip0) 39
              215:   17(fvec4) Load 158(v0)
              216:    7(float) Load 148(radius)
              219:    7(float) CompositeExtract 218 0
@@ -537,7 +537,7 @@
              225:         164 Load 224
              226:   17(fvec4) VectorTimesMatrix 223 225
                               Store 210(clip0) 226
-             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 228 227(clip1) 39
+             231:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 228 227(clip1) 39
              232:   17(fvec4) Load 158(v0)
              233:    7(float) Load 148(radius)
              234:    7(float) CompositeExtract 218 0
@@ -601,12 +601,12 @@
               57:             Label
         290(pos):     20(ptr) Variable Function
           333(i):    332(ptr) Variable Function
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 56
-              59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 28 15 15 15 15
-              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 60 52(Pos) 39
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 63 53(inUV) 39
-             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 56 54(frustumCheck(vf4;vf2;)
-             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 291 290(pos) 39
+              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 56
+              59:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
+              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 60 52(Pos) 39
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 63 53(inUV) 39
+             289:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 56 54(frustumCheck(vf4;vf2;)
+             294:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 291 290(pos) 39
              295:   17(fvec4) Load 52(Pos)
                               Store 290(pos) 295
              306:         296 Load 303(textureHeight)
@@ -623,7 +623,7 @@
              330:    7(float) FSub 329 327
              331:    147(ptr) AccessChain 290(pos) 31
                               Store 331 330
-             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 334 333(i) 39
+             337:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 334 333(i) 39
                               Store 333(i) 204
                               Branch 338
              338:             Label
@@ -669,11 +669,11 @@
       422(param):     20(ptr) Variable Function
       427(param):     20(ptr) Variable Function
       430(param):     20(ptr) Variable Function
-             106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 104
-             107:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 28 15 15 15 15
-             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 108 101(patch) 39
-             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 104 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
-             373:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 370 369(output) 39
+             106:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 104
+             107:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
+             110:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 108 101(patch) 39
+             367:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 104 102(ConstantsHS(struct-VSOutput-vf4-vf3-vf21[4];)
+             373:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 370 369(output) 39
                               Store 369(output) 376
              379:     20(ptr) AccessChain 101(patch) 204 204
              380:   17(fvec4) Load 379
@@ -782,12 +782,12 @@
 124(InvocationID):    111(ptr) FunctionParameter
              128:             Label
      459(output):    458(ptr) Variable Function
-             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 127
-             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 28 15 15 15 15
-             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 131 123(patch) 39
-             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 133 124(InvocationID) 39
-             457:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 127 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
-             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 460 459(output) 39
+             129:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 127
+             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 28 15 15 15 15
+             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 131 123(patch) 39
+             135:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 133 124(InvocationID) 39
+             457:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 127 125(@main(struct-VSOutput-vf4-vf3-vf21[4];u1;)
+             462:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 460 459(output) 39
                               Store 459(output) 465
              466:     10(int) Load 124(InvocationID)
              467:     20(ptr) AccessChain 123(patch) 466 204
diff --git a/Test/baseResults/spv.debuginfo.hlsl.tese.out b/Test/baseResults/spv.debuginfo.hlsl.tese.out
index 42c0f71..56e1086 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.tese.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.tese.out
@@ -1,7 +1,7 @@
 spv.debuginfo.hlsl.tese
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 434
 
                               Capability Tessellation
@@ -156,142 +156,142 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:     10(int) Constant 4
               18:             TypeArray 7(float) 17
-              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 8 17
+              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 17
               20:     10(int) Constant 2
               21:             TypeArray 7(float) 20
-              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 8 20
+              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 20
 23(ConstantsHSOutput):             TypeStruct 18 21
-              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 27
+              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 27
               28:     10(int) Constant 51
               29:     10(int) Constant 25
-              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 25 19 26 28 29 15 15 16
+              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 25 19 26 28 29 15 15 16
               32:     10(int) Constant 52
-              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 31 22 26 32 29 15 15 16
+              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 31 22 26 32 29 15 15 16
               35:     10(int) Constant 1
               37:     10(int) Constant 5
-              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 35 17 26 37
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 34 35 26 15 15 36 34 15 16 24 30
+              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 35 17 26 37
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 34 35 26 15 15 36 34 15 16 24 30
               38:             TypePointer Function 23(ConstantsHSOutput)
               39:             TypeVector 7(float) 2
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 20
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 20
               41:             TypePointer Function 39(fvec2)
               42:             TypeVector 7(float) 4
-              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 17
+              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 17
               44:             TypeVector 7(float) 3
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
     46(HSOutput):             TypeStruct 42(fvec4) 44(fvec3) 39(fvec2)
               49:     10(int) Constant 44
-              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 48 43 26 49 13 15 15 16
+              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 48 43 26 49 13 15 15 16
               52:     10(int) Constant 45
               53:     10(int) Constant 35
-              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 51 45 26 52 53 15 15 16
+              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 45 26 52 53 15 15 16
               56:     10(int) Constant 46
               57:     10(int) Constant 31
-              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 55 40 26 56 57 15 15 16
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 59 35 26 15 15 36 59 15 16 47 50 54
+              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 55 40 26 56 57 15 15 16
+              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 59 35 26 15 15 36 59 15 16 47 50 54
               60:             TypeArray 46(HSOutput) 17
-              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 58 17
+              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 58 17
     62(DSOutput):             TypeStruct 42(fvec4) 44(fvec3) 39(fvec2) 44(fvec3) 44(fvec3) 44(fvec3) 44(fvec3)
               64:     10(int) Constant 57
               65:     10(int) Constant 13
-              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 48 43 26 64 65 15 15 16
+              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 48 43 26 64 65 15 15 16
               68:     10(int) Constant 63
               69:     10(int) Constant 37
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 45 26 68 69 15 15 16
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
               71:     10(int) Constant 59
-              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 55 40 26 71 57 15 15 16
-              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 45 26 68 69 15 15 16
-              73:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 45 26 68 69 15 15 16
-              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 45 26 68 69 15 15 16
-              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 67 45 26 68 69 15 15 16
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 77 35 26 15 15 36 77 15 16 63 66 70 72 73 74 75
+              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 55 40 26 71 57 15 15 16
+              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
+              73:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
+              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
+              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 77 35 26 15 15 36 77 15 16 63 66 70 72 73 74 75
               78:             TypeFunction 62(DSOutput) 38(ptr) 41(ptr) 60
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 76 33 40 58
-              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 84 79 26 15 15 36 84 16 15
-              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 90 33 26 15 15 85 17 35
-              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
-              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 94 40 26 15 15 85 17 20
-              96:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 97 58 26 15 15 85 17 16
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 76 33 40 58
+              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 84 79 26 15 15 36 84 16 15
+              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 90 33 26 15 15 85 17 35
+              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
+              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 94 40 26 15 15 85 17 20
+              96:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 97 58 26 15 15 85 17 16
              100:             TypePointer Function 62(DSOutput)
              104:     10(int) Constant 70
-             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 103 76 26 104 15 85 17
+             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 103 76 26 104 15 85 17
              106:    7(float) Constant 0
              107:   42(fvec4) ConstantComposite 106 106 106 106
              108:   44(fvec3) ConstantComposite 106 106 106
              109:   39(fvec2) ConstantComposite 106 106
              110:62(DSOutput) ConstantComposite 107 108 109 108 108 108 108
              114:     10(int) Constant 71
-             112:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 113 40 26 114 15 85 17
+             112:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 113 40 26 114 15 85 17
              116:             TypeInt 32 1
-             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 117 13 17 15
+             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 117 13 17 15
              119:    116(int) Constant 0
              120:    116(int) Constant 2
              122:    116(int) Constant 1
              124:             TypePointer Function 7(float)
              132:     10(int) Constant 72
-             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 131 40 26 132 15 85 17
+             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 131 40 26 132 15 85 17
              134:    116(int) Constant 3
              148:             TypePointer Function 44(fvec3)
              152:     10(int) Constant 75
-             150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 151 45 26 152 15 85 17
+             150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 151 45 26 152 15 85 17
              163:     10(int) Constant 76
-             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 162 45 26 163 15 85 17
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 162 45 26 163 15 85 17
              178:             TypePointer Function 42(fvec4)
              182:     10(int) Constant 80
-             180:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 181 43 26 182 15 85 17
+             180:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 181 43 26 182 15 85 17
              193:     10(int) Constant 81
-             191:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 192 43 26 193 15 85 17
+             191:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 192 43 26 193 15 85 17
              204:     10(int) Constant 82
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 203 43 26 204 15 85 17
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 203 43 26 204 15 85 17
              212:             TypeImage 7(float) 2D sampled format:Unknown
              215:     10(int) Constant 84
-             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(DebugInfoNone)
-             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 214 15 26 215 15 36 216 217 16
+             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
+             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 214 15 26 215 15 36 216 217 16
              218:             TypePointer UniformConstant 212
 219(displacementMapTexture):    218(ptr) Variable UniformConstant
              222:     10(int) Constant 8
-             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 221 213 26 215 15 36 221 219(displacementMapTexture) 222
+             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 221 213 26 215 15 36 221 219(displacementMapTexture) 222
              224:             TypeSampler
-             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 226 35 26 215 15 36 227 217 16
+             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 35 26 215 15 36 227 217 16
              228:             TypePointer UniformConstant 224
 229(displacementMapSampler):    228(ptr) Variable UniformConstant
-             230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 231 225 26 215 15 36 231 229(displacementMapSampler) 222
+             230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 231 225 26 215 15 36 231 229(displacementMapSampler) 222
              233:             TypeSampledImage 212
-             234:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 235 15 26 215 15 36 236 217 16
+             234:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 235 15 26 215 15 36 236 217 16
              242:             TypeMatrix 42(fvec4) 4
              244:             TypeBool
              245:   244(bool) ConstantTrue
-             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 43 17 245
+             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 43 17 245
              246:             TypeArray 42(fvec4) 14
-             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(DebugTypeArray) 43 14
+             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 43 14
         248(UBO):             TypeStruct 242 242 42(fvec4) 246 7(float) 7(float) 39(fvec2) 7(float)
              251:     10(int) Constant 29
              252:     10(int) Constant 20
-             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 243 26 251 252 15 15 16
-             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 250 243 26 251 252 15 15 16
+             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 250 243 26 251 252 15 15 16
+             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 250 243 26 251 252 15 15 16
              256:     10(int) Constant 30
              257:     10(int) Constant 17
-             254:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 255 43 26 256 257 15 15 16
+             254:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 255 43 26 256 257 15 15 16
              260:     10(int) Constant 22
-             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 259 247 26 57 260 15 15 16
+             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 259 247 26 57 260 15 15 16
              263:     10(int) Constant 27
-             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 8 26 53 263 15 15 16
-             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 8 26 53 263 15 15 16
+             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
+             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
              267:     10(int) Constant 34
-             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 266 40 26 267 252 15 15 16
-             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 262 8 26 53 263 15 15 16
-             269:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 270 35 26 215 15 36 270 15 16 249 253 254 258 261 264 265 268
+             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 266 40 26 267 252 15 15 16
+             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
+             269:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 270 35 26 215 15 36 270 15 16 249 253 254 258 261 264 265 268
         271(ubo):             TypeStruct 248(UBO)
-             272:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 273 269 26 69 69 15 15 16
-             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 273 35 26 215 15 36 273 15 16 272
+             272:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 273 269 26 69 69 15 15 16
+             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 273 35 26 215 15 36 273 15 16 272
              275:             TypePointer Uniform 271(ubo)
              276:    275(ptr) Variable Uniform
-             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 27 274 26 215 15 36 27 276 222
+             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 27 274 26 215 15 36 27 276 222
              278:    116(int) Constant 4
              279:             TypePointer Uniform 7(float)
              288:             TypePointer Uniform 242
@@ -455,15 +455,15 @@
        179(pos1):    178(ptr) Variable Function
        190(pos2):    178(ptr) Variable Function
         201(pos):    178(ptr) Variable Function
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 85
-              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 26 15 15 15 15
-              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 89 80(input) 92
-              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 93 81(TessCoord) 92
-              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 96 82(patch) 92
-              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 85 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
-             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 102 101(output) 92
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 85
+              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 26 15 15 15 15
+              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 89 80(input) 92
+              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 93 81(TessCoord) 92
+              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 96 82(patch) 92
+              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 85 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
+             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 102 101(output) 92
                               Store 101(output) 110
-             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 112 111(uv1) 92
+             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 112 111(uv1) 92
              121:   39(fvec2) CompositeExtract 82(patch) 0 2
              123:   39(fvec2) CompositeExtract 82(patch) 1 2
              125:    124(ptr) AccessChain 81(TessCoord) 15
@@ -471,7 +471,7 @@
              127:   39(fvec2) CompositeConstruct 126 126
              128:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 121 123 127
                               Store 111(uv1) 128
-             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 130 129(uv2) 92
+             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 130 129(uv2) 92
              135:   39(fvec2) CompositeExtract 82(patch) 3 2
              136:   39(fvec2) CompositeExtract 82(patch) 2 2
              137:    124(ptr) AccessChain 81(TessCoord) 15
@@ -487,7 +487,7 @@
              146:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 141 142 145
              147:     41(ptr) AccessChain 101(output) 120
                               Store 147 146
-             153:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 150 149(n1) 92
+             153:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 150 149(n1) 92
              154:   44(fvec3) CompositeExtract 82(patch) 0 1
              155:   44(fvec3) CompositeExtract 82(patch) 1 1
              156:    124(ptr) AccessChain 81(TessCoord) 15
@@ -495,7 +495,7 @@
              158:   44(fvec3) CompositeConstruct 157 157 157
              159:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 154 155 158
                               Store 149(n1) 159
-             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 161 160(n2) 92
+             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 161 160(n2) 92
              165:   44(fvec3) CompositeExtract 82(patch) 3 1
              166:   44(fvec3) CompositeExtract 82(patch) 2 1
              167:    124(ptr) AccessChain 81(TessCoord) 15
@@ -511,7 +511,7 @@
              176:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 171 172 175
              177:    148(ptr) AccessChain 101(output) 122
                               Store 177 176
-             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 180 179(pos1) 92
+             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 180 179(pos1) 92
              184:   42(fvec4) CompositeExtract 82(patch) 0 0
              185:   42(fvec4) CompositeExtract 82(patch) 1 0
              186:    124(ptr) AccessChain 81(TessCoord) 15
@@ -519,7 +519,7 @@
              188:   42(fvec4) CompositeConstruct 187 187 187 187
              189:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 184 185 188
                               Store 179(pos1) 189
-             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 191 190(pos2) 92
+             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 191 190(pos2) 92
              195:   42(fvec4) CompositeExtract 82(patch) 3 0
              196:   42(fvec4) CompositeExtract 82(patch) 2 0
              197:    124(ptr) AccessChain 81(TessCoord) 15
@@ -527,7 +527,7 @@
              199:   42(fvec4) CompositeConstruct 198 198 198 198
              200:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 195 196 199
                               Store 190(pos2) 200
-             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 202 201(pos) 92
+             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 202 201(pos) 92
              206:   42(fvec4) Load 179(pos1)
              207:   42(fvec4) Load 190(pos2)
              208:    124(ptr) AccessChain 81(TessCoord) 35
diff --git a/Test/baseResults/spv.debuginfo.hlsl.vert.out b/Test/baseResults/spv.debuginfo.hlsl.vert.out
index 77c3fb2..742cc04 100644
--- a/Test/baseResults/spv.debuginfo.hlsl.vert.out
+++ b/Test/baseResults/spv.debuginfo.hlsl.vert.out
@@ -1,7 +1,7 @@
 spv.debuginfo.hlsl.vert
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 437
 
                               Capability Shader
@@ -130,61 +130,61 @@
               13:     10(int) Constant 32
               14:     10(int) Constant 6
               15:     10(int) Constant 0
-              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 12 13 14 15
+              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
               16:     10(int) Constant 3
-               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 9 13 16 15
+               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
               17:             TypeVector 7(float) 3
-              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 16
+              18:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
               19:             TypeVector 7(float) 2
               20:     10(int) Constant 2
-              21:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 20
+              21:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 20
               22:             TypeInt 32 1
               25:     10(int) Constant 4
-              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(DebugTypeBasic) 23 13 25 15
+              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 23 13 25 15
      26(VSInput):             TypeStruct 17(fvec3) 17(fvec3) 19(fvec2) 17(fvec3) 17(fvec3) 17(fvec3) 7(float) 22(int)
-              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(DebugSource) 0 30
+              29:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 30
               31:     10(int) Constant 35
               32:     10(int) Constant 40
-              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 28 18 29 31 32 15 15 16
-              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 28 18 29 31 32 15 15 16
+              27:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 28 18 29 31 32 15 15 16
+              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 28 18 29 31 32 15 15 16
               36:     10(int) Constant 30
               37:     10(int) Constant 31
-              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 35 21 29 36 37 15 15 16
-              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 28 18 29 31 32 15 15 16
-              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 28 18 29 31 32 15 15 16
-              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 28 18 29 31 32 15 15 16
+              34:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 35 21 29 36 37 15 15 16
+              38:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 28 18 29 31 32 15 15 16
+              39:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 28 18 29 31 32 15 15 16
+              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 28 18 29 31 32 15 15 16
               43:     10(int) Constant 36
               44:     10(int) Constant 41
-              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 42 8 29 43 44 15 15 16
+              41:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 42 8 29 43 44 15 15 16
               47:     10(int) Constant 37
               48:     10(int) Constant 42
-              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 46 24 29 47 48 15 15 16
+              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 46 24 29 47 48 15 15 16
               51:     10(int) Constant 1
               53:     10(int) Constant 5
-              52:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(DebugCompilationUnit) 51 25 29 53
-              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 50 51 29 15 15 52 50 15 16 27 33 34 38 39 40 41 45
+              52:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 51 25 29 53
+              49:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 50 51 29 15 15 52 50 15 16 27 33 34 38 39 40 41 45
               54:             TypePointer Function 26(VSInput)
               55:             TypeVector 7(float) 4
-              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(DebugTypeVector) 8 25
+              56:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 25
     57(VSOutput):             TypeStruct 55(fvec4) 17(fvec3) 17(fvec3) 17(fvec3) 17(fvec3) 17(fvec3)
               60:     10(int) Constant 53
               61:     10(int) Constant 13
-              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 59 56 29 60 61 15 15 16
+              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 59 56 29 60 61 15 15 16
               64:     10(int) Constant 58
-              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 63 18 29 64 47 15 15 16
-              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 63 18 29 64 47 15 15 16
-              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 63 18 29 64 47 15 15 16
-              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 63 18 29 64 47 15 15 16
-              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 63 18 29 64 47 15 15 16
-              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 70 51 29 15 15 52 70 15 16 58 62 65 66 67 68
+              62:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 63 18 29 64 47 15 15 16
+              65:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 63 18 29 64 47 15 15 16
+              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 63 18 29 64 47 15 15 16
+              67:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 63 18 29 64 47 15 15 16
+              68:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 63 18 29 64 47 15 15 16
+              69:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 70 51 29 15 15 52 70 15 16 58 62 65 66 67 68
               71:             TypeFunction 57(VSOutput) 54(ptr)
-              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(DebugTypeFunction) 16 69 49
-              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(DebugFunction) 75 72 29 15 15 52 75 16 15
-              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 81 49 29 15 15 76 25 51
-              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(DebugExpression)
+              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 69 49
+              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 75 72 29 15 15 52 75 16 15
+              80:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 81 49 29 15 15 76 25 51
+              83:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
               85:             TypePointer Function 57(VSOutput)
               89:     10(int) Constant 63
-              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 88 69 29 89 15 76 25
+              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 88 69 29 89 15 76 25
               91:    7(float) Constant 0
               92:   55(fvec4) ConstantComposite 91 91 91 91
               93:   17(fvec3) ConstantComposite 91 91 91
@@ -197,64 +197,64 @@
              105:             TypePointer Function 22(int)
              113:             TypePointer Function 7(float)
              117:     10(int) Constant 68
-             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 116 8 29 117 15 76 25
+             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 116 8 29 117 15 76 25
              119:     22(int) Constant 5
              122:             TypeMatrix 55(fvec4) 4
              124:             TypeBool
              125:   124(bool) ConstantTrue
-             123:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 56 25 125
+             123:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 56 25 125
         126(UBO):             TypeStruct 122 122 55(fvec4) 7(float) 7(float)
              129:     10(int) Constant 43
              130:     10(int) Constant 20
-             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 128 123 29 129 130 15 15 16
-             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 128 123 29 129 130 15 15 16
+             127:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 128 123 29 129 130 15 15 16
+             131:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 128 123 29 129 130 15 15 16
              134:     10(int) Constant 44
              135:     10(int) Constant 17
-             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 133 56 29 134 135 15 15 16
+             132:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 133 56 29 134 135 15 15 16
              138:     10(int) Constant 46
-             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 137 8 29 138 135 15 15 16
-             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 137 8 29 138 135 15 15 16
-             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 141 51 29 117 15 52 141 15 16 127 131 132 136 139
+             136:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 8 29 138 135 15 15 16
+             139:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 137 8 29 138 135 15 15 16
+             140:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 141 51 29 117 15 52 141 15 16 127 131 132 136 139
         142(ubo):             TypeStruct 126(UBO)
              145:     10(int) Constant 49
-             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(DebugTypeMember) 144 140 29 145 47 15 15 16
-             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(DebugTypeComposite) 144 51 29 117 15 52 144 15 16 143
+             143:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 144 140 29 145 47 15 15 16
+             146:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 144 51 29 117 15 52 144 15 16 143
              147:             TypePointer Uniform 142(ubo)
              148:    147(ptr) Variable Uniform
              150:     10(int) Constant 8
-             149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(DebugGlobalVariable) 30 146 29 117 15 52 30 148 150
+             149:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 30 146 29 117 15 52 30 148 150
              151:     22(int) Constant 0
              152:             TypePointer Uniform 7(float)
              160:     10(int) Constant 69
-             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 159 8 29 160 15 76 25
+             158:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 159 8 29 160 15 76 25
              168:             TypeMatrix 17(fvec3) 3
-             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108(DebugTypeMatrix) 18 16 125
+             169:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 18 16 125
              170:             TypePointer Function 168
              174:     10(int) Constant 71
-             172:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 173 169 29 174 15 76 25
+             172:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 173 169 29 174 15 76 25
              181:    7(float) Constant 1065353216
              201:     10(int) Constant 79
-             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 200 169 29 201 15 76 25
+             199:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 200 169 29 201 15 76 25
              227:     10(int) Constant 87
-             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 226 169 29 227 15 76 25
+             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 226 169 29 227 15 76 25
              241:     10(int) Constant 91
-             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 240 169 29 241 15 76 25
+             239:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 240 169 29 241 15 76 25
              250:     22(int) Constant 4
              261:             TypePointer Function 122
              265:     10(int) Constant 96
-             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 264 123 29 265 15 76 25
+             263:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 264 123 29 265 15 76 25
              271:             TypePointer Function 55(fvec4)
              273:     22(int) Constant 1
              274:   55(fvec4) ConstantComposite 91 181 91 91
              280:   55(fvec4) ConstantComposite 91 91 91 181
              285:     10(int) Constant 101
-             283:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 284 56 29 285 15 76 25
+             283:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 284 56 29 285 15 76 25
              298:     10(int) Constant 102
-             296:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 297 56 29 298 15 76 25
+             296:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 297 56 29 298 15 76 25
              302:     22(int) Constant 6
              316:             TypePointer Uniform 122
              356:     10(int) Constant 108
-             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(DebugLocalVariable) 355 18 29 356 15 76 25
+             354:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 355 18 29 356 15 76 25
              358:             TypePointer Uniform 55(fvec4)
              385:             TypePointer Input 17(fvec3)
   386(input.Pos):    385(ptr) Variable Input
@@ -343,11 +343,11 @@
      282(locPos):    271(ptr) Variable Function
         295(pos):    271(ptr) Variable Function
        353(lPos):     97(ptr) Variable Function
-              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 76
-              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 29 15 15 15 15
-              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 80 73(input) 83
-              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101(DebugFunctionDefinition) 76 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;)
-              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 87 86(output) 83
+              78:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 76
+              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 29 15 15 15 15
+              82:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 80 73(input) 83
+              84:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 76 74(@main(struct-VSInput-vf3-vf3-vf2-vf3-vf3-vf3-f1-i11;)
+              90:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 87 86(output) 83
                               Store 86(output) 94
               98:     97(ptr) AccessChain 73(input) 96
               99:   17(fvec3) Load 98
@@ -363,7 +363,7 @@
              111:   17(fvec3) CompositeConstruct 109 110 108
              112:     97(ptr) AccessChain 86(output) 96
                               Store 112 111
-             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 115 114(s) 83
+             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 115 114(s) 83
              120:    113(ptr) AccessChain 73(input) 119 15
              121:    7(float) Load 120
              153:    152(ptr) AccessChain 148 151 96
@@ -371,7 +371,7 @@
              155:    7(float) FAdd 121 154
              156:    7(float) ExtInst 2(GLSL.std.450) 13(Sin) 155
                               Store 114(s) 156
-             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 158 157(c) 83
+             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 158 157(c) 83
              162:    113(ptr) AccessChain 73(input) 119 15
              163:    7(float) Load 162
              164:    152(ptr) AccessChain 148 151 96
@@ -379,7 +379,7 @@
              166:    7(float) FAdd 163 165
              167:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 166
                               Store 157(c) 167
-             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 172 171(mx) 83
+             175:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 172 171(mx) 83
              176:    7(float) Load 157(c)
              177:    7(float) Load 114(s)
              178:    7(float) FNegate 177
@@ -404,7 +404,7 @@
              196:    7(float) FAdd 193 195
              197:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 196
                               Store 157(c) 197
-             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 199 198(my) 83
+             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 199 198(my) 83
              203:    7(float) Load 157(c)
              204:    7(float) Load 114(s)
              205:    7(float) FNegate 204
@@ -429,7 +429,7 @@
              222:    7(float) FAdd 219 221
              223:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 222
                               Store 157(c) 223
-             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 225 224(mz) 83
+             228:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 225 224(mz) 83
              229:    7(float) Load 157(c)
              230:    7(float) Load 114(s)
              231:    7(float) FNegate 230
@@ -440,7 +440,7 @@
              236:   17(fvec3) CompositeConstruct 91 232 233
              237:         168 CompositeConstruct 234 235 236
                               Store 224(mz) 237
-             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 239 238(rotMat) 83
+             242:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 239 238(rotMat) 83
              243:         168 Load 171(mx)
              244:         168 Load 198(my)
              245:         168 MatrixTimesMatrix 243 244
@@ -461,7 +461,7 @@
              259:    7(float) FAdd 256 258
              260:    7(float) ExtInst 2(GLSL.std.450) 14(Cos) 259
                               Store 157(c) 260
-             266:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 263 262(gRotMat) 83
+             266:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 263 262(gRotMat) 83
              267:    7(float) Load 157(c)
              268:    7(float) Load 114(s)
              269:    7(float) FNegate 268
@@ -477,7 +477,7 @@
                               Store 279 278
              281:    271(ptr) AccessChain 262(gRotMat) 96
                               Store 281 280
-             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 283 282(locPos) 83
+             286:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 283 282(locPos) 83
              287:     97(ptr) AccessChain 73(input) 151
              288:   17(fvec3) Load 287
              289:         168 Load 238(rotMat)
@@ -487,7 +487,7 @@
              293:    7(float) CompositeExtract 290 2
              294:   55(fvec4) CompositeConstruct 291 292 293 181
                               Store 282(locPos) 294
-             299:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 296 295(pos) 83
+             299:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 296 295(pos) 83
              300:   55(fvec4) Load 282(locPos)
              301:   17(fvec3) VectorShuffle 300 300 0 1 2
              303:    113(ptr) AccessChain 73(input) 302
@@ -543,7 +543,7 @@
              351:         122 Load 350
              352:   55(fvec4) VectorTimesMatrix 349 351
                               Store 295(pos) 352
-             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(DebugDeclare) 354 353(lPos) 83
+             357:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 354 353(lPos) 83
              359:    358(ptr) AccessChain 148 151 95
              360:   55(fvec4) Load 359
              361:   17(fvec3) VectorShuffle 360 360 0 1 2
diff --git a/Test/baseResults/spv.deepRvalue.frag.out b/Test/baseResults/spv.deepRvalue.frag.out
index efb9d2e..d46159d 100644
--- a/Test/baseResults/spv.deepRvalue.frag.out
+++ b/Test/baseResults/spv.deepRvalue.frag.out
@@ -1,6 +1,6 @@
 spv.deepRvalue.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 152
 
                               Capability Shader
diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out
index 4d69949..50c4770 100644
--- a/Test/baseResults/spv.depthOut.frag.out
+++ b/Test/baseResults/spv.depthOut.frag.out
@@ -1,6 +1,6 @@
 spv.depthOut.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.depthUnchanged.frag.out b/Test/baseResults/spv.depthUnchanged.frag.out
index 34785c0..0074007 100644
--- a/Test/baseResults/spv.depthUnchanged.frag.out
+++ b/Test/baseResults/spv.depthUnchanged.frag.out
@@ -1,6 +1,6 @@
 spv.depthUnchanged.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.deviceGroup.frag.out b/Test/baseResults/spv.deviceGroup.frag.out
index 68285a1..57c443c 100644
--- a/Test/baseResults/spv.deviceGroup.frag.out
+++ b/Test/baseResults/spv.deviceGroup.frag.out
@@ -1,6 +1,6 @@
 spv.deviceGroup.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out
index bddf6f9..93c2de8 100644
--- a/Test/baseResults/spv.discard-dce.frag.out
+++ b/Test/baseResults/spv.discard-dce.frag.out
@@ -1,6 +1,6 @@
 spv.discard-dce.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out
index c0196c2..c240c44 100644
--- a/Test/baseResults/spv.do-simple.vert.out
+++ b/Test/baseResults/spv.do-simple.vert.out
@@ -1,6 +1,6 @@
 spv.do-simple.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out
index 26e67fc..081dc62 100644
--- a/Test/baseResults/spv.do-while-continue-break.vert.out
+++ b/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -1,6 +1,6 @@
 spv.do-while-continue-break.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out
index 145776c..a57b9b2 100644
--- a/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/Test/baseResults/spv.doWhileLoop.frag.out
@@ -1,6 +1,6 @@
 spv.doWhileLoop.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out
index 3a5eef8..800464c 100644
--- a/Test/baseResults/spv.double.comp.out
+++ b/Test/baseResults/spv.double.comp.out
@@ -1,6 +1,6 @@
 spv.double.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.drawParams.vert.out b/Test/baseResults/spv.drawParams.vert.out
index 23ba8a7..a8dab45 100644
--- a/Test/baseResults/spv.drawParams.vert.out
+++ b/Test/baseResults/spv.drawParams.vert.out
@@ -1,6 +1,6 @@
 spv.drawParams.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out
index 273b775..8f983cb 100644
--- a/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -1,6 +1,6 @@
 spv.earlyReturnDiscard.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 110
 
                               Capability Shader
diff --git a/Test/baseResults/spv.explicittypes.frag.out b/Test/baseResults/spv.explicittypes.frag.out
index 65d3b1f..3382872 100644
--- a/Test/baseResults/spv.explicittypes.frag.out
+++ b/Test/baseResults/spv.explicittypes.frag.out
@@ -1,6 +1,6 @@
 spv.explicittypes.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 576
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ext.AccelDecl.frag.out b/Test/baseResults/spv.ext.AccelDecl.frag.out
index e329ee9..11d4560 100644
--- a/Test/baseResults/spv.ext.AccelDecl.frag.out
+++ b/Test/baseResults/spv.ext.AccelDecl.frag.out
@@ -1,6 +1,6 @@
 spv.ext.AccelDecl.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ext.AnyHitShader.rahit.out b/Test/baseResults/spv.ext.AnyHitShader.rahit.out
index 1d1d14a..0a6db64 100644
--- a/Test/baseResults/spv.ext.AnyHitShader.rahit.out
+++ b/Test/baseResults/spv.ext.AnyHitShader.rahit.out
@@ -1,6 +1,6 @@
 spv.ext.AnyHitShader.rahit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 108
 
                               Capability GroupNonUniform
diff --git a/Test/baseResults/spv.ext.ClosestHitShader.rchit.out b/Test/baseResults/spv.ext.ClosestHitShader.rchit.out
index 73a2381..4a7178e 100644
--- a/Test/baseResults/spv.ext.ClosestHitShader.rchit.out
+++ b/Test/baseResults/spv.ext.ClosestHitShader.rchit.out
@@ -1,6 +1,6 @@
 spv.ext.ClosestHitShader.rchit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 102
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out b/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out
index e5b62d7..24ab4f4 100644
--- a/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out
+++ b/Test/baseResults/spv.ext.ClosestHitShader_Subgroup.rchit.out
@@ -1,6 +1,6 @@
 spv.ext.ClosestHitShader_Subgroup.rchit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.IntersectShader.rint.out b/Test/baseResults/spv.ext.IntersectShader.rint.out
index fad466b..dcceea4 100644
--- a/Test/baseResults/spv.ext.IntersectShader.rint.out
+++ b/Test/baseResults/spv.ext.IntersectShader.rint.out
@@ -1,6 +1,6 @@
 spv.ext.IntersectShader.rint
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.MissShader.rmiss.out b/Test/baseResults/spv.ext.MissShader.rmiss.out
index 246eefa..e4a5b88 100644
--- a/Test/baseResults/spv.ext.MissShader.rmiss.out
+++ b/Test/baseResults/spv.ext.MissShader.rmiss.out
@@ -1,6 +1,6 @@
 spv.ext.MissShader.rmiss
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 94
 
                               Capability MinLod
diff --git a/Test/baseResults/spv.ext.RayCallable.rcall.out b/Test/baseResults/spv.ext.RayCallable.rcall.out
index 9e6cef1..50e7fd8 100644
--- a/Test/baseResults/spv.ext.RayCallable.rcall.out
+++ b/Test/baseResults/spv.ext.RayCallable.rcall.out
@@ -1,6 +1,6 @@
 spv.ext.RayCallable.rcall
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.RayConstants.rgen.out b/Test/baseResults/spv.ext.RayConstants.rgen.out
index 9cd294a..6ef9dd4 100644
--- a/Test/baseResults/spv.ext.RayConstants.rgen.out
+++ b/Test/baseResults/spv.ext.RayConstants.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayConstants.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out b/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out
index 31a8bda..88e3c00 100644
--- a/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenSBTlayout.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenSBTlayout.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out b/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out
index f0302f7..ce5c306 100644
--- a/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenSBTlayout140.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenSBTlayout140.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out b/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out
index e83dd42..7462abd 100644
--- a/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenSBTlayout430.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenSBTlayout430.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out b/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out
index a24b64c..3573455 100644
--- a/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenSBTlayoutscalar.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenSBTlayoutscalar.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.RayGenShader.rgen.out b/Test/baseResults/spv.ext.RayGenShader.rgen.out
index b872d9e..5a34fc7 100644
--- a/Test/baseResults/spv.ext.RayGenShader.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShader.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenShader.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability RayTraversalPrimitiveCullingKHR
diff --git a/Test/baseResults/spv.ext.RayGenShader11.rgen.out b/Test/baseResults/spv.ext.RayGenShader11.rgen.out
index d79f4f3..b31ebd9 100644
--- a/Test/baseResults/spv.ext.RayGenShader11.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShader11.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenShader11.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out b/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
index 7e351d7..08f72b2 100644
--- a/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
+++ b/Test/baseResults/spv.ext.RayGenShaderArray.rgen.out
@@ -1,6 +1,6 @@
 spv.ext.RayGenShaderArray.rgen
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 117
 
                               Capability Int64
diff --git a/Test/baseResults/spv.ext.RayQueryDecl.frag.out b/Test/baseResults/spv.ext.RayQueryDecl.frag.out
index 2eb1421..97681e9 100644
--- a/Test/baseResults/spv.ext.RayQueryDecl.frag.out
+++ b/Test/baseResults/spv.ext.RayQueryDecl.frag.out
@@ -1,6 +1,6 @@
 spv.ext.RayQueryDecl.frag
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ext.World3x4.rahit.out b/Test/baseResults/spv.ext.World3x4.rahit.out
index 92ad18f..8c60912 100644
--- a/Test/baseResults/spv.ext.World3x4.rahit.out
+++ b/Test/baseResults/spv.ext.World3x4.rahit.out
@@ -1,6 +1,6 @@
 spv.ext.World3x4.rahit
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 90
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out b/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
index 4db6112..ee9c603 100644
--- a/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderBuiltins.mesh.out
@@ -1,7 +1,7 @@
 spv.ext.meshShaderBuiltins.mesh
 // Module Version 10400
-// Generated by (magic number): 8000b
-// Id's are bound by 158
+// Generated by (magic number): 8000a
+// Id's are bound by 159
 
                               Capability ClipDistance
                               Capability CullDistance
@@ -13,7 +13,7 @@
                               Extension  "SPV_KHR_fragment_shading_rate"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint MeshEXT 4  "main" 13 19 24 41 93 134 152 155
+                              EntryPoint MeshEXT 4  "main" 13 19 24 41 93 135 153 156
                               ExecutionMode 4 LocalSize 32 1 1
                               ExecutionMode 4 OutputVertices 81
                               ExecutionMode 4 OutputPrimitivesNV 32
@@ -45,11 +45,11 @@
                               MemberName 90(gl_MeshPerPrimitiveEXT) 3  "gl_CullPrimitiveEXT"
                               MemberName 90(gl_MeshPerPrimitiveEXT) 4  "gl_PrimitiveShadingRateEXT"
                               Name 93  "gl_MeshPrimitivesEXT"
-                              Name 134  "gl_PrimitiveTriangleIndicesEXT"
-                              Name 150  "id"
-                              Name 152  "gl_DrawIDARB"
-                              Name 154  "viewIdx"
-                              Name 155  "gl_ViewIndex"
+                              Name 135  "gl_PrimitiveTriangleIndicesEXT"
+                              Name 151  "id"
+                              Name 153  "gl_DrawIDARB"
+                              Name 155  "viewIdx"
+                              Name 156  "gl_ViewIndex"
                               Decorate 13(gl_LocalInvocationID) BuiltIn LocalInvocationId
                               Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
                               Decorate 24(gl_NumWorkGroups) BuiltIn NumWorkgroups
@@ -69,10 +69,10 @@
                               MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 PerPrimitiveNV
                               MemberDecorate 90(gl_MeshPerPrimitiveEXT) 4 BuiltIn PrimitiveShadingRateKHR
                               Decorate 90(gl_MeshPerPrimitiveEXT) Block
-                              Decorate 134(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
-                              Decorate 152(gl_DrawIDARB) BuiltIn DrawIndex
-                              Decorate 155(gl_ViewIndex) BuiltIn ViewIndex
-                              Decorate 157 BuiltIn WorkgroupSize
+                              Decorate 135(gl_PrimitiveTriangleIndicesEXT) BuiltIn PrimitiveTriangleIndicesEXT
+                              Decorate 153(gl_DrawIDARB) BuiltIn DrawIndex
+                              Decorate 156(gl_ViewIndex) BuiltIn ViewIndex
+                              Decorate 158 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                8:             TypeInt 32 0
@@ -123,18 +123,19 @@
              102:     43(int) Constant 8
              105:    89(bool) ConstantFalse
              106:             TypePointer Output 89(bool)
-             132:             TypeArray 11(ivec3) 29
-             133:             TypePointer Output 132
-134(gl_PrimitiveTriangleIndicesEXT):    133(ptr) Variable Output
-             135:      8(int) Constant 257
-             136:   11(ivec3) ConstantComposite 135 135 135
-             137:             TypePointer Output 11(ivec3)
-             141:   11(ivec3) ConstantComposite 64 64 64
-             149:             TypePointer Function 43(int)
-             151:             TypePointer Input 43(int)
-152(gl_DrawIDARB):    151(ptr) Variable Input
-155(gl_ViewIndex):    151(ptr) Variable Input
-             157:   11(ivec3) ConstantComposite 29 62 62
+             132:      8(int) Constant 96
+             133:             TypeArray 11(ivec3) 132
+             134:             TypePointer Output 133
+135(gl_PrimitiveTriangleIndicesEXT):    134(ptr) Variable Output
+             136:      8(int) Constant 257
+             137:   11(ivec3) ConstantComposite 136 136 136
+             138:             TypePointer Output 11(ivec3)
+             142:   11(ivec3) ConstantComposite 64 64 64
+             150:             TypePointer Function 43(int)
+             152:             TypePointer Input 43(int)
+153(gl_DrawIDARB):    152(ptr) Variable Input
+156(gl_ViewIndex):    152(ptr) Variable Input
+             158:   11(ivec3) ConstantComposite 29 62 62
          4(main):           2 Function None 3
                5:             Label
          10(iid):      9(ptr) Variable Function
@@ -243,30 +244,30 @@
                               Store 131 130
                               MemoryBarrier 62 63
                               ControlBarrier 64 64 63
-             138:    137(ptr) AccessChain 134(gl_PrimitiveTriangleIndicesEXT) 44
-                              Store 138 136
-             139:      8(int) Load 28(primitiveCount)
-             140:      8(int) ISub 139 62
-             142:    137(ptr) AccessChain 134(gl_PrimitiveTriangleIndicesEXT) 140
-                              Store 142 141
-             143:      8(int) Load 18(gid)
+             139:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 44
+                              Store 139 137
+             140:      8(int) Load 28(primitiveCount)
+             141:      8(int) ISub 140 62
+             143:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 141
+                              Store 143 142
              144:      8(int) Load 18(gid)
-             145:      8(int) ISub 144 62
-             146:    137(ptr) AccessChain 134(gl_PrimitiveTriangleIndicesEXT) 145
-             147:   11(ivec3) Load 146
-             148:    137(ptr) AccessChain 134(gl_PrimitiveTriangleIndicesEXT) 143
-                              Store 148 147
+             145:      8(int) Load 18(gid)
+             146:      8(int) ISub 145 62
+             147:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 146
+             148:   11(ivec3) Load 147
+             149:    138(ptr) AccessChain 135(gl_PrimitiveTriangleIndicesEXT) 144
+                              Store 149 148
                               MemoryBarrier 62 63
                               ControlBarrier 64 64 63
                               Return
                               FunctionEnd
 6(testAdditionalBuiltins():           2 Function None 3
                7:             Label
-         150(id):    149(ptr) Variable Function
-    154(viewIdx):    149(ptr) Variable Function
-             153:     43(int) Load 152(gl_DrawIDARB)
-                              Store 150(id) 153
-             156:     43(int) Load 155(gl_ViewIndex)
-                              Store 154(viewIdx) 156
+         151(id):    150(ptr) Variable Function
+    155(viewIdx):    150(ptr) Variable Function
+             154:     43(int) Load 153(gl_DrawIDARB)
+                              Store 151(id) 154
+             157:     43(int) Load 156(gl_ViewIndex)
+                              Store 155(viewIdx) 157
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out b/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
index a331a47..7f2bdf8 100644
--- a/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderRedeclBuiltins.mesh.out
@@ -1,6 +1,6 @@
 spv.ext.meshShaderRedeclBuiltins.mesh
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 128
 
                               Capability ClipDistance
diff --git a/Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out b/Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out
index b206177..79b2c65 100644
--- a/Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderTaskMem.mesh.out
@@ -1,6 +1,6 @@
 spv.ext.meshShaderTaskMem.mesh
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability MeshShadingEXT
diff --git a/Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out
index dc347aa..d9d74ab 100644
--- a/Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out
+++ b/Test/baseResults/spv.ext.meshShaderUserDefined.mesh.out
@@ -1,6 +1,6 @@
 spv.ext.meshShaderUserDefined.mesh
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 141
 
                               Capability MeshShadingEXT
diff --git a/Test/baseResults/spv.ext.meshTaskShader.task.out b/Test/baseResults/spv.ext.meshTaskShader.task.out
index 41a81d0..fb769f0 100644
--- a/Test/baseResults/spv.ext.meshTaskShader.task.out
+++ b/Test/baseResults/spv.ext.meshTaskShader.task.out
@@ -1,6 +1,6 @@
 spv.ext.meshTaskShader.task
 // Module Version 10400
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 103
 
                               Capability StorageImageWriteWithoutFormat
diff --git a/Test/baseResults/spv.extPostDepthCoverage.frag.out b/Test/baseResults/spv.extPostDepthCoverage.frag.out
index 7e4c6f5..cc96fb4 100644
--- a/Test/baseResults/spv.extPostDepthCoverage.frag.out
+++ b/Test/baseResults/spv.extPostDepthCoverage.frag.out
@@ -1,6 +1,6 @@
 spv.extPostDepthCoverage.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 6
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out
index 2cce815..8c33a66 100644
--- a/Test/baseResults/spv.float16.frag.out
+++ b/Test/baseResults/spv.float16.frag.out
@@ -1,7 +1,7 @@
 spv.float16.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 542
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float16Fetch.frag.out b/Test/baseResults/spv.float16Fetch.frag.out
index 17eb5b3..da4aa4d 100644
--- a/Test/baseResults/spv.float16Fetch.frag.out
+++ b/Test/baseResults/spv.float16Fetch.frag.out
@@ -1,7 +1,7 @@
 spv.float16Fetch.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 5979
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float16NoRelaxed.vert.out b/Test/baseResults/spv.float16NoRelaxed.vert.out
index 9e821ab..8872b46 100644
--- a/Test/baseResults/spv.float16NoRelaxed.vert.out
+++ b/Test/baseResults/spv.float16NoRelaxed.vert.out
@@ -1,6 +1,6 @@
 spv.float16NoRelaxed.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float16convertonlyarith.comp.out b/Test/baseResults/spv.float16convertonlyarith.comp.out
index 81d1c60..1666f79 100644
--- a/Test/baseResults/spv.float16convertonlyarith.comp.out
+++ b/Test/baseResults/spv.float16convertonlyarith.comp.out
@@ -1,6 +1,6 @@
 spv.float16convertonlyarith.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float16convertonlystorage.comp.out b/Test/baseResults/spv.float16convertonlystorage.comp.out
index be15f43..8eb42f6 100644
--- a/Test/baseResults/spv.float16convertonlystorage.comp.out
+++ b/Test/baseResults/spv.float16convertonlystorage.comp.out
@@ -1,6 +1,6 @@
 spv.float16convertonlystorage.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float32.frag.out b/Test/baseResults/spv.float32.frag.out
index d2cc609..2ffa231 100644
--- a/Test/baseResults/spv.float32.frag.out
+++ b/Test/baseResults/spv.float32.frag.out
@@ -1,6 +1,6 @@
 spv.float32.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 541
 
                               Capability Shader
diff --git a/Test/baseResults/spv.float64.frag.out b/Test/baseResults/spv.float64.frag.out
index 68e8f1c..cd5f80d 100644
--- a/Test/baseResults/spv.float64.frag.out
+++ b/Test/baseResults/spv.float64.frag.out
@@ -1,7 +1,7 @@
 spv.float64.frag
 Validation failed
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 485
 
                               Capability Shader
diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out
index 62f6ad7..efbe63e 100644
--- a/Test/baseResults/spv.flowControl.frag.out
+++ b/Test/baseResults/spv.flowControl.frag.out
@@ -1,6 +1,6 @@
 spv.flowControl.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/spv.for-complex-condition.vert.out b/Test/baseResults/spv.for-complex-condition.vert.out
index 16b23a0..ca971fd 100644
--- a/Test/baseResults/spv.for-complex-condition.vert.out
+++ b/Test/baseResults/spv.for-complex-condition.vert.out
@@ -1,6 +1,6 @@
 spv.for-complex-condition.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out
index 10ab24e..4ba1cb9 100644
--- a/Test/baseResults/spv.for-continue-break.vert.out
+++ b/Test/baseResults/spv.for-continue-break.vert.out
@@ -1,6 +1,6 @@
 spv.for-continue-break.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/spv.for-nobody.vert.out b/Test/baseResults/spv.for-nobody.vert.out
index 7a0b6de..b965a58 100644
--- a/Test/baseResults/spv.for-nobody.vert.out
+++ b/Test/baseResults/spv.for-nobody.vert.out
@@ -1,6 +1,6 @@
 spv.for-nobody.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/spv.for-notest.vert.out b/Test/baseResults/spv.for-notest.vert.out
index b08c6a1..d3e9603 100644
--- a/Test/baseResults/spv.for-notest.vert.out
+++ b/Test/baseResults/spv.for-notest.vert.out
@@ -1,6 +1,6 @@
 spv.for-notest.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out
index 92f3083..c4de996 100644
--- a/Test/baseResults/spv.for-simple.vert.out
+++ b/Test/baseResults/spv.for-simple.vert.out
@@ -1,6 +1,6 @@
 spv.for-simple.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index 2a35961..3a36667 100644
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -1,6 +1,6 @@
 spv.forLoop.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 143
 
                               Capability Shader
diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out
index 77f3941..f166286 100644
--- a/Test/baseResults/spv.forwardFun.frag.out
+++ b/Test/baseResults/spv.forwardFun.frag.out
@@ -1,6 +1,6 @@
 spv.forwardFun.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentDensity-es.frag.out b/Test/baseResults/spv.fragmentDensity-es.frag.out
index fb1407e..253ce2e 100644
--- a/Test/baseResults/spv.fragmentDensity-es.frag.out
+++ b/Test/baseResults/spv.fragmentDensity-es.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentDensity-es.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentDensity.frag.out b/Test/baseResults/spv.fragmentDensity.frag.out
index 43261cd..4c831f2 100644
--- a/Test/baseResults/spv.fragmentDensity.frag.out
+++ b/Test/baseResults/spv.fragmentDensity.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentDensity.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentShaderBarycentric.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
index 29b290b..ef800bd 100644
--- a/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
+++ b/Test/baseResults/spv.fragmentShaderBarycentric.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentShaderBarycentric.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
index 18f0ca3..23926cd 100644
--- a/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
+++ b/Test/baseResults/spv.fragmentShaderBarycentric2.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentShaderBarycentric2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentShaderBarycentric3.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric3.frag.out
index 60badf6..7fe21b3 100644
--- a/Test/baseResults/spv.fragmentShaderBarycentric3.frag.out
+++ b/Test/baseResults/spv.fragmentShaderBarycentric3.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentShaderBarycentric3.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fragmentShaderBarycentric4.frag.out b/Test/baseResults/spv.fragmentShaderBarycentric4.frag.out
index fc0e576..9218646 100644
--- a/Test/baseResults/spv.fragmentShaderBarycentric4.frag.out
+++ b/Test/baseResults/spv.fragmentShaderBarycentric4.frag.out
@@ -1,6 +1,6 @@
 spv.fragmentShaderBarycentric4.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fsi.frag.out b/Test/baseResults/spv.fsi.frag.out
index 1b5fbf4..3e06aed 100644
--- a/Test/baseResults/spv.fsi.frag.out
+++ b/Test/baseResults/spv.fsi.frag.out
@@ -1,6 +1,6 @@
 spv.fsi.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.fullyCovered.frag.out b/Test/baseResults/spv.fullyCovered.frag.out
index cd730a4..ae7b426 100644
--- a/Test/baseResults/spv.fullyCovered.frag.out
+++ b/Test/baseResults/spv.fullyCovered.frag.out
@@ -1,6 +1,6 @@
 spv.fullyCovered.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.funcall.array.frag.out b/Test/baseResults/spv.funcall.array.frag.out
index b4e2bfb..616ba16 100644
--- a/Test/baseResults/spv.funcall.array.frag.out
+++ b/Test/baseResults/spv.funcall.array.frag.out
@@ -1,6 +1,6 @@
 spv.funcall.array.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out
index 52d167c..58b0461 100644
--- a/Test/baseResults/spv.functionCall.frag.out
+++ b/Test/baseResults/spv.functionCall.frag.out
@@ -4,7 +4,7 @@
 WARNING: 0:5: varying deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 76
 
                               Capability Shader
diff --git a/Test/baseResults/spv.functionNestedOpaque.vert.out b/Test/baseResults/spv.functionNestedOpaque.vert.out
index 5878760..96a64aa 100644
--- a/Test/baseResults/spv.functionNestedOpaque.vert.out
+++ b/Test/baseResults/spv.functionNestedOpaque.vert.out
@@ -1,7 +1,7 @@
 spv.functionNestedOpaque.vert
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/spv.functionParameterTypes.frag.out b/Test/baseResults/spv.functionParameterTypes.frag.out
index 19f5429..65a33da 100644
--- a/Test/baseResults/spv.functionParameterTypes.frag.out
+++ b/Test/baseResults/spv.functionParameterTypes.frag.out
@@ -1,6 +1,6 @@
 spv.functionParameterTypes.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 34
 
                               Capability Shader
diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out
index dc8520d..f12aae0 100644
--- a/Test/baseResults/spv.functionSemantics.frag.out
+++ b/Test/baseResults/spv.functionSemantics.frag.out
@@ -1,6 +1,6 @@
 spv.functionSemantics.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 156
 
                               Capability Shader
diff --git a/Test/baseResults/spv.glFragColor.frag.out b/Test/baseResults/spv.glFragColor.frag.out
index 033769f..df39129 100644
--- a/Test/baseResults/spv.glFragColor.frag.out
+++ b/Test/baseResults/spv.glFragColor.frag.out
@@ -1,6 +1,6 @@
 spv.glFragColor.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 12
 
                               Capability Shader
diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out
index 041edb9..01df400 100644
--- a/Test/baseResults/spv.glsl.register.autoassign.frag.out
+++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out
@@ -1,6 +1,6 @@
 spv.glsl.register.autoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 142
 
                               Capability Shader
diff --git a/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/Test/baseResults/spv.glsl.register.noautoassign.frag.out
index ccf6880..e475a00 100644
--- a/Test/baseResults/spv.glsl.register.noautoassign.frag.out
+++ b/Test/baseResults/spv.glsl.register.noautoassign.frag.out
@@ -1,6 +1,6 @@
 spv.glsl.register.noautoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 142
 
                               Capability Shader
diff --git a/Test/baseResults/spv.hlslDebugInfo.frag.out b/Test/baseResults/spv.hlslDebugInfo.frag.out
index d68c054..9ce266d 100644
--- a/Test/baseResults/spv.hlslDebugInfo.frag.out
+++ b/Test/baseResults/spv.hlslDebugInfo.frag.out
@@ -1,6 +1,6 @@
 spv.hlslDebugInfo.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 19
 
                               Capability Shader
diff --git a/Test/baseResults/spv.hlslOffsets.vert.out b/Test/baseResults/spv.hlslOffsets.vert.out
index d2d6443..cc71283 100644
--- a/Test/baseResults/spv.hlslOffsets.vert.out
+++ b/Test/baseResults/spv.hlslOffsets.vert.out
@@ -18,7 +18,7 @@
 0:?     'anon@0' (layout( binding=0 column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 14
 
                               Capability Shader
diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out
index f71a1cc..5fbb922 100644
--- a/Test/baseResults/spv.image.frag.out
+++ b/Test/baseResults/spv.image.frag.out
@@ -1,7 +1,7 @@
 spv.image.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 405
 
                               Capability Shader
diff --git a/Test/baseResults/spv.imageAtomic64.comp.out b/Test/baseResults/spv.imageAtomic64.comp.out
index 4317ae0..0b1a093 100644
--- a/Test/baseResults/spv.imageAtomic64.comp.out
+++ b/Test/baseResults/spv.imageAtomic64.comp.out
@@ -1,6 +1,6 @@
 spv.imageAtomic64.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 28
 
                               Capability Shader
diff --git a/Test/baseResults/spv.imageAtomic64.frag.out b/Test/baseResults/spv.imageAtomic64.frag.out
index 1c002ab..3083697 100644
--- a/Test/baseResults/spv.imageAtomic64.frag.out
+++ b/Test/baseResults/spv.imageAtomic64.frag.out
@@ -1,7 +1,7 @@
 spv.imageAtomic64.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 503
 
                               Capability Shader
diff --git a/Test/baseResults/spv.imageLoadStoreLod.frag.out b/Test/baseResults/spv.imageLoadStoreLod.frag.out
index 4a16d75..b809474 100644
--- a/Test/baseResults/spv.imageLoadStoreLod.frag.out
+++ b/Test/baseResults/spv.imageLoadStoreLod.frag.out
@@ -1,6 +1,6 @@
 spv.imageLoadStoreLod.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 148
 
                               Capability Shader
diff --git a/Test/baseResults/spv.int16.amd.frag.out b/Test/baseResults/spv.int16.amd.frag.out
index 53f5537..676d99c 100644
--- a/Test/baseResults/spv.int16.amd.frag.out
+++ b/Test/baseResults/spv.int16.amd.frag.out
@@ -1,6 +1,6 @@
 spv.int16.amd.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 576
 
                               Capability Shader
diff --git a/Test/baseResults/spv.int16.frag.out b/Test/baseResults/spv.int16.frag.out
index ed788f8..3e10a7d 100644
--- a/Test/baseResults/spv.int16.frag.out
+++ b/Test/baseResults/spv.int16.frag.out
@@ -1,6 +1,6 @@
 spv.int16.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 549
 
                               Capability Shader
diff --git a/Test/baseResults/spv.int32.frag.out b/Test/baseResults/spv.int32.frag.out
index 2c260dd..af232ec 100644
--- a/Test/baseResults/spv.int32.frag.out
+++ b/Test/baseResults/spv.int32.frag.out
@@ -1,6 +1,6 @@
 spv.int32.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 505
 
                               Capability Shader
diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out
index e335a54..f2fd600 100644
--- a/Test/baseResults/spv.int64.frag.out
+++ b/Test/baseResults/spv.int64.frag.out
@@ -1,7 +1,7 @@
 spv.int64.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 513
 
                               Capability Shader
diff --git a/Test/baseResults/spv.int8.frag.out b/Test/baseResults/spv.int8.frag.out
index 3bfeb1a..e9cd5f8 100644
--- a/Test/baseResults/spv.int8.frag.out
+++ b/Test/baseResults/spv.int8.frag.out
@@ -1,6 +1,6 @@
 spv.int8.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 544
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out
index 67b11d2..b57eac2 100644
--- a/Test/baseResults/spv.intOps.vert.out
+++ b/Test/baseResults/spv.intOps.vert.out
@@ -1,6 +1,6 @@
 spv.intOps.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 302
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intcoopmat.comp.out b/Test/baseResults/spv.intcoopmat.comp.out
index bc50255..6a69743 100644
--- a/Test/baseResults/spv.intcoopmat.comp.out
+++ b/Test/baseResults/spv.intcoopmat.comp.out
@@ -1,6 +1,6 @@
 spv.intcoopmat.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 262
 
                               Capability Shader
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
index 62bd2b6..808c1cd 100644
--- a/Test/baseResults/spv.interpOps.frag.out
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -1,6 +1,6 @@
 spv.interpOps.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 120
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out b/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out
index e15bb57..d46b33f 100644
--- a/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out
+++ b/Test/baseResults/spv.intrinsicsSpirvByReference.vert.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvByReference.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out b/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out
index b926c51..c41dcc9 100644
--- a/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out
+++ b/Test/baseResults/spv.intrinsicsSpirvDecorate.frag.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvDecorate.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out b/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out
index d5f935b..cdea382 100644
--- a/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out
+++ b/Test/baseResults/spv.intrinsicsSpirvExecutionMode.frag.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvExecutionMode.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 12
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out b/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out
index 3103505..0e95e42 100644
--- a/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out
+++ b/Test/baseResults/spv.intrinsicsSpirvInstruction.vert.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvInstruction.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out b/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out
index 48eef5e..096cc61 100644
--- a/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out
+++ b/Test/baseResults/spv.intrinsicsSpirvLiteral.vert.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvLiteral.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 13
 
                               Capability Shader
diff --git a/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out b/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out
index 3bf1394..4be5b91 100644
--- a/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out
+++ b/Test/baseResults/spv.intrinsicsSpirvStorageClass.rchit.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvStorageClass.rchit
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 13
 
                               Capability RayTracingKHR
diff --git a/Test/baseResults/spv.intrinsicsSpirvType.rgen.out b/Test/baseResults/spv.intrinsicsSpirvType.rgen.out
index 5d67de7..f3937b4 100644
--- a/Test/baseResults/spv.intrinsicsSpirvType.rgen.out
+++ b/Test/baseResults/spv.intrinsicsSpirvType.rgen.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvType.rgen
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability RayQueryKHR
diff --git a/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out b/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out
index 248af08..75515be 100644
--- a/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out
+++ b/Test/baseResults/spv.intrinsicsSpirvTypeLocalVar.vert.out
@@ -1,6 +1,6 @@
 spv.intrinsicsSpirvTypeLocalVar.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.invariantAll.vert.out b/Test/baseResults/spv.invariantAll.vert.out
index d1703dc..ec5ad30 100644
--- a/Test/baseResults/spv.invariantAll.vert.out
+++ b/Test/baseResults/spv.invariantAll.vert.out
@@ -1,6 +1,6 @@
 spv.invariantAll.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/spv.layer.tese.out b/Test/baseResults/spv.layer.tese.out
index fb78e63..906340f 100644
--- a/Test/baseResults/spv.layer.tese.out
+++ b/Test/baseResults/spv.layer.tese.out
@@ -1,6 +1,6 @@
 spv.layer.tese
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 10
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out
index 2d5111c..7de04d4 100644
--- a/Test/baseResults/spv.layoutNested.vert.out
+++ b/Test/baseResults/spv.layoutNested.vert.out
@@ -1,6 +1,6 @@
 spv.layoutNested.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out
index 93199e7..8957a3c 100644
--- a/Test/baseResults/spv.length.frag.out
+++ b/Test/baseResults/spv.length.frag.out
@@ -1,6 +1,6 @@
 spv.length.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/spv.load.bool.array.interface.block.frag.out b/Test/baseResults/spv.load.bool.array.interface.block.frag.out
index 7a80299..f45736c 100644
--- a/Test/baseResults/spv.load.bool.array.interface.block.frag.out
+++ b/Test/baseResults/spv.load.bool.array.interface.block.frag.out
@@ -1,6 +1,6 @@
 spv.load.bool.array.interface.block.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 80
 
                               Capability Shader
diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out
index a9ce54f..637fb6d 100644
--- a/Test/baseResults/spv.localAggregates.frag.out
+++ b/Test/baseResults/spv.localAggregates.frag.out
@@ -1,6 +1,6 @@
 spv.localAggregates.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 136
 
                               Capability Shader
diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out
index 17f4db4..7178f35 100644
--- a/Test/baseResults/spv.loops.frag.out
+++ b/Test/baseResults/spv.loops.frag.out
@@ -1,6 +1,6 @@
 spv.loops.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 725
 
                               Capability Shader
diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out
index 27a84fd..4de834d 100644
--- a/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/Test/baseResults/spv.loopsArtificial.frag.out
@@ -1,6 +1,6 @@
 spv.loopsArtificial.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 158
 
                               Capability Shader
diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out
index 1201887..932018f 100644
--- a/Test/baseResults/spv.matFun.vert.out
+++ b/Test/baseResults/spv.matFun.vert.out
@@ -1,6 +1,6 @@
 spv.matFun.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 103
 
                               Capability Shader
diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out
index deeaf90..a287cda 100644
--- a/Test/baseResults/spv.matrix.frag.out
+++ b/Test/baseResults/spv.matrix.frag.out
@@ -1,6 +1,6 @@
 spv.matrix.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 286
 
                               Capability Shader
diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out
index f9cdaeb..13f2708 100644
--- a/Test/baseResults/spv.matrix2.frag.out
+++ b/Test/baseResults/spv.matrix2.frag.out
@@ -1,6 +1,6 @@
 spv.matrix2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 221
 
                               Capability Shader
diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out
index e0a5207..fce8c9c 100644
--- a/Test/baseResults/spv.memoryQualifier.frag.out
+++ b/Test/baseResults/spv.memoryQualifier.frag.out
@@ -1,7 +1,7 @@
 spv.memoryQualifier.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 105
 
                               Capability Shader
diff --git a/Test/baseResults/spv.memoryScopeSemantics.comp.out b/Test/baseResults/spv.memoryScopeSemantics.comp.out
index 1078aa5..56c8470 100644
--- a/Test/baseResults/spv.memoryScopeSemantics.comp.out
+++ b/Test/baseResults/spv.memoryScopeSemantics.comp.out
@@ -1,6 +1,6 @@
 spv.memoryScopeSemantics.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 169
 
                               Capability Shader
diff --git a/Test/baseResults/spv.merge-unreachable.frag.out b/Test/baseResults/spv.merge-unreachable.frag.out
index 2b919dc..dedec9c 100644
--- a/Test/baseResults/spv.merge-unreachable.frag.out
+++ b/Test/baseResults/spv.merge-unreachable.frag.out
@@ -1,6 +1,6 @@
 spv.merge-unreachable.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 25
 
                               Capability Shader
diff --git a/Test/baseResults/spv.meshShaderBuiltins.mesh.out b/Test/baseResults/spv.meshShaderBuiltins.mesh.out
index f6b0f05..b26122e 100644
--- a/Test/baseResults/spv.meshShaderBuiltins.mesh.out
+++ b/Test/baseResults/spv.meshShaderBuiltins.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderBuiltins.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 148
 
                               Capability ClipDistance
diff --git a/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out b/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
index 111fa2b..86a4fd2 100644
--- a/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
+++ b/Test/baseResults/spv.meshShaderPerViewBuiltins.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderPerViewBuiltins.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 126
 
                               Capability PerViewAttributesNV
diff --git a/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out b/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
index cd6a95b..e9eaed3 100644
--- a/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
+++ b/Test/baseResults/spv.meshShaderPerViewUserDefined.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderPerViewUserDefined.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 108
 
                               Capability MeshShadingNV
diff --git a/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out b/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
index 60422d6..bfd2d85 100644
--- a/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
+++ b/Test/baseResults/spv.meshShaderRedeclBuiltins.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderRedeclBuiltins.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 129
 
                               Capability ClipDistance
diff --git a/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out b/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
index f6c2038..9f881e6 100644
--- a/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
+++ b/Test/baseResults/spv.meshShaderRedeclPerViewBuiltins.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderRedeclPerViewBuiltins.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 120
 
                               Capability PerViewAttributesNV
diff --git a/Test/baseResults/spv.meshShaderSharedMem.mesh.out b/Test/baseResults/spv.meshShaderSharedMem.mesh.out
index 9ad333c..7960ffa 100644
--- a/Test/baseResults/spv.meshShaderSharedMem.mesh.out
+++ b/Test/baseResults/spv.meshShaderSharedMem.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderSharedMem.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 77
 
                               Capability StorageImageWriteWithoutFormat
diff --git a/Test/baseResults/spv.meshShaderTaskMem.mesh.out b/Test/baseResults/spv.meshShaderTaskMem.mesh.out
index fcbec3d..be80439 100644
--- a/Test/baseResults/spv.meshShaderTaskMem.mesh.out
+++ b/Test/baseResults/spv.meshShaderTaskMem.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderTaskMem.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 58
 
                               Capability MeshShadingNV
diff --git a/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.meshShaderUserDefined.mesh.out
index 0e5fd05..01ee933 100644
--- a/Test/baseResults/spv.meshShaderUserDefined.mesh.out
+++ b/Test/baseResults/spv.meshShaderUserDefined.mesh.out
@@ -1,6 +1,6 @@
 spv.meshShaderUserDefined.mesh
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 141
 
                               Capability MeshShadingNV
diff --git a/Test/baseResults/spv.meshTaskShader.task.out b/Test/baseResults/spv.meshTaskShader.task.out
index 9442f97..9fed191 100644
--- a/Test/baseResults/spv.meshTaskShader.task.out
+++ b/Test/baseResults/spv.meshTaskShader.task.out
@@ -1,6 +1,6 @@
 spv.meshTaskShader.task
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 116
 
                               Capability StorageImageWriteWithoutFormat
diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out
index 0ff605c..13a3528 100644
--- a/Test/baseResults/spv.multiStruct.comp.out
+++ b/Test/baseResults/spv.multiStruct.comp.out
@@ -1,6 +1,6 @@
 spv.multiStruct.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 161
 
                               Capability Shader
diff --git a/Test/baseResults/spv.multiStructFuncall.frag.out b/Test/baseResults/spv.multiStructFuncall.frag.out
index 50f4b78..eec734a 100644
--- a/Test/baseResults/spv.multiStructFuncall.frag.out
+++ b/Test/baseResults/spv.multiStructFuncall.frag.out
@@ -1,6 +1,6 @@
 spv.multiStructFuncall.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 65
 
                               Capability Shader
diff --git a/Test/baseResults/spv.multiView.frag.out b/Test/baseResults/spv.multiView.frag.out
index c6afe8f..a1575d9 100644
--- a/Test/baseResults/spv.multiView.frag.out
+++ b/Test/baseResults/spv.multiView.frag.out
@@ -1,6 +1,6 @@
 spv.multiView.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out b/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
index 9527951..b1c29f9 100644
--- a/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
+++ b/Test/baseResults/spv.multiviewPerViewAttributes.tesc.out
@@ -1,6 +1,6 @@
 spv.multiviewPerViewAttributes.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 41
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.multiviewPerViewAttributes.vert.out b/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
index 8268e5d..0a4e1f0 100644
--- a/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
+++ b/Test/baseResults/spv.multiviewPerViewAttributes.vert.out
@@ -1,6 +1,6 @@
 spv.multiviewPerViewAttributes.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 723fe21..332ca66 100644
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -1,7 +1,7 @@
 spv.newTexture.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 284
 
                               Capability Shader
diff --git a/Test/baseResults/spv.noBuiltInLoc.vert.out b/Test/baseResults/spv.noBuiltInLoc.vert.out
index 65ee22a..6322052 100644
--- a/Test/baseResults/spv.noBuiltInLoc.vert.out
+++ b/Test/baseResults/spv.noBuiltInLoc.vert.out
@@ -1,6 +1,6 @@
 spv.noBuiltInLoc.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.noDeadDecorations.vert.out b/Test/baseResults/spv.noDeadDecorations.vert.out
index 0185eaf..4a4d7b3 100644
--- a/Test/baseResults/spv.noDeadDecorations.vert.out
+++ b/Test/baseResults/spv.noDeadDecorations.vert.out
@@ -1,6 +1,6 @@
 spv.noDeadDecorations.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out
index e92ebcb..a8969e0 100644
--- a/Test/baseResults/spv.noWorkgroup.comp.out
+++ b/Test/baseResults/spv.noWorkgroup.comp.out
@@ -1,6 +1,6 @@
 spv.noWorkgroup.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out
index 94401be..3728dd5 100644
--- a/Test/baseResults/spv.nonSquare.vert.out
+++ b/Test/baseResults/spv.nonSquare.vert.out
@@ -1,6 +1,6 @@
 spv.nonSquare.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 90
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonuniform.frag.out b/Test/baseResults/spv.nonuniform.frag.out
index 26b020c..f6febc9 100644
--- a/Test/baseResults/spv.nonuniform.frag.out
+++ b/Test/baseResults/spv.nonuniform.frag.out
@@ -1,6 +1,6 @@
 spv.nonuniform.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 289
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonuniform2.frag.out b/Test/baseResults/spv.nonuniform2.frag.out
index b9d64dd..bb89ba7 100644
--- a/Test/baseResults/spv.nonuniform2.frag.out
+++ b/Test/baseResults/spv.nonuniform2.frag.out
@@ -1,6 +1,6 @@
 spv.nonuniform2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonuniform3.frag.out b/Test/baseResults/spv.nonuniform3.frag.out
index 119a6d9..b48916c 100644
--- a/Test/baseResults/spv.nonuniform3.frag.out
+++ b/Test/baseResults/spv.nonuniform3.frag.out
@@ -1,6 +1,6 @@
 spv.nonuniform3.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 32
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonuniform4.frag.out b/Test/baseResults/spv.nonuniform4.frag.out
index 4442e5f..6bfc957 100644
--- a/Test/baseResults/spv.nonuniform4.frag.out
+++ b/Test/baseResults/spv.nonuniform4.frag.out
@@ -1,6 +1,6 @@
 spv.nonuniform4.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nonuniform5.frag.out b/Test/baseResults/spv.nonuniform5.frag.out
index abf10c2..ebbb6f4 100644
--- a/Test/baseResults/spv.nonuniform5.frag.out
+++ b/Test/baseResults/spv.nonuniform5.frag.out
@@ -1,6 +1,6 @@
 spv.nonuniform5.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nullInit.comp.out b/Test/baseResults/spv.nullInit.comp.out
index f432185..b7908b5 100755
--- a/Test/baseResults/spv.nullInit.comp.out
+++ b/Test/baseResults/spv.nullInit.comp.out
@@ -1,6 +1,6 @@
 spv.nullInit.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 37
 
                               Capability Shader
diff --git a/Test/baseResults/spv.nv.hitobject-allops.rchit.out b/Test/baseResults/spv.nv.hitobject-allops.rchit.out
deleted file mode 100644
index 15e6d41..0000000
--- a/Test/baseResults/spv.nv.hitobject-allops.rchit.out
+++ /dev/null
@@ -1,215 +0,0 @@
-spv.nv.hitobject-allops.rchit
-// Module Version 10400
-// Generated by (magic number): 8000b
-// Id's are bound by 116
-
-                              Capability RayTracingKHR
-                              Capability ShaderInvocationReorderNV
-                              Extension  "SPV_KHR_ray_tracing"
-                              Extension  "SPV_NV_shader_invocation_reorder"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint ClosestHitKHR 4  "main" 9 14 22 25 36 42 48 52 53 64
-                              Source GLSL 460
-                              SourceExtension  "GL_EXT_ray_tracing"
-                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
-                              SourceExtension  "GL_NV_shader_invocation_reorder"
-                              Name 4  "main"
-                              Name 9  "attr"
-                              Name 12  "hBlock"
-                              MemberName 12(hBlock) 0  "attrval"
-                              Name 14  ""
-                              Name 22  "hObj"
-                              Name 25  "as"
-                              Name 36  "payload"
-                              Name 40  "pBlock"
-                              MemberName 40(pBlock) 0  "val1"
-                              MemberName 40(pBlock) 1  "val2"
-                              Name 42  ""
-                              Name 48  "hObjHit"
-                              Name 52  "hObjNop"
-                              Name 53  "hObjMiss"
-                              Name 62  "block"
-                              MemberName 62(block) 0  "op"
-                              Name 64  ""
-                              Name 79  "tmin"
-                              Name 81  "tmax"
-                              Name 84  "orig"
-                              Name 86  "dir"
-                              Name 88  "oorig"
-                              Name 90  "odir"
-                              Name 94  "otw"
-                              Name 96  "wto"
-                              Name 99  "cid"
-                              Name 101  "iid"
-                              Name 103  "pid"
-                              Name 105  "gid"
-                              Name 108  "hkind"
-                              Name 112  "handle"
-                              Name 114  "rid"
-                              Decorate 12(hBlock) Block
-                              Decorate 25(as) DescriptorSet 0
-                              Decorate 25(as) Binding 0
-                              Decorate 40(pBlock) Block
-                              MemberDecorate 62(block) 0 Offset 0
-                              Decorate 62(block) Block
-                              Decorate 64 DescriptorSet 0
-                              Decorate 64 Binding 1
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 2
-               8:             TypePointer HitObjectAttributeNV 7(fvec2)
-         9(attr):      8(ptr) Variable HitObjectAttributeNV
-              10:    6(float) Constant 1065353216
-              11:    7(fvec2) ConstantComposite 10 10
-      12(hBlock):             TypeStruct 6(float)
-              13:             TypePointer HitObjectAttributeNV 12(hBlock)
-              14:     13(ptr) Variable HitObjectAttributeNV
-              15:             TypeInt 32 1
-              16:     15(int) Constant 0
-              17:    6(float) Constant 1073741824
-              18:             TypePointer HitObjectAttributeNV 6(float)
-              20:             TypeHitObjectNV
-              21:             TypePointer Private 20
-        22(hObj):     21(ptr) Variable Private
-              23:             TypeAccelerationStructureKHR
-              24:             TypePointer UniformConstant 23
-          25(as):     24(ptr) Variable UniformConstant
-              27:             TypeInt 32 0
-              28:     27(int) Constant 1
-              29:             TypeVector 6(float) 3
-              30:    6(float) Constant 1056964608
-              31:   29(fvec3) ConstantComposite 30 30 30
-              32:   29(fvec3) ConstantComposite 10 10 10
-              33:     15(int) Constant 1
-              34:             TypeVector 6(float) 4
-              35:             TypePointer RayPayloadKHR 34(fvec4)
-     36(payload):     35(ptr) Variable RayPayloadKHR
-              38:    6(float) Constant 1092616192
-              39:     15(int) Constant 2
-      40(pBlock):             TypeStruct 7(fvec2) 7(fvec2)
-              41:             TypePointer RayPayloadKHR 40(pBlock)
-              42:     41(ptr) Variable RayPayloadKHR
-              44:     27(int) Constant 2
-              45:   29(fvec3) ConstantComposite 17 17 17
-              47:    6(float) Constant 1082130432
-     48(hObjHit):     21(ptr) Variable Private
-              50:     15(int) Constant 3
-     52(hObjNop):     21(ptr) Variable Private
-    53(hObjMiss):     21(ptr) Variable Private
-              54:    6(float) Constant 1069547520
-              55:   29(fvec3) ConstantComposite 54 54 54
-              56:    6(float) Constant 1084227584
-              57:    6(float) Constant 1090519040
-              58:             TypeBool
-       62(block):             TypeStruct 6(float)
-              63:             TypePointer StorageBuffer 62(block)
-              64:     63(ptr) Variable StorageBuffer
-              65:             TypePointer StorageBuffer 6(float)
-              76:    6(float) Constant 1077936128
-              78:             TypePointer Function 6(float)
-              83:             TypePointer Function 29(fvec3)
-              92:             TypeMatrix 29(fvec3) 4
-              93:             TypePointer Function 92
-              98:             TypePointer Function 15(int)
-             107:             TypePointer Function 27(int)
-             110:             TypeVector 27(int) 2
-             111:             TypePointer Function 110(ivec2)
-         4(main):           2 Function None 3
-               5:             Label
-        79(tmin):     78(ptr) Variable Function
-        81(tmax):     78(ptr) Variable Function
-        84(orig):     83(ptr) Variable Function
-         86(dir):     83(ptr) Variable Function
-       88(oorig):     83(ptr) Variable Function
-        90(odir):     83(ptr) Variable Function
-         94(otw):     93(ptr) Variable Function
-         96(wto):     93(ptr) Variable Function
-         99(cid):     98(ptr) Variable Function
-        101(iid):     98(ptr) Variable Function
-        103(pid):     98(ptr) Variable Function
-        105(gid):     98(ptr) Variable Function
-      108(hkind):    107(ptr) Variable Function
-     112(handle):    111(ptr) Variable Function
-        114(rid):    107(ptr) Variable Function
-                              Store 9(attr) 11
-              19:     18(ptr) AccessChain 14 16
-                              Store 19 17
-              26:          23 Load 25(as)
-                              HitObjectTraceRayNV 22(hObj) 26 28 28 28 28 28 31 30 32 10 36(payload)
-              37:          23 Load 25(as)
-                              HitObjectTraceRayMotionNV 22(hObj) 37 28 28 28 28 28 31 30 32 10 38 42
-              43:          23 Load 25(as)
-                              HitObjectRecordHitNV 22(hObj) 43 33 33 33 44 44 44 32 10 45 17 9(attr)
-              46:          23 Load 25(as)
-                              HitObjectRecordHitMotionNV 22(hObj) 46 33 33 33 44 44 44 32 10 45 17 47 9(attr)
-              49:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexNV 48(hObjHit) 49 33 33 33 44 44 32 10 45 17 14
-              51:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexMotionNV 48(hObjHit) 51 33 33 33 44 44 32 10 45 17 47 14
-                              HitObjectRecordEmptyNV 52(hObjNop)
-                              HitObjectRecordMissNV 53(hObjMiss) 28 31 17 55 56
-                              HitObjectRecordMissMotionNV 53(hObjMiss) 28 31 17 55 56 57
-                              HitObjectExecuteShaderNV 48(hObjHit) 42
-              59:    58(bool) HitObjectIsHitNV 22(hObj)
-                              SelectionMerge 61 None
-                              BranchConditional 59 60 67
-              60:               Label
-              66:     65(ptr)   AccessChain 64 16
-                                Store 66 10
-                                Branch 61
-              67:               Label
-              68:    58(bool)   HitObjectIsMissNV 22(hObj)
-                                SelectionMerge 70 None
-                                BranchConditional 68 69 72
-              69:                 Label
-              71:     65(ptr)     AccessChain 64 16
-                                  Store 71 17
-                                  Branch 70
-              72:                 Label
-              73:    58(bool)     HitObjectIsEmptyNV 22(hObj)
-                                  SelectionMerge 75 None
-                                  BranchConditional 73 74 75
-              74:                   Label
-              77:     65(ptr)       AccessChain 64 16
-                                    Store 77 76
-                                    Branch 75
-              75:                 Label
-                                  Branch 70
-              70:               Label
-                                Branch 61
-              61:             Label
-              80:    6(float) HitObjectGetRayTMinNV 48(hObjHit)
-                              Store 79(tmin) 80
-              82:    6(float) HitObjectGetRayTMaxNV 48(hObjHit)
-                              Store 81(tmax) 82
-              85:   29(fvec3) HitObjectGetWorldRayOriginNV 48(hObjHit)
-                              Store 84(orig) 85
-              87:   29(fvec3) HitObjectGetWorldRayDirectionNV 48(hObjHit)
-                              Store 86(dir) 87
-              89:   29(fvec3) HitObjectGetObjectRayOriginNV 48(hObjHit)
-                              Store 88(oorig) 89
-              91:   29(fvec3) HitObjectGetObjectRayDirectionNV 48(hObjHit)
-                              Store 90(odir) 91
-              95:          92 HitObjectGetObjectToWorldNV 48(hObjHit)
-                              Store 94(otw) 95
-              97:          92 HitObjectGetWorldToObjectNV 48(hObjHit)
-                              Store 96(wto) 97
-             100:     15(int) HitObjectGetInstanceCustomIndexNV 53(hObjMiss)
-                              Store 99(cid) 100
-             102:     15(int) HitObjectGetInstanceIdNV 52(hObjNop)
-                              Store 101(iid) 102
-             104:     15(int) HitObjectGetPrimitiveIndexNV 22(hObj)
-                              Store 103(pid) 104
-             106:     15(int) HitObjectGetGeometryIndexNV 22(hObj)
-                              Store 105(gid) 106
-             109:     27(int) HitObjectGetFrontFaceNV 22(hObj)
-                              Store 108(hkind) 109
-                              HitObjectGetAttributesNV 22(hObj) 9(attr)
-             113:  110(ivec2) HitObjectGetShaderRecordBufferHandleNV 22(hObj)
-                              Store 112(handle) 113
-             115:     27(int) HitObjectGetShaderBindingTableRecordIndexNV 22(hObj)
-                              Store 114(rid) 115
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.hitobject-allops.rgen.out b/Test/baseResults/spv.nv.hitobject-allops.rgen.out
deleted file mode 100644
index d395500..0000000
--- a/Test/baseResults/spv.nv.hitobject-allops.rgen.out
+++ /dev/null
@@ -1,219 +0,0 @@
-spv.nv.hitobject-allops.rgen
-// Module Version 10400
-// Generated by (magic number): 8000b
-// Id's are bound by 117
-
-                              Capability RayTracingKHR
-                              Capability ShaderInvocationReorderNV
-                              Extension  "SPV_KHR_ray_tracing"
-                              Extension  "SPV_NV_shader_invocation_reorder"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint RayGenerationKHR 4  "main" 9 14 22 25 36 42 48 52 53 64
-                              Source GLSL 460
-                              SourceExtension  "GL_EXT_ray_tracing"
-                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
-                              SourceExtension  "GL_NV_shader_invocation_reorder"
-                              Name 4  "main"
-                              Name 9  "attr"
-                              Name 12  "hBlock"
-                              MemberName 12(hBlock) 0  "attrval"
-                              Name 14  ""
-                              Name 22  "hObj"
-                              Name 25  "as"
-                              Name 36  "payload"
-                              Name 40  "pBlock"
-                              MemberName 40(pBlock) 0  "val1"
-                              MemberName 40(pBlock) 1  "val2"
-                              Name 42  ""
-                              Name 48  "hObjHit"
-                              Name 52  "hObjNop"
-                              Name 53  "hObjMiss"
-                              Name 62  "block"
-                              MemberName 62(block) 0  "op"
-                              Name 64  ""
-                              Name 79  "tmin"
-                              Name 81  "tmax"
-                              Name 84  "orig"
-                              Name 86  "dir"
-                              Name 88  "oorig"
-                              Name 90  "odir"
-                              Name 94  "otw"
-                              Name 96  "wto"
-                              Name 99  "cid"
-                              Name 101  "iid"
-                              Name 103  "pid"
-                              Name 105  "gid"
-                              Name 108  "hkind"
-                              Name 112  "handle"
-                              Name 114  "rid"
-                              Decorate 12(hBlock) Block
-                              Decorate 25(as) DescriptorSet 0
-                              Decorate 25(as) Binding 0
-                              Decorate 40(pBlock) Block
-                              MemberDecorate 62(block) 0 Offset 0
-                              Decorate 62(block) Block
-                              Decorate 64 DescriptorSet 0
-                              Decorate 64 Binding 1
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 2
-               8:             TypePointer HitObjectAttributeNV 7(fvec2)
-         9(attr):      8(ptr) Variable HitObjectAttributeNV
-              10:    6(float) Constant 1065353216
-              11:    7(fvec2) ConstantComposite 10 10
-      12(hBlock):             TypeStruct 6(float)
-              13:             TypePointer HitObjectAttributeNV 12(hBlock)
-              14:     13(ptr) Variable HitObjectAttributeNV
-              15:             TypeInt 32 1
-              16:     15(int) Constant 0
-              17:    6(float) Constant 1073741824
-              18:             TypePointer HitObjectAttributeNV 6(float)
-              20:             TypeHitObjectNV
-              21:             TypePointer Private 20
-        22(hObj):     21(ptr) Variable Private
-              23:             TypeAccelerationStructureKHR
-              24:             TypePointer UniformConstant 23
-          25(as):     24(ptr) Variable UniformConstant
-              27:             TypeInt 32 0
-              28:     27(int) Constant 1
-              29:             TypeVector 6(float) 3
-              30:    6(float) Constant 1056964608
-              31:   29(fvec3) ConstantComposite 30 30 30
-              32:   29(fvec3) ConstantComposite 10 10 10
-              33:     15(int) Constant 1
-              34:             TypeVector 6(float) 4
-              35:             TypePointer RayPayloadKHR 34(fvec4)
-     36(payload):     35(ptr) Variable RayPayloadKHR
-              38:    6(float) Constant 1092616192
-              39:     15(int) Constant 2
-      40(pBlock):             TypeStruct 7(fvec2) 7(fvec2)
-              41:             TypePointer RayPayloadKHR 40(pBlock)
-              42:     41(ptr) Variable RayPayloadKHR
-              44:     27(int) Constant 2
-              45:   29(fvec3) ConstantComposite 17 17 17
-              47:    6(float) Constant 1082130432
-     48(hObjHit):     21(ptr) Variable Private
-              50:     15(int) Constant 3
-     52(hObjNop):     21(ptr) Variable Private
-    53(hObjMiss):     21(ptr) Variable Private
-              54:    6(float) Constant 1069547520
-              55:   29(fvec3) ConstantComposite 54 54 54
-              56:    6(float) Constant 1084227584
-              57:    6(float) Constant 1090519040
-              58:             TypeBool
-       62(block):             TypeStruct 6(float)
-              63:             TypePointer StorageBuffer 62(block)
-              64:     63(ptr) Variable StorageBuffer
-              65:             TypePointer StorageBuffer 6(float)
-              76:    6(float) Constant 1077936128
-              78:             TypePointer Function 6(float)
-              83:             TypePointer Function 29(fvec3)
-              92:             TypeMatrix 29(fvec3) 4
-              93:             TypePointer Function 92
-              98:             TypePointer Function 15(int)
-             107:             TypePointer Function 27(int)
-             110:             TypeVector 27(int) 2
-             111:             TypePointer Function 110(ivec2)
-             116:     27(int) Constant 4
-         4(main):           2 Function None 3
-               5:             Label
-        79(tmin):     78(ptr) Variable Function
-        81(tmax):     78(ptr) Variable Function
-        84(orig):     83(ptr) Variable Function
-         86(dir):     83(ptr) Variable Function
-       88(oorig):     83(ptr) Variable Function
-        90(odir):     83(ptr) Variable Function
-         94(otw):     93(ptr) Variable Function
-         96(wto):     93(ptr) Variable Function
-         99(cid):     98(ptr) Variable Function
-        101(iid):     98(ptr) Variable Function
-        103(pid):     98(ptr) Variable Function
-        105(gid):     98(ptr) Variable Function
-      108(hkind):    107(ptr) Variable Function
-     112(handle):    111(ptr) Variable Function
-        114(rid):    107(ptr) Variable Function
-                              Store 9(attr) 11
-              19:     18(ptr) AccessChain 14 16
-                              Store 19 17
-              26:          23 Load 25(as)
-                              HitObjectTraceRayNV 22(hObj) 26 28 28 28 28 28 31 30 32 10 36(payload)
-              37:          23 Load 25(as)
-                              HitObjectTraceRayMotionNV 22(hObj) 37 28 28 28 28 28 31 30 32 10 38 42
-              43:          23 Load 25(as)
-                              HitObjectRecordHitNV 22(hObj) 43 33 33 33 44 44 44 32 10 45 17 9(attr)
-              46:          23 Load 25(as)
-                              HitObjectRecordHitMotionNV 22(hObj) 46 33 33 33 44 44 44 32 10 45 17 47 9(attr)
-              49:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexNV 48(hObjHit) 49 33 33 33 44 44 32 10 45 17 14
-              51:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexMotionNV 48(hObjHit) 51 33 33 33 44 44 32 10 45 17 47 14
-                              HitObjectRecordEmptyNV 52(hObjNop)
-                              HitObjectRecordMissNV 53(hObjMiss) 28 31 17 55 56
-                              HitObjectRecordMissMotionNV 53(hObjMiss) 28 31 17 55 56 57
-                              HitObjectExecuteShaderNV 48(hObjHit) 36(payload)
-              59:    58(bool) HitObjectIsHitNV 22(hObj)
-                              SelectionMerge 61 None
-                              BranchConditional 59 60 67
-              60:               Label
-              66:     65(ptr)   AccessChain 64 16
-                                Store 66 10
-                                Branch 61
-              67:               Label
-              68:    58(bool)   HitObjectIsMissNV 22(hObj)
-                                SelectionMerge 70 None
-                                BranchConditional 68 69 72
-              69:                 Label
-              71:     65(ptr)     AccessChain 64 16
-                                  Store 71 17
-                                  Branch 70
-              72:                 Label
-              73:    58(bool)     HitObjectIsEmptyNV 22(hObj)
-                                  SelectionMerge 75 None
-                                  BranchConditional 73 74 75
-              74:                   Label
-              77:     65(ptr)       AccessChain 64 16
-                                    Store 77 76
-                                    Branch 75
-              75:                 Label
-                                  Branch 70
-              70:               Label
-                                Branch 61
-              61:             Label
-              80:    6(float) HitObjectGetRayTMinNV 48(hObjHit)
-                              Store 79(tmin) 80
-              82:    6(float) HitObjectGetRayTMaxNV 48(hObjHit)
-                              Store 81(tmax) 82
-              85:   29(fvec3) HitObjectGetWorldRayOriginNV 48(hObjHit)
-                              Store 84(orig) 85
-              87:   29(fvec3) HitObjectGetWorldRayDirectionNV 48(hObjHit)
-                              Store 86(dir) 87
-              89:   29(fvec3) HitObjectGetObjectRayOriginNV 48(hObjHit)
-                              Store 88(oorig) 89
-              91:   29(fvec3) HitObjectGetObjectRayDirectionNV 48(hObjHit)
-                              Store 90(odir) 91
-              95:          92 HitObjectGetObjectToWorldNV 48(hObjHit)
-                              Store 94(otw) 95
-              97:          92 HitObjectGetWorldToObjectNV 48(hObjHit)
-                              Store 96(wto) 97
-             100:     15(int) HitObjectGetInstanceCustomIndexNV 53(hObjMiss)
-                              Store 99(cid) 100
-             102:     15(int) HitObjectGetInstanceIdNV 52(hObjNop)
-                              Store 101(iid) 102
-             104:     15(int) HitObjectGetPrimitiveIndexNV 22(hObj)
-                              Store 103(pid) 104
-             106:     15(int) HitObjectGetGeometryIndexNV 22(hObj)
-                              Store 105(gid) 106
-             109:     27(int) HitObjectGetFrontFaceNV 22(hObj)
-                              Store 108(hkind) 109
-                              HitObjectGetAttributesNV 22(hObj) 9(attr)
-             113:  110(ivec2) HitObjectGetShaderRecordBufferHandleNV 22(hObj)
-                              Store 112(handle) 113
-             115:     27(int) HitObjectGetShaderBindingTableRecordIndexNV 22(hObj)
-                              Store 114(rid) 115
-                              ReorderThreadWithHintNV 116 116
-                              ReorderThreadWithHitObjectNV 48(hObjHit)
-                              ReorderThreadWithHitObjectNV 48(hObjHit) 116 44
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.nv.hitobject-allops.rmiss.out b/Test/baseResults/spv.nv.hitobject-allops.rmiss.out
deleted file mode 100644
index 970d08a..0000000
--- a/Test/baseResults/spv.nv.hitobject-allops.rmiss.out
+++ /dev/null
@@ -1,215 +0,0 @@
-spv.nv.hitobject-allops.rmiss
-// Module Version 10400
-// Generated by (magic number): 8000b
-// Id's are bound by 116
-
-                              Capability RayTracingKHR
-                              Capability ShaderInvocationReorderNV
-                              Extension  "SPV_KHR_ray_tracing"
-                              Extension  "SPV_NV_shader_invocation_reorder"
-               1:             ExtInstImport  "GLSL.std.450"
-                              MemoryModel Logical GLSL450
-                              EntryPoint MissKHR 4  "main" 9 14 22 25 36 42 48 52 53 64
-                              Source GLSL 460
-                              SourceExtension  "GL_EXT_ray_tracing"
-                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
-                              SourceExtension  "GL_NV_shader_invocation_reorder"
-                              Name 4  "main"
-                              Name 9  "attr"
-                              Name 12  "hBlock"
-                              MemberName 12(hBlock) 0  "attrval"
-                              Name 14  ""
-                              Name 22  "hObj"
-                              Name 25  "as"
-                              Name 36  "payload"
-                              Name 40  "pBlock"
-                              MemberName 40(pBlock) 0  "val1"
-                              MemberName 40(pBlock) 1  "val2"
-                              Name 42  ""
-                              Name 48  "hObjHit"
-                              Name 52  "hObjNop"
-                              Name 53  "hObjMiss"
-                              Name 62  "block"
-                              MemberName 62(block) 0  "op"
-                              Name 64  ""
-                              Name 79  "tmin"
-                              Name 81  "tmax"
-                              Name 84  "orig"
-                              Name 86  "dir"
-                              Name 88  "oorig"
-                              Name 90  "odir"
-                              Name 94  "otw"
-                              Name 96  "wto"
-                              Name 99  "cid"
-                              Name 101  "iid"
-                              Name 103  "pid"
-                              Name 105  "gid"
-                              Name 108  "hkind"
-                              Name 112  "handle"
-                              Name 114  "rid"
-                              Decorate 12(hBlock) Block
-                              Decorate 25(as) DescriptorSet 0
-                              Decorate 25(as) Binding 0
-                              Decorate 40(pBlock) Block
-                              MemberDecorate 62(block) 0 Offset 0
-                              Decorate 62(block) Block
-                              Decorate 64 DescriptorSet 0
-                              Decorate 64 Binding 1
-               2:             TypeVoid
-               3:             TypeFunction 2
-               6:             TypeFloat 32
-               7:             TypeVector 6(float) 2
-               8:             TypePointer HitObjectAttributeNV 7(fvec2)
-         9(attr):      8(ptr) Variable HitObjectAttributeNV
-              10:    6(float) Constant 1065353216
-              11:    7(fvec2) ConstantComposite 10 10
-      12(hBlock):             TypeStruct 6(float)
-              13:             TypePointer HitObjectAttributeNV 12(hBlock)
-              14:     13(ptr) Variable HitObjectAttributeNV
-              15:             TypeInt 32 1
-              16:     15(int) Constant 0
-              17:    6(float) Constant 1073741824
-              18:             TypePointer HitObjectAttributeNV 6(float)
-              20:             TypeHitObjectNV
-              21:             TypePointer Private 20
-        22(hObj):     21(ptr) Variable Private
-              23:             TypeAccelerationStructureKHR
-              24:             TypePointer UniformConstant 23
-          25(as):     24(ptr) Variable UniformConstant
-              27:             TypeInt 32 0
-              28:     27(int) Constant 1
-              29:             TypeVector 6(float) 3
-              30:    6(float) Constant 1056964608
-              31:   29(fvec3) ConstantComposite 30 30 30
-              32:   29(fvec3) ConstantComposite 10 10 10
-              33:     15(int) Constant 1
-              34:             TypeVector 6(float) 4
-              35:             TypePointer RayPayloadKHR 34(fvec4)
-     36(payload):     35(ptr) Variable RayPayloadKHR
-              38:    6(float) Constant 1092616192
-              39:     15(int) Constant 2
-      40(pBlock):             TypeStruct 7(fvec2) 7(fvec2)
-              41:             TypePointer RayPayloadKHR 40(pBlock)
-              42:     41(ptr) Variable RayPayloadKHR
-              44:     27(int) Constant 2
-              45:   29(fvec3) ConstantComposite 17 17 17
-              47:    6(float) Constant 1082130432
-     48(hObjHit):     21(ptr) Variable Private
-              50:     15(int) Constant 3
-     52(hObjNop):     21(ptr) Variable Private
-    53(hObjMiss):     21(ptr) Variable Private
-              54:    6(float) Constant 1069547520
-              55:   29(fvec3) ConstantComposite 54 54 54
-              56:    6(float) Constant 1084227584
-              57:    6(float) Constant 1090519040
-              58:             TypeBool
-       62(block):             TypeStruct 6(float)
-              63:             TypePointer StorageBuffer 62(block)
-              64:     63(ptr) Variable StorageBuffer
-              65:             TypePointer StorageBuffer 6(float)
-              76:    6(float) Constant 1077936128
-              78:             TypePointer Function 6(float)
-              83:             TypePointer Function 29(fvec3)
-              92:             TypeMatrix 29(fvec3) 4
-              93:             TypePointer Function 92
-              98:             TypePointer Function 15(int)
-             107:             TypePointer Function 27(int)
-             110:             TypeVector 27(int) 2
-             111:             TypePointer Function 110(ivec2)
-         4(main):           2 Function None 3
-               5:             Label
-        79(tmin):     78(ptr) Variable Function
-        81(tmax):     78(ptr) Variable Function
-        84(orig):     83(ptr) Variable Function
-         86(dir):     83(ptr) Variable Function
-       88(oorig):     83(ptr) Variable Function
-        90(odir):     83(ptr) Variable Function
-         94(otw):     93(ptr) Variable Function
-         96(wto):     93(ptr) Variable Function
-         99(cid):     98(ptr) Variable Function
-        101(iid):     98(ptr) Variable Function
-        103(pid):     98(ptr) Variable Function
-        105(gid):     98(ptr) Variable Function
-      108(hkind):    107(ptr) Variable Function
-     112(handle):    111(ptr) Variable Function
-        114(rid):    107(ptr) Variable Function
-                              Store 9(attr) 11
-              19:     18(ptr) AccessChain 14 16
-                              Store 19 17
-              26:          23 Load 25(as)
-                              HitObjectTraceRayNV 22(hObj) 26 28 28 28 28 28 31 30 32 10 36(payload)
-              37:          23 Load 25(as)
-                              HitObjectTraceRayMotionNV 22(hObj) 37 28 28 28 28 28 31 30 32 10 38 42
-              43:          23 Load 25(as)
-                              HitObjectRecordHitNV 22(hObj) 43 33 33 33 44 44 44 32 10 45 17 9(attr)
-              46:          23 Load 25(as)
-                              HitObjectRecordHitMotionNV 22(hObj) 46 33 33 33 44 44 44 32 10 45 17 47 9(attr)
-              49:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexNV 48(hObjHit) 49 33 33 33 44 44 32 10 45 17 14
-              51:          23 Load 25(as)
-                              HitObjectRecordHitWithIndexMotionNV 48(hObjHit) 51 33 33 33 44 44 32 10 45 17 47 14
-                              HitObjectRecordEmptyNV 52(hObjNop)
-                              HitObjectRecordMissNV 53(hObjMiss) 28 31 17 55 56
-                              HitObjectRecordMissMotionNV 53(hObjMiss) 28 31 17 55 56 57
-                              HitObjectExecuteShaderNV 48(hObjHit) 42
-              59:    58(bool) HitObjectIsHitNV 22(hObj)
-                              SelectionMerge 61 None
-                              BranchConditional 59 60 67
-              60:               Label
-              66:     65(ptr)   AccessChain 64 16
-                                Store 66 10
-                                Branch 61
-              67:               Label
-              68:    58(bool)   HitObjectIsMissNV 22(hObj)
-                                SelectionMerge 70 None
-                                BranchConditional 68 69 72
-              69:                 Label
-              71:     65(ptr)     AccessChain 64 16
-                                  Store 71 17
-                                  Branch 70
-              72:                 Label
-              73:    58(bool)     HitObjectIsEmptyNV 22(hObj)
-                                  SelectionMerge 75 None
-                                  BranchConditional 73 74 75
-              74:                   Label
-              77:     65(ptr)       AccessChain 64 16
-                                    Store 77 76
-                                    Branch 75
-              75:                 Label
-                                  Branch 70
-              70:               Label
-                                Branch 61
-              61:             Label
-              80:    6(float) HitObjectGetRayTMinNV 48(hObjHit)
-                              Store 79(tmin) 80
-              82:    6(float) HitObjectGetRayTMaxNV 48(hObjHit)
-                              Store 81(tmax) 82
-              85:   29(fvec3) HitObjectGetWorldRayOriginNV 48(hObjHit)
-                              Store 84(orig) 85
-              87:   29(fvec3) HitObjectGetWorldRayDirectionNV 48(hObjHit)
-                              Store 86(dir) 87
-              89:   29(fvec3) HitObjectGetObjectRayOriginNV 48(hObjHit)
-                              Store 88(oorig) 89
-              91:   29(fvec3) HitObjectGetObjectRayDirectionNV 48(hObjHit)
-                              Store 90(odir) 91
-              95:          92 HitObjectGetObjectToWorldNV 48(hObjHit)
-                              Store 94(otw) 95
-              97:          92 HitObjectGetWorldToObjectNV 48(hObjHit)
-                              Store 96(wto) 97
-             100:     15(int) HitObjectGetInstanceCustomIndexNV 53(hObjMiss)
-                              Store 99(cid) 100
-             102:     15(int) HitObjectGetInstanceIdNV 52(hObjNop)
-                              Store 101(iid) 102
-             104:     15(int) HitObjectGetPrimitiveIndexNV 22(hObj)
-                              Store 103(pid) 104
-             106:     15(int) HitObjectGetGeometryIndexNV 22(hObj)
-                              Store 105(gid) 106
-             109:     27(int) HitObjectGetFrontFaceNV 22(hObj)
-                              Store 108(hkind) 109
-                              HitObjectGetAttributesNV 22(hObj) 9(attr)
-             113:  110(ivec2) HitObjectGetShaderRecordBufferHandleNV 22(hObj)
-                              Store 112(handle) 113
-             115:     27(int) HitObjectGetShaderBindingTableRecordIndexNV 22(hObj)
-                              Store 114(rid) 115
-                              Return
-                              FunctionEnd
diff --git a/Test/baseResults/spv.offsets.frag.out b/Test/baseResults/spv.offsets.frag.out
index d753f2f..a1a9f31 100644
--- a/Test/baseResults/spv.offsets.frag.out
+++ b/Test/baseResults/spv.offsets.frag.out
@@ -1,6 +1,6 @@
 spv.offsets.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 15
 
                               Capability Shader
diff --git a/Test/baseResults/spv.paramMemory.420.frag.out b/Test/baseResults/spv.paramMemory.420.frag.out
index bc11df4..4cdc35f 100644
--- a/Test/baseResults/spv.paramMemory.420.frag.out
+++ b/Test/baseResults/spv.paramMemory.420.frag.out
@@ -1,7 +1,7 @@
 spv.paramMemory.420.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 69
 
                               Capability Shader
diff --git a/Test/baseResults/spv.paramMemory.frag.out b/Test/baseResults/spv.paramMemory.frag.out
index ebb2ccb..a535cd3 100644
--- a/Test/baseResults/spv.paramMemory.frag.out
+++ b/Test/baseResults/spv.paramMemory.frag.out
@@ -1,7 +1,7 @@
 spv.paramMemory.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 64
 
                               Capability Shader
diff --git a/Test/baseResults/spv.perprimitiveNV.frag.out b/Test/baseResults/spv.perprimitiveNV.frag.out
index 079a5f4..2a37f2b 100644
--- a/Test/baseResults/spv.perprimitiveNV.frag.out
+++ b/Test/baseResults/spv.perprimitiveNV.frag.out
@@ -1,6 +1,6 @@
 spv.perprimitiveNV.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.pp.line.frag.out b/Test/baseResults/spv.pp.line.frag.out
index 7218254..c103b7b 100644
--- a/Test/baseResults/spv.pp.line.frag.out
+++ b/Test/baseResults/spv.pp.line.frag.out
@@ -3,7 +3,7 @@
 WARNING: spv.pp.line.frag:8: varying deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 84
 
                               Capability Shader
diff --git a/Test/baseResults/spv.precise.tesc.out b/Test/baseResults/spv.precise.tesc.out
index 84617ca..e13c612 100644
--- a/Test/baseResults/spv.precise.tesc.out
+++ b/Test/baseResults/spv.precise.tesc.out
@@ -1,6 +1,6 @@
 spv.precise.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 72
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.precise.tese.out b/Test/baseResults/spv.precise.tese.out
index 6fe183d..7db4ed0 100644
--- a/Test/baseResults/spv.precise.tese.out
+++ b/Test/baseResults/spv.precise.tese.out
@@ -1,6 +1,6 @@
 spv.precise.tese
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 119
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out
index 8144dfb..1d31230 100644
--- a/Test/baseResults/spv.precision.frag.out
+++ b/Test/baseResults/spv.precision.frag.out
@@ -1,6 +1,6 @@
 spv.precision.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 165
 
                               Capability Shader
diff --git a/Test/baseResults/spv.precisionArgs.frag.out b/Test/baseResults/spv.precisionArgs.frag.out
index a35b1d3..ae54a58 100644
--- a/Test/baseResults/spv.precisionArgs.frag.out
+++ b/Test/baseResults/spv.precisionArgs.frag.out
@@ -1,6 +1,6 @@
 spv.precisionArgs.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 83
 
                               Capability Shader
diff --git a/Test/baseResults/spv.precisionNonESSamp.frag.out b/Test/baseResults/spv.precisionNonESSamp.frag.out
index 40ca536..c4cd1eb 100644
--- a/Test/baseResults/spv.precisionNonESSamp.frag.out
+++ b/Test/baseResults/spv.precisionNonESSamp.frag.out
@@ -1,6 +1,6 @@
 spv.precisionNonESSamp.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 47
 
                               Capability Shader
diff --git a/Test/baseResults/spv.precisionTexture.frag.out b/Test/baseResults/spv.precisionTexture.frag.out
index e46b2d7..d5e21b6 100644
--- a/Test/baseResults/spv.precisionTexture.frag.out
+++ b/Test/baseResults/spv.precisionTexture.frag.out
@@ -1,6 +1,6 @@
 spv.precisionTexture.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 66
 
                               Capability Shader
diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out
index b1f2d5e..5fd6b37 100644
--- a/Test/baseResults/spv.prepost.frag.out
+++ b/Test/baseResults/spv.prepost.frag.out
@@ -1,6 +1,6 @@
 spv.prepost.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 94
 
                               Capability Shader
diff --git a/Test/baseResults/spv.privateVariableTypes.frag.out b/Test/baseResults/spv.privateVariableTypes.frag.out
index b09062a..d5ad68a 100644
--- a/Test/baseResults/spv.privateVariableTypes.frag.out
+++ b/Test/baseResults/spv.privateVariableTypes.frag.out
@@ -1,6 +1,6 @@
 spv.privateVariableTypes.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.pushConstant.vert.out b/Test/baseResults/spv.pushConstant.vert.out
index f6df47d..888d134 100644
--- a/Test/baseResults/spv.pushConstant.vert.out
+++ b/Test/baseResults/spv.pushConstant.vert.out
@@ -1,6 +1,6 @@
 spv.pushConstant.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.pushConstantAnon.vert.out b/Test/baseResults/spv.pushConstantAnon.vert.out
index ca7d345..75efdbc 100644
--- a/Test/baseResults/spv.pushConstantAnon.vert.out
+++ b/Test/baseResults/spv.pushConstantAnon.vert.out
@@ -1,6 +1,6 @@
 spv.pushConstantAnon.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out
index 0f0f347..4180e17 100644
--- a/Test/baseResults/spv.qualifiers.vert.out
+++ b/Test/baseResults/spv.qualifiers.vert.out
@@ -1,6 +1,6 @@
 spv.qualifiers.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index 1e18387..1e38661 100644
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -1,7 +1,7 @@
 spv.queryL.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 224
 
                               Capability Shader
diff --git a/Test/baseResults/spv.queueFamilyScope.comp.out b/Test/baseResults/spv.queueFamilyScope.comp.out
index 49a59a3..9c239df 100644
--- a/Test/baseResults/spv.queueFamilyScope.comp.out
+++ b/Test/baseResults/spv.queueFamilyScope.comp.out
@@ -1,6 +1,6 @@
 spv.queueFamilyScope.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.rankShift.comp.out b/Test/baseResults/spv.rankShift.comp.out
index cecde79..1a725c1 100644
--- a/Test/baseResults/spv.rankShift.comp.out
+++ b/Test/baseResults/spv.rankShift.comp.out
@@ -1,6 +1,6 @@
 spv.rankShift.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out
index 61d920c..26b149b 100644
--- a/Test/baseResults/spv.register.autoassign-2.frag.out
+++ b/Test/baseResults/spv.register.autoassign-2.frag.out
@@ -1,6 +1,6 @@
 spv.register.autoassign-2.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 47
 
                               Capability Shader
diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out
index b4db04e..e347ce2 100644
--- a/Test/baseResults/spv.register.autoassign.frag.out
+++ b/Test/baseResults/spv.register.autoassign.frag.out
@@ -1,6 +1,6 @@
 spv.register.autoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 155
 
                               Capability Shader
diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
index 84a439a..4381dab 100644
--- a/Test/baseResults/spv.register.autoassign.rangetest.frag.out
+++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
@@ -3,7 +3,7 @@
 INTERNAL ERROR: mapped binding out of range: g_tScene
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 52
 
                               Capability Shader
diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out
index 8c8cd3c..ed8d507 100644
--- a/Test/baseResults/spv.register.noautoassign.frag.out
+++ b/Test/baseResults/spv.register.noautoassign.frag.out
@@ -1,6 +1,6 @@
 spv.register.noautoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 155
 
                               Capability Shader
diff --git a/Test/baseResults/spv.register.subpass.frag.out b/Test/baseResults/spv.register.subpass.frag.out
index 7c69c91..acd447d 100644
--- a/Test/baseResults/spv.register.subpass.frag.out
+++ b/Test/baseResults/spv.register.subpass.frag.out
@@ -1,6 +1,6 @@
 spv.register.subpass.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out
index 0c46493..27db336 100644
--- a/Test/baseResults/spv.rw.autoassign.frag.out
+++ b/Test/baseResults/spv.rw.autoassign.frag.out
@@ -1,6 +1,6 @@
 spv.rw.autoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 45
 
                               Capability Shader
diff --git a/Test/baseResults/spv.sample.frag.out b/Test/baseResults/spv.sample.frag.out
index 631a559..f43fc98 100644
--- a/Test/baseResults/spv.sample.frag.out
+++ b/Test/baseResults/spv.sample.frag.out
@@ -1,6 +1,6 @@
 spv.sample.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 13
 
                               Capability Shader
diff --git a/Test/baseResults/spv.sampleId.frag.out b/Test/baseResults/spv.sampleId.frag.out
index 7f3232d..8f9bc38 100644
--- a/Test/baseResults/spv.sampleId.frag.out
+++ b/Test/baseResults/spv.sampleId.frag.out
@@ -1,6 +1,6 @@
 spv.sampleId.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
index 6f22c5a..9b401d8 100644
--- a/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
+++ b/Test/baseResults/spv.sampleMaskOverrideCoverage.frag.out
@@ -1,6 +1,6 @@
 spv.sampleMaskOverrideCoverage.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.samplePosition.frag.out b/Test/baseResults/spv.samplePosition.frag.out
index 6c98add..8012830 100644
--- a/Test/baseResults/spv.samplePosition.frag.out
+++ b/Test/baseResults/spv.samplePosition.frag.out
@@ -1,6 +1,6 @@
 spv.samplePosition.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 30
 
                               Capability Shader
diff --git a/Test/baseResults/spv.samplerlessTextureFunctions.frag.out b/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
index 4479912..c2c431d 100644
--- a/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
+++ b/Test/baseResults/spv.samplerlessTextureFunctions.frag.out
@@ -1,6 +1,6 @@
 spv.samplerlessTextureFunctions.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 51
 
                               Capability Shader
diff --git a/Test/baseResults/spv.scalarlayout.frag.out b/Test/baseResults/spv.scalarlayout.frag.out
index 977f06b..e08721f 100644
--- a/Test/baseResults/spv.scalarlayout.frag.out
+++ b/Test/baseResults/spv.scalarlayout.frag.out
@@ -1,6 +1,6 @@
 spv.scalarlayout.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.scalarlayoutfloat16.frag.out b/Test/baseResults/spv.scalarlayoutfloat16.frag.out
index 93c0d2a..4f22730 100644
--- a/Test/baseResults/spv.scalarlayoutfloat16.frag.out
+++ b/Test/baseResults/spv.scalarlayoutfloat16.frag.out
@@ -1,6 +1,6 @@
 spv.scalarlayoutfloat16.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out
index b960934..d31f897 100644
--- a/Test/baseResults/spv.separate.frag.out
+++ b/Test/baseResults/spv.separate.frag.out
@@ -1,7 +1,7 @@
 spv.separate.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 319
 
                               Capability Shader
diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out
index b311c70..245b4bd 100644
--- a/Test/baseResults/spv.set.vert.out
+++ b/Test/baseResults/spv.set.vert.out
@@ -1,6 +1,6 @@
 spv.set.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out
index 143b2e9..2a0106e 100644
--- a/Test/baseResults/spv.shaderBallot.comp.out
+++ b/Test/baseResults/spv.shaderBallot.comp.out
@@ -1,6 +1,6 @@
 spv.shaderBallot.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 397
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderBallotAMD.comp.out b/Test/baseResults/spv.shaderBallotAMD.comp.out
index 2d8ad55..9ea5ba0 100644
--- a/Test/baseResults/spv.shaderBallotAMD.comp.out
+++ b/Test/baseResults/spv.shaderBallotAMD.comp.out
@@ -1,6 +1,6 @@
 spv.shaderBallotAMD.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1343
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderDrawParams.vert.out b/Test/baseResults/spv.shaderDrawParams.vert.out
index a84c2fe..5baabbf 100644
--- a/Test/baseResults/spv.shaderDrawParams.vert.out
+++ b/Test/baseResults/spv.shaderDrawParams.vert.out
@@ -1,6 +1,6 @@
 spv.shaderDrawParams.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 53
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderFragMaskAMD.frag.out b/Test/baseResults/spv.shaderFragMaskAMD.frag.out
index 3b46114..ab48e04 100644
--- a/Test/baseResults/spv.shaderFragMaskAMD.frag.out
+++ b/Test/baseResults/spv.shaderFragMaskAMD.frag.out
@@ -1,6 +1,6 @@
 spv.shaderFragMaskAMD.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 80
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderGroupVote.comp.out b/Test/baseResults/spv.shaderGroupVote.comp.out
index 0724170..4c45e33 100644
--- a/Test/baseResults/spv.shaderGroupVote.comp.out
+++ b/Test/baseResults/spv.shaderGroupVote.comp.out
@@ -1,6 +1,6 @@
 spv.shaderGroupVote.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderImageFootprint.frag.out b/Test/baseResults/spv.shaderImageFootprint.frag.out
index 743fd36..ea8873c 100644
--- a/Test/baseResults/spv.shaderImageFootprint.frag.out
+++ b/Test/baseResults/spv.shaderImageFootprint.frag.out
@@ -1,6 +1,6 @@
 spv.shaderImageFootprint.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 622
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shaderStencilExport.frag.out b/Test/baseResults/spv.shaderStencilExport.frag.out
index ca85473..9bb2178 100644
--- a/Test/baseResults/spv.shaderStencilExport.frag.out
+++ b/Test/baseResults/spv.shaderStencilExport.frag.out
@@ -1,6 +1,6 @@
 spv.shaderStencilExport.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 10
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shadingRate.frag.out b/Test/baseResults/spv.shadingRate.frag.out
index 86079ce..866ae60 100644
--- a/Test/baseResults/spv.shadingRate.frag.out
+++ b/Test/baseResults/spv.shadingRate.frag.out
@@ -1,6 +1,6 @@
 spv.shadingRate.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 21
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out
index 6f232a0..03f7546 100644
--- a/Test/baseResults/spv.shiftOps.frag.out
+++ b/Test/baseResults/spv.shiftOps.frag.out
@@ -1,6 +1,6 @@
 spv.shiftOps.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 38
 
                               Capability Shader
diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out
index 017c88d..3c706f7 100644
--- a/Test/baseResults/spv.shortCircuit.frag.out
+++ b/Test/baseResults/spv.shortCircuit.frag.out
@@ -1,6 +1,6 @@
 spv.shortCircuit.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 147
 
                               Capability Shader
diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out
index 8e879bb..bda91b7 100644
--- a/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -1,6 +1,6 @@
 spv.simpleFunctionCall.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 19
 
                               Capability Shader
diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out
index e1accbf..cc9b2b2 100644
--- a/Test/baseResults/spv.simpleMat.vert.out
+++ b/Test/baseResults/spv.simpleMat.vert.out
@@ -2,7 +2,7 @@
 WARNING: 0:3: varying deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/spv.smBuiltins.frag.out b/Test/baseResults/spv.smBuiltins.frag.out
index 1619cf6..3fafa04 100644
--- a/Test/baseResults/spv.smBuiltins.frag.out
+++ b/Test/baseResults/spv.smBuiltins.frag.out
@@ -1,6 +1,6 @@
 spv.smBuiltins.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.smBuiltins.vert.out b/Test/baseResults/spv.smBuiltins.vert.out
index c03c3cd..91ad637 100644
--- a/Test/baseResults/spv.smBuiltins.vert.out
+++ b/Test/baseResults/spv.smBuiltins.vert.out
@@ -1,6 +1,6 @@
 spv.smBuiltins.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 29
 
                               Capability Shader
diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out
index 84ca757..bf44b81 100644
--- a/Test/baseResults/spv.sparseTexture.frag.out
+++ b/Test/baseResults/spv.sparseTexture.frag.out
@@ -1,7 +1,7 @@
 spv.sparseTexture.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 442
 
                               Capability Shader
diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out
index e56297c..f42326d 100644
--- a/Test/baseResults/spv.sparseTextureClamp.frag.out
+++ b/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -1,7 +1,7 @@
 spv.sparseTextureClamp.frag
 Validation failed
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 360
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConst.vert.out b/Test/baseResults/spv.specConst.vert.out
index a2e234b..a510dc9 100644
--- a/Test/baseResults/spv.specConst.vert.out
+++ b/Test/baseResults/spv.specConst.vert.out
@@ -1,6 +1,6 @@
 spv.specConst.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstant.comp.out b/Test/baseResults/spv.specConstant.comp.out
index bfe7114..a4e769f 100644
--- a/Test/baseResults/spv.specConstant.comp.out
+++ b/Test/baseResults/spv.specConstant.comp.out
@@ -1,6 +1,6 @@
 spv.specConstant.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstant.float16.comp.out b/Test/baseResults/spv.specConstant.float16.comp.out
index 3381fc7..be02057 100644
--- a/Test/baseResults/spv.specConstant.float16.comp.out
+++ b/Test/baseResults/spv.specConstant.float16.comp.out
@@ -1,6 +1,6 @@
 spv.specConstant.float16.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstant.int16.comp.out b/Test/baseResults/spv.specConstant.int16.comp.out
index 17f385b..7bb4c8f 100644
--- a/Test/baseResults/spv.specConstant.int16.comp.out
+++ b/Test/baseResults/spv.specConstant.int16.comp.out
@@ -1,6 +1,6 @@
 spv.specConstant.int16.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstant.int8.comp.out b/Test/baseResults/spv.specConstant.int8.comp.out
index c906d71..0ab3bdc 100644
--- a/Test/baseResults/spv.specConstant.int8.comp.out
+++ b/Test/baseResults/spv.specConstant.int8.comp.out
@@ -1,6 +1,6 @@
 spv.specConstant.int8.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out
index cc126ab..f7d4381 100644
--- a/Test/baseResults/spv.specConstant.vert.out
+++ b/Test/baseResults/spv.specConstant.vert.out
@@ -1,6 +1,6 @@
 spv.specConstant.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 81
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstantComposite.vert.out b/Test/baseResults/spv.specConstantComposite.vert.out
index ce9ce06..15777d8 100644
--- a/Test/baseResults/spv.specConstantComposite.vert.out
+++ b/Test/baseResults/spv.specConstantComposite.vert.out
@@ -1,6 +1,6 @@
 spv.specConstantComposite.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specConstantOperations.vert.out b/Test/baseResults/spv.specConstantOperations.vert.out
index cb1f739..5366460 100644
--- a/Test/baseResults/spv.specConstantOperations.vert.out
+++ b/Test/baseResults/spv.specConstantOperations.vert.out
@@ -1,6 +1,6 @@
 spv.specConstantOperations.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 162
 
                               Capability Shader
diff --git a/Test/baseResults/spv.specTexture.frag.out b/Test/baseResults/spv.specTexture.frag.out
index b599e35..4ca488e 100644
--- a/Test/baseResults/spv.specTexture.frag.out
+++ b/Test/baseResults/spv.specTexture.frag.out
@@ -1,6 +1,6 @@
 spv.specTexture.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ssbo.autoassign.frag.out b/Test/baseResults/spv.ssbo.autoassign.frag.out
index 3538105..e2db863 100644
--- a/Test/baseResults/spv.ssbo.autoassign.frag.out
+++ b/Test/baseResults/spv.ssbo.autoassign.frag.out
@@ -1,6 +1,6 @@
 spv.ssbo.autoassign.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 99
 
                               Capability Shader
diff --git a/Test/baseResults/spv.ssboAlias.frag.out b/Test/baseResults/spv.ssboAlias.frag.out
index 0a5a12b..cdcd222 100644
--- a/Test/baseResults/spv.ssboAlias.frag.out
+++ b/Test/baseResults/spv.ssboAlias.frag.out
@@ -1,6 +1,6 @@
 spv.ssboAlias.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 44
 
                               Capability Shader
diff --git a/Test/baseResults/spv.stereoViewRendering.tesc.out b/Test/baseResults/spv.stereoViewRendering.tesc.out
index 100b553..f01e53b 100644
--- a/Test/baseResults/spv.stereoViewRendering.tesc.out
+++ b/Test/baseResults/spv.stereoViewRendering.tesc.out
@@ -1,6 +1,6 @@
 spv.stereoViewRendering.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.stereoViewRendering.vert.out b/Test/baseResults/spv.stereoViewRendering.vert.out
index 530d75e..e74921a 100644
--- a/Test/baseResults/spv.stereoViewRendering.vert.out
+++ b/Test/baseResults/spv.stereoViewRendering.vert.out
@@ -1,6 +1,6 @@
 spv.stereoViewRendering.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/spv.storageBuffer.vert.out b/Test/baseResults/spv.storageBuffer.vert.out
index fdbb4db..2411d2f 100644
--- a/Test/baseResults/spv.storageBuffer.vert.out
+++ b/Test/baseResults/spv.storageBuffer.vert.out
@@ -1,6 +1,6 @@
 spv.storageBuffer.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out
index a0cfb54..8e82cac 100644
--- a/Test/baseResults/spv.structAssignment.frag.out
+++ b/Test/baseResults/spv.structAssignment.frag.out
@@ -3,7 +3,7 @@
          "precision mediump int; precision highp float;" 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out
index a528a59..94fc4e2 100644
--- a/Test/baseResults/spv.structDeref.frag.out
+++ b/Test/baseResults/spv.structDeref.frag.out
@@ -1,6 +1,6 @@
 spv.structDeref.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 123
 
                               Capability Shader
diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out
index 6b39c29..00fed0e 100644
--- a/Test/baseResults/spv.structure.frag.out
+++ b/Test/baseResults/spv.structure.frag.out
@@ -1,6 +1,6 @@
 spv.structure.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroup.frag.out b/Test/baseResults/spv.subgroup.frag.out
index a882a22..a3e427f 100644
--- a/Test/baseResults/spv.subgroup.frag.out
+++ b/Test/baseResults/spv.subgroup.frag.out
@@ -1,6 +1,6 @@
 spv.subgroup.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 17
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroup.geom.out b/Test/baseResults/spv.subgroup.geom.out
index 3340595..27f05b2 100644
--- a/Test/baseResults/spv.subgroup.geom.out
+++ b/Test/baseResults/spv.subgroup.geom.out
@@ -1,6 +1,6 @@
 spv.subgroup.geom
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Geometry
diff --git a/Test/baseResults/spv.subgroup.tesc.out b/Test/baseResults/spv.subgroup.tesc.out
index aaac4b8..8322a4a 100644
--- a/Test/baseResults/spv.subgroup.tesc.out
+++ b/Test/baseResults/spv.subgroup.tesc.out
@@ -1,6 +1,6 @@
 spv.subgroup.tesc
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.subgroup.tese.out b/Test/baseResults/spv.subgroup.tese.out
index f989981..360f98b 100644
--- a/Test/baseResults/spv.subgroup.tese.out
+++ b/Test/baseResults/spv.subgroup.tese.out
@@ -1,6 +1,6 @@
 spv.subgroup.tese
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.subgroup.vert.out b/Test/baseResults/spv.subgroup.vert.out
index 6add1c7..6de8a0a 100644
--- a/Test/baseResults/spv.subgroup.vert.out
+++ b/Test/baseResults/spv.subgroup.vert.out
@@ -1,6 +1,6 @@
 spv.subgroup.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 26
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupArithmetic.comp.out b/Test/baseResults/spv.subgroupArithmetic.comp.out
index bd71fc7..87bfa31 100644
--- a/Test/baseResults/spv.subgroupArithmetic.comp.out
+++ b/Test/baseResults/spv.subgroupArithmetic.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupArithmetic.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 2386
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupBallot.comp.out b/Test/baseResults/spv.subgroupBallot.comp.out
index 51cb7ac..65cfa7a 100644
--- a/Test/baseResults/spv.subgroupBallot.comp.out
+++ b/Test/baseResults/spv.subgroupBallot.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupBallot.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 437
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupBasic.comp.out b/Test/baseResults/spv.subgroupBasic.comp.out
index 51eae75..fb9fa0c 100644
--- a/Test/baseResults/spv.subgroupBasic.comp.out
+++ b/Test/baseResults/spv.subgroupBasic.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupBasic.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupClustered.comp.out b/Test/baseResults/spv.subgroupClustered.comp.out
index 2529eef..a2e486d 100644
--- a/Test/baseResults/spv.subgroupClustered.comp.out
+++ b/Test/baseResults/spv.subgroupClustered.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupClustered.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 838
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
index 51c2a5e..828ce61 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesArithmetic.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 4218
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
index 0a706a5..60f01bc 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesBallot.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 498
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
index f876c5a..98a7a89 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesClustered.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1458
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
index f2cb8cb..47576d9 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesPartitioned.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1743
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
index 8aa7c12..f385545 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesQuad.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 918
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
index 0051bd7..eaea708 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesShuffle.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 554
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
index 46244ba..8665c46 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesShuffleRelative.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 554
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out b/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
index a53847c..6fde1f9 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesVote.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupExtendedTypesVote.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 277
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupPartitioned.comp.out b/Test/baseResults/spv.subgroupPartitioned.comp.out
index 922d393..0e7b7ef 100644
--- a/Test/baseResults/spv.subgroupPartitioned.comp.out
+++ b/Test/baseResults/spv.subgroupPartitioned.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupPartitioned.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 2807
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupQuad.comp.out b/Test/baseResults/spv.subgroupQuad.comp.out
index b418148..143d01d 100644
--- a/Test/baseResults/spv.subgroupQuad.comp.out
+++ b/Test/baseResults/spv.subgroupQuad.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupQuad.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 696
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupShuffle.comp.out b/Test/baseResults/spv.subgroupShuffle.comp.out
index d54e8ae..02cf89f 100644
--- a/Test/baseResults/spv.subgroupShuffle.comp.out
+++ b/Test/baseResults/spv.subgroupShuffle.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupShuffle.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 420
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/Test/baseResults/spv.subgroupShuffleRelative.comp.out
index 6bae808..e8486b6 100644
--- a/Test/baseResults/spv.subgroupShuffleRelative.comp.out
+++ b/Test/baseResults/spv.subgroupShuffleRelative.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupShuffleRelative.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 420
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupSizeARB.frag.out b/Test/baseResults/spv.subgroupSizeARB.frag.out
index 5eeb0c0..7ce7818 100644
--- a/Test/baseResults/spv.subgroupSizeARB.frag.out
+++ b/Test/baseResults/spv.subgroupSizeARB.frag.out
@@ -1,6 +1,6 @@
 spv.subgroupSizeARB.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 12
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupUniformControlFlow.vert.out b/Test/baseResults/spv.subgroupUniformControlFlow.vert.out
index a189186..b7fce5a 100644
--- a/Test/baseResults/spv.subgroupUniformControlFlow.vert.out
+++ b/Test/baseResults/spv.subgroupUniformControlFlow.vert.out
@@ -2,7 +2,7 @@
 WARNING: 0:7: '' : attribute with arguments not recognized, skipping 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 6
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subgroupVote.comp.out b/Test/baseResults/spv.subgroupVote.comp.out
index fa0a01f..ad8ffaa 100644
--- a/Test/baseResults/spv.subgroupVote.comp.out
+++ b/Test/baseResults/spv.subgroupVote.comp.out
@@ -1,6 +1,6 @@
 spv.subgroupVote.comp
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 216
 
                               Capability Shader
diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out
index bf49b08..6b534a6 100644
--- a/Test/baseResults/spv.subpass.frag.out
+++ b/Test/baseResults/spv.subpass.frag.out
@@ -1,6 +1,6 @@
 spv.subpass.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 67
 
                               Capability Shader
diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out
index 4e7db4d..9c68657 100644
--- a/Test/baseResults/spv.switch.frag.out
+++ b/Test/baseResults/spv.switch.frag.out
@@ -4,7 +4,7 @@
 WARNING: 0:139: 'switch' : last case/default label not followed by statements 
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 269
 
                               Capability Shader
diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index f42a34b..2aa31e8 100644
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -1,6 +1,6 @@
 spv.swizzle.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 117
 
                               Capability Shader
diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out
index 32a0132..8d09934 100644
--- a/Test/baseResults/spv.swizzleInversion.frag.out
+++ b/Test/baseResults/spv.swizzleInversion.frag.out
@@ -1,6 +1,6 @@
 spv.swizzleInversion.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 46
 
                               Capability Shader
diff --git a/Test/baseResults/spv.terminate.frag.out b/Test/baseResults/spv.terminate.frag.out
index d76a487..39cb151 100755
--- a/Test/baseResults/spv.terminate.frag.out
+++ b/Test/baseResults/spv.terminate.frag.out
@@ -1,6 +1,6 @@
 spv.terminate.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 7
 
                               Capability Shader
diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out
index c5d6384..fddcdb8 100644
--- a/Test/baseResults/spv.test.frag.out
+++ b/Test/baseResults/spv.test.frag.out
@@ -1,6 +1,6 @@
 spv.test.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 55
 
                               Capability Shader
diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out
index 350ee78..3eb6435 100644
--- a/Test/baseResults/spv.test.vert.out
+++ b/Test/baseResults/spv.test.vert.out
@@ -2,7 +2,7 @@
 WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 24
 
                               Capability Shader
diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index dc1970a..841bbd3 100644
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -4,7 +4,7 @@
 WARNING: 0:12: varying deprecated in version 130; may be removed in future release
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 305
 
                               Capability Shader
diff --git a/Test/baseResults/spv.texture.sampler.transform.frag.out b/Test/baseResults/spv.texture.sampler.transform.frag.out
index 4e9534e..a297ea7 100644
--- a/Test/baseResults/spv.texture.sampler.transform.frag.out
+++ b/Test/baseResults/spv.texture.sampler.transform.frag.out
@@ -1,6 +1,6 @@
 spv.texture.sampler.transform.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 20
 
                               Capability Shader
diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index 35053f3..544a0f3 100644
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -1,6 +1,6 @@
 spv.texture.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 150
 
                               Capability Shader
diff --git a/Test/baseResults/spv.textureBuffer.vert.out b/Test/baseResults/spv.textureBuffer.vert.out
index f5b271f..d18c656 100644
--- a/Test/baseResults/spv.textureBuffer.vert.out
+++ b/Test/baseResults/spv.textureBuffer.vert.out
@@ -1,6 +1,6 @@
 spv.textureBuffer.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 42
 
                               Capability Shader
diff --git a/Test/baseResults/spv.textureGatherBiasLod.frag.out b/Test/baseResults/spv.textureGatherBiasLod.frag.out
index f47e16a..3a9bb80 100644
--- a/Test/baseResults/spv.textureGatherBiasLod.frag.out
+++ b/Test/baseResults/spv.textureGatherBiasLod.frag.out
@@ -1,6 +1,6 @@
 spv.textureGatherBiasLod.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 298
 
                               Capability Shader
diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index 6a0e0f0..3e35da2 100644
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -1,6 +1,6 @@
 spv.types.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 260
 
                               Capability Shader
diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out
index a78acae..7dbc3b3 100644
--- a/Test/baseResults/spv.uint.frag.out
+++ b/Test/baseResults/spv.uint.frag.out
@@ -1,6 +1,6 @@
 spv.uint.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 213
 
                               Capability Shader
diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index 09cd353..fa66f2b 100644
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -1,6 +1,6 @@
 spv.uniformArray.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 60
 
                               Capability Shader
diff --git a/Test/baseResults/spv.uniformInitializer.frag.out b/Test/baseResults/spv.uniformInitializer.frag.out
index abebf62..63595ae 100644
--- a/Test/baseResults/spv.uniformInitializer.frag.out
+++ b/Test/baseResults/spv.uniformInitializer.frag.out
@@ -1,6 +1,6 @@
 spv.uniformInitializer.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 16
 
                               Capability Shader
diff --git a/Test/baseResults/spv.uniformInitializerStruct.frag.out b/Test/baseResults/spv.uniformInitializerStruct.frag.out
index 058bc34..5ce854d 100644
--- a/Test/baseResults/spv.uniformInitializerStruct.frag.out
+++ b/Test/baseResults/spv.uniformInitializerStruct.frag.out
@@ -1,6 +1,6 @@
 spv.uniformInitializerStruct.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 63
 
                               Capability Shader
diff --git a/Test/baseResults/spv.unit1.frag.out b/Test/baseResults/spv.unit1.frag.out
index b4de7bd..02ddfec 100644
--- a/Test/baseResults/spv.unit1.frag.out
+++ b/Test/baseResults/spv.unit1.frag.out
@@ -193,7 +193,7 @@
 0:?     'h3' ( global highp float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 69
 
                               Capability Shader
diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out
index f78119c..ee57d43 100644
--- a/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -1,6 +1,6 @@
 spv.variableArrayIndex.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 93
 
                               Capability Shader
diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out
index 9d001bc..1e6334a 100644
--- a/Test/baseResults/spv.varyingArray.frag.out
+++ b/Test/baseResults/spv.varyingArray.frag.out
@@ -1,6 +1,6 @@
 spv.varyingArray.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 61
 
                               Capability Shader
diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out
index 00135f6..ac9d192 100644
--- a/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -1,6 +1,6 @@
 spv.varyingArrayIndirect.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 70
 
                               Capability Shader
diff --git a/Test/baseResults/spv.vecMatConstruct.frag.out b/Test/baseResults/spv.vecMatConstruct.frag.out
index 5f3a233..bfe5ae7 100644
--- a/Test/baseResults/spv.vecMatConstruct.frag.out
+++ b/Test/baseResults/spv.vecMatConstruct.frag.out
@@ -1,6 +1,6 @@
 spv.vecMatConstruct.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 62
 
                               Capability Shader
diff --git a/Test/baseResults/spv.viewportArray2.tesc.out b/Test/baseResults/spv.viewportArray2.tesc.out
index f719a97..e95ada4 100644
--- a/Test/baseResults/spv.viewportArray2.tesc.out
+++ b/Test/baseResults/spv.viewportArray2.tesc.out
@@ -1,6 +1,6 @@
 spv.viewportArray2.tesc
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 23
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.viewportArray2.vert.out b/Test/baseResults/spv.viewportArray2.vert.out
index d916b4d..cf29cd7 100644
--- a/Test/baseResults/spv.viewportArray2.vert.out
+++ b/Test/baseResults/spv.viewportArray2.vert.out
@@ -1,6 +1,6 @@
 spv.viewportArray2.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 19
 
                               Capability Shader
diff --git a/Test/baseResults/spv.viewportindex.tese.out b/Test/baseResults/spv.viewportindex.tese.out
index 46b1faa..12a30cf 100644
--- a/Test/baseResults/spv.viewportindex.tese.out
+++ b/Test/baseResults/spv.viewportindex.tese.out
@@ -1,6 +1,6 @@
 spv.viewportindex.tese
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 10
 
                               Capability Tessellation
diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out
index 4a0cc26..c77285b 100644
--- a/Test/baseResults/spv.voidFunction.frag.out
+++ b/Test/baseResults/spv.voidFunction.frag.out
@@ -1,6 +1,6 @@
 spv.voidFunction.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 43
 
                               Capability Shader
diff --git a/Test/baseResults/spv.volatileAtomic.comp.out b/Test/baseResults/spv.volatileAtomic.comp.out
index 53673d3..0364d90 100644
--- a/Test/baseResults/spv.volatileAtomic.comp.out
+++ b/Test/baseResults/spv.volatileAtomic.comp.out
@@ -1,6 +1,6 @@
 spv.volatileAtomic.comp
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 18
 
                               Capability Shader
diff --git a/Test/baseResults/spv.vulkan110.int16.frag.out b/Test/baseResults/spv.vulkan110.int16.frag.out
index d5c83d5..47388a2 100644
--- a/Test/baseResults/spv.vulkan110.int16.frag.out
+++ b/Test/baseResults/spv.vulkan110.int16.frag.out
@@ -1,6 +1,6 @@
 spv.vulkan110.int16.frag
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 535
 
                               Capability Shader
diff --git a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
index ab88c58..0774960 100644
--- a/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
+++ b/Test/baseResults/spv.vulkan110.storageBuffer.vert.out
@@ -1,6 +1,6 @@
 spv.vulkan110.storageBuffer.vert
 // Module Version 10300
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 31
 
                               Capability Shader
diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out
index 7a0bfb0..246e5fd 100644
--- a/Test/baseResults/spv.while-continue-break.vert.out
+++ b/Test/baseResults/spv.while-continue-break.vert.out
@@ -1,6 +1,6 @@
 spv.while-continue-break.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 41
 
                               Capability Shader
diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out
index 922860f..894dea1 100644
--- a/Test/baseResults/spv.while-simple.vert.out
+++ b/Test/baseResults/spv.while-simple.vert.out
@@ -1,6 +1,6 @@
 spv.while-simple.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 22
 
                               Capability Shader
diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out
index b796b29..6155f7b 100644
--- a/Test/baseResults/spv.whileLoop.frag.out
+++ b/Test/baseResults/spv.whileLoop.frag.out
@@ -1,6 +1,6 @@
 spv.whileLoop.frag
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfb.vert.out b/Test/baseResults/spv.xfb.vert.out
index 4283e20..3fdc60b 100644
--- a/Test/baseResults/spv.xfb.vert.out
+++ b/Test/baseResults/spv.xfb.vert.out
@@ -1,6 +1,6 @@
 spv.xfb.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 16
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfb2.vert.out b/Test/baseResults/spv.xfb2.vert.out
index b4b09bd..cbb8fc6 100644
--- a/Test/baseResults/spv.xfb2.vert.out
+++ b/Test/baseResults/spv.xfb2.vert.out
@@ -1,6 +1,6 @@
 spv.xfb2.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfb3.vert.out b/Test/baseResults/spv.xfb3.vert.out
index a7e8856..ef53b9a 100644
--- a/Test/baseResults/spv.xfb3.vert.out
+++ b/Test/baseResults/spv.xfb3.vert.out
@@ -1,6 +1,6 @@
 spv.xfb3.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 35
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out b/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
index eb91100..e2c6093 100644
--- a/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
+++ b/Test/baseResults/spv.xfbOffsetOnBlockMembersAssignment.vert.out
@@ -1,6 +1,6 @@
 spv.xfbOffsetOnBlockMembersAssignment.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out b/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
index 467a5ae..499ac8c 100644
--- a/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
+++ b/Test/baseResults/spv.xfbOffsetOnStructMembersAssignment.vert.out
@@ -1,6 +1,6 @@
 spv.xfbOffsetOnStructMembersAssignment.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 40
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out b/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
index 633558d..f7476c7 100644
--- a/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
+++ b/Test/baseResults/spv.xfbOverlapOffsetCheckWithBlockAndMember.vert.out
@@ -1,6 +1,6 @@
 spv.xfbOverlapOffsetCheckWithBlockAndMember.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 39
 
                               Capability Shader
diff --git a/Test/baseResults/spv.xfbStrideJustOnce.vert.out b/Test/baseResults/spv.xfbStrideJustOnce.vert.out
index 8bf1f0d..bbd7768 100644
--- a/Test/baseResults/spv.xfbStrideJustOnce.vert.out
+++ b/Test/baseResults/spv.xfbStrideJustOnce.vert.out
@@ -1,6 +1,6 @@
 spv.xfbStrideJustOnce.vert
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 33
 
                               Capability Shader
diff --git a/Test/baseResults/struct.error.frag.out b/Test/baseResults/struct.error.frag.out
deleted file mode 100644
index 5b0993a..0000000
--- a/Test/baseResults/struct.error.frag.out
+++ /dev/null
@@ -1,37 +0,0 @@
-struct.error.frag
-ERROR: 0:12: 'z' : no such field in structure 
-ERROR: 1 compilation errors.  No code generated.
-
-
-Shader version: 460
-ERROR: node is still EOpNull!
-0:7  Function Definition: test( ( global structure{ global float x})
-0:7    Function Parameters: 
-0:8    Sequence
-0:8      Branch: Return with expression
-0:8        Constant:
-0:8          1.000000
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:12    Sequence
-0:12      Function Call: test( ( global structure{ global float x})
-0:?   Linker Objects
-
-
-Linked fragment stage:
-
-
-Shader version: 460
-ERROR: node is still EOpNull!
-0:7  Function Definition: test( ( global structure{ global float x})
-0:7    Function Parameters: 
-0:8    Sequence
-0:8      Branch: Return with expression
-0:8        Constant:
-0:8          1.000000
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:12    Sequence
-0:12      Function Call: test( ( global structure{ global float x})
-0:?   Linker Objects
-
diff --git a/Test/baseResults/vk.relaxed.changeSet.vert.out b/Test/baseResults/vk.relaxed.changeSet.vert.out
index d7502a3..d2beff9 100755
--- a/Test/baseResults/vk.relaxed.changeSet.vert.out
+++ b/Test/baseResults/vk.relaxed.changeSet.vert.out
@@ -139,7 +139,7 @@
 0:?     'UV' ( smooth in highp 2-component vector of float)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 46
 
                               Capability Shader
@@ -232,7 +232,7 @@
                               Return
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 27
 
                               Capability Shader
diff --git a/Test/baseResults/vk.relaxed.frag.out b/Test/baseResults/vk.relaxed.frag.out
index c88782f..d98910e 100644
--- a/Test/baseResults/vk.relaxed.frag.out
+++ b/Test/baseResults/vk.relaxed.frag.out
@@ -553,7 +553,7 @@
 0:?     'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 163
 
                               Capability Shader
diff --git a/Test/baseResults/vk.relaxed.link1.frag.out b/Test/baseResults/vk.relaxed.link1.frag.out
index 1e67646..9dac4c6 100644
--- a/Test/baseResults/vk.relaxed.link1.frag.out
+++ b/Test/baseResults/vk.relaxed.link1.frag.out
@@ -348,7 +348,7 @@
 0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2,  coherent volatile buffer highp uint counter3})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 105
 
                               Capability Shader
diff --git a/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out b/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out
index 37532ed..bcd4e2a 100755
--- a/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out
+++ b/Test/baseResults/vk.relaxed.stagelink.0.0.vert.out
@@ -7014,7 +7014,7 @@
 0:?     'sTDInstanceColor' (layout( binding=17) uniform highp samplerBuffer)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 939
 
                               Capability Shader
@@ -8567,7 +8567,7 @@
                               ReturnValue 893
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 1297
 
                               Capability Shader
diff --git a/Test/baseResults/vk.relaxed.stagelink.vert.out b/Test/baseResults/vk.relaxed.stagelink.vert.out
index 47e1b4f..b9173f2 100644
--- a/Test/baseResults/vk.relaxed.stagelink.vert.out
+++ b/Test/baseResults/vk.relaxed.stagelink.vert.out
@@ -435,7 +435,7 @@
 0:?     'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1,  coherent volatile buffer highp uint counter2})
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 92
 
                               Capability Shader
@@ -593,7 +593,7 @@
                               ReturnValue 64
                               FunctionEnd
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 74
 
                               Capability Shader
diff --git a/Test/baseResults/vulkan.ast.vert.out b/Test/baseResults/vulkan.ast.vert.out
index c893103..68e892b 100644
--- a/Test/baseResults/vulkan.ast.vert.out
+++ b/Test/baseResults/vulkan.ast.vert.out
@@ -258,7 +258,7 @@
 0:?       2 (const int)
 
 // Module Version 10000
-// Generated by (magic number): 8000b
+// Generated by (magic number): 8000a
 // Id's are bound by 50
 
                               Capability Shader
diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out
index 8e6bfcc..78aea82 100644
--- a/Test/baseResults/vulkan.frag.out
+++ b/Test/baseResults/vulkan.frag.out
@@ -6,7 +6,7 @@
 ERROR: 0:8: 'binding' : sampler/texture/image requires layout(binding=X) 
 ERROR: 0:9: 'binding' : sampler/texture/image requires layout(binding=X) 
 ERROR: 0:10: 'binding' : sampler/texture/image requires layout(binding=X) 
-ERROR: 0:14: 'sampler2D' : sampler-constructor requires the extension GL_ARB_bindless_texture enabled 
+ERROR: 0:14: 'sampler2D' : sampler-constructor requires two arguments 
 ERROR: 0:15: 'sampler2D' : sampler-constructor first argument must be a scalar *texture* type 
 ERROR: 0:16: 'sampler2D' : sampler-constructor first argument must be a scalar *texture* type 
 ERROR: 0:17: 'sampler2D' : sampler-constructor second argument must be a scalar sampler or samplerShadow 
diff --git a/Test/implicitArraySize.frag b/Test/implicitArraySize.frag
deleted file mode 100644
index ca3eeb3..0000000
--- a/Test/implicitArraySize.frag
+++ /dev/null
@@ -1,9 +0,0 @@
-#version 460 core
-in float a[];
-in float c[3];
-out float b[5];
-
-void main(){
-  b[0] = a[1];
-  b[1] = c[1];
-}
\ No newline at end of file
diff --git a/Test/implicitArraySize.vert b/Test/implicitArraySize.vert
deleted file mode 100644
index 93e7495..0000000
--- a/Test/implicitArraySize.vert
+++ /dev/null
@@ -1,8 +0,0 @@
-#version 460 core
-out float a[];
-out float c[];
-
-void main(){
-  a[0] = 0.1;
-  c[5] = 0.1;
-}
\ No newline at end of file
diff --git a/Test/implicitArraySize1.geom b/Test/implicitArraySize1.geom
deleted file mode 100644
index b3b52ea..0000000
--- a/Test/implicitArraySize1.geom
+++ /dev/null
@@ -1,14 +0,0 @@
-#version 460 core
-
-layout(triangles) in;
-layout(line_strip, max_vertices = 204) out;
-
-void f();
-
-in float g[][3];
-out float o[3];
-
-void main(){
-  f();
-  o[1] = g[2][1];
-}
\ No newline at end of file
diff --git a/Test/implicitArraySize2.geom b/Test/implicitArraySize2.geom
deleted file mode 100644
index 0bb65cd..0000000
--- a/Test/implicitArraySize2.geom
+++ /dev/null
@@ -1,8 +0,0 @@
-#version 460 core
-
-in float g[][3];
-out float o[];
-
-void f(){
-  o[1] = g[1][1];
-}
\ No newline at end of file
diff --git a/Test/implicitArraySizeBuiltin.geom b/Test/implicitArraySizeBuiltin.geom
deleted file mode 100644
index 419b633..0000000
--- a/Test/implicitArraySizeBuiltin.geom
+++ /dev/null
@@ -1,20 +0,0 @@
-#version 460 core
-
-layout(triangles) in;
-layout(line_strip, max_vertices = 204) out;
-
-void f2(float x)
-{
-    gl_ClipDistance[6] = gl_in[0].gl_ClipDistance[6];
-}
-void f3(float x)
-{
-    gl_CullDistance[1] = gl_in[0].gl_CullDistance[1];
-}
-
-void main(){
-  #if defined(CLIP)
-  f2(0.1);
-  #endif
-  f3(0.1);
-}
\ No newline at end of file
diff --git a/Test/implicitArraySizeBuiltin.vert b/Test/implicitArraySizeBuiltin.vert
deleted file mode 100644
index 251e975..0000000
--- a/Test/implicitArraySizeBuiltin.vert
+++ /dev/null
@@ -1,11 +0,0 @@
-#version 460 core
-
-void f1(float x)
-{
-    gl_ClipDistance[6] = x;
-    gl_CullDistance[1] = x;
-}
-
-void main(){
-  f1(0.1);
-}
\ No newline at end of file
diff --git a/Test/spv.1.6.helperInvocation.memmodel.frag b/Test/spv.1.6.helperInvocation.memmodel.frag
deleted file mode 100644
index b727f8e..0000000
--- a/Test/spv.1.6.helperInvocation.memmodel.frag
+++ /dev/null
@@ -1,16 +0,0 @@
-#version 310 es

-

-#pragma use_vulkan_memory_model

-

-#extension GL_EXT_demote_to_helper_invocation : require

-

-precision highp float;

-

-layout (set=0, binding=0) buffer B {

-   float o;

-};

-

-void main() {

-   demote;

-   o = gl_HelperInvocation ? 1.0 : 0.0;

-}

diff --git a/Test/spv.ARMCoreBuiltIns.frag b/Test/spv.ARMCoreBuiltIns.frag
deleted file mode 100644
index deb3e55..0000000
--- a/Test/spv.ARMCoreBuiltIns.frag
+++ /dev/null
@@ -1,8 +0,0 @@
-#version 450
-#extension GL_ARM_shader_core_builtins: enable
-layout(location = 0) out uvec4 data;
-void main (void)
-{
-  uint temp = gl_WarpMaxIDARM;
-  data = uvec4(gl_CoreIDARM, gl_CoreCountARM, gl_CoreMaxIDARM, gl_WarpIDARM + temp);
-}
diff --git a/Test/spv.ARMCoreBuiltIns.vert b/Test/spv.ARMCoreBuiltIns.vert
deleted file mode 100644
index 2bed18e..0000000
--- a/Test/spv.ARMCoreBuiltIns.vert
+++ /dev/null
@@ -1,12 +0,0 @@
-#version 450
-#extension GL_ARM_shader_core_builtins: enable
-layout(set = 0, binding = 0, std430) buffer Output
-{
-  uvec4 result;
-};
-
-void main (void)
-{
-  uint temp = gl_WarpMaxIDARM;
-  result = uvec4(gl_CoreIDARM, gl_CoreCountARM, gl_CoreMaxIDARM, gl_WarpIDARM + temp);
-}
diff --git a/Test/spv.debuginfo.const_params.glsl.comp b/Test/spv.debuginfo.const_params.glsl.comp
deleted file mode 100644
index 112628f..0000000
--- a/Test/spv.debuginfo.const_params.glsl.comp
+++ /dev/null
@@ -1,14 +0,0 @@
-#version 450
-
-void function(
-    const float f,
-    const vec2 f2,
-    const vec3 f3,
-    const vec4 f4)
-{
-}
-
-void main()
-{
-    function(0, vec2(0), vec3(0), vec4(0));
-}
diff --git a/Test/spv.nv.hitobject-allops.rchit b/Test/spv.nv.hitobject-allops.rchit
deleted file mode 100644
index e7db359..0000000
--- a/Test/spv.nv.hitobject-allops.rchit
+++ /dev/null
@@ -1,55 +0,0 @@
-#version 460
-#extension GL_EXT_ray_tracing : enable
-#extension GL_NV_shader_invocation_reorder : enable
-#extension GL_NV_ray_tracing_motion_blur : enable
-layout(location = 1) rayPayloadEXT vec4 payload;
-layout(location = 2) rayPayloadEXT pBlock { vec2 val1; vec2 val2; };
-layout(location = 2) hitObjectAttributeNV vec2 attr;
-layout(location = 3) hitObjectAttributeNV hBlock { float attrval;};
-layout(binding = 0) uniform accelerationStructureEXT as;
-layout(binding = 1) buffer block {
-	float op;
-};
-void main()
-{
-	hitObjectNV hObj;
-	hitObjectNV hObjHit, hObjMiss, hObjNop;
-	attr = vec2(1.0);
-	attrval = 2.0;
-	hitObjectTraceRayNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 1);
-	hitObjectTraceRayMotionNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 10.0, 2);
-	hitObjectRecordHitNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 2);
-	hitObjectRecordHitMotionNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 2);
-	hitObjectRecordHitWithIndexNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 3);
-	hitObjectRecordHitWithIndexMotionNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 3);
-	hitObjectRecordEmptyNV(hObjNop);
-	hitObjectRecordMissNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0);
-	hitObjectRecordMissMotionNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0, 8.0f);
-	hitObjectExecuteShaderNV(hObjHit, 2);
-	if (hitObjectIsHitNV(hObj)) { 
-		op = 1.0f;
-	} else if (hitObjectIsMissNV(hObj)) {
-		op = 2.0f;
-	} else if (hitObjectIsEmptyNV(hObj)) {
-		op = 3.0f;
-	}
-	
-
-	float tmin = hitObjectGetRayTMinNV(hObjHit);
-	float tmax = hitObjectGetRayTMaxNV(hObjHit);
-	vec3 orig = hitObjectGetWorldRayOriginNV(hObjHit);
-	vec3 dir = hitObjectGetWorldRayDirectionNV(hObjHit);
-	vec3 oorig = hitObjectGetObjectRayOriginNV(hObjHit);
-	vec3 odir = hitObjectGetObjectRayDirectionNV(hObjHit);
-	mat4x3 otw = hitObjectGetObjectToWorldNV(hObjHit);
-	mat4x3 wto = hitObjectGetWorldToObjectNV(hObjHit);
-	int cid = hitObjectGetInstanceCustomIndexNV(hObjMiss);
-	int iid = hitObjectGetInstanceIdNV(hObjNop);
-	int pid = hitObjectGetPrimitiveIndexNV(hObj);
-	int gid = hitObjectGetGeometryIndexNV(hObj);
-	uint hkind = hitObjectGetHitKindNV(hObj);
-	hitObjectGetAttributesNV(hObj, 2);
-	uvec2 handle = hitObjectGetShaderRecordBufferHandleNV(hObj);
-	uint rid = hitObjectGetShaderBindingTableRecordIndexNV(hObj);
-	
-}
diff --git a/Test/spv.nv.hitobject-allops.rgen b/Test/spv.nv.hitobject-allops.rgen
deleted file mode 100644
index f2f37f7..0000000
--- a/Test/spv.nv.hitobject-allops.rgen
+++ /dev/null
@@ -1,61 +0,0 @@
-#version 460
-#extension GL_EXT_ray_tracing : enable
-#extension GL_NV_shader_invocation_reorder : enable
-#extension GL_NV_ray_tracing_motion_blur : enable
-layout(location = 1) rayPayloadEXT vec4 payload;
-layout(location = 2) rayPayloadEXT pBlock { vec2 val1; vec2 val2; };
-layout(location = 2) hitObjectAttributeNV vec2 attr;
-layout(location = 3) hitObjectAttributeNV hBlock { float attrval;};
-layout(binding = 0) uniform accelerationStructureEXT as;
-layout(binding = 1) buffer block {
-	float op;
-};
-void main()
-{
-	hitObjectNV hObj;
-	hitObjectNV hObjHit, hObjMiss, hObjNop;
-	attr = vec2(1.0);
-	attrval = 2.0;
-	hitObjectTraceRayNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 1);
-	hitObjectTraceRayMotionNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 10.0, 2);
-	hitObjectRecordHitNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 2);
-	hitObjectRecordHitMotionNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 2);
-	hitObjectRecordHitWithIndexNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 3);
-	hitObjectRecordHitWithIndexMotionNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 3);
-	hitObjectRecordEmptyNV(hObjNop);
-	hitObjectRecordMissNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0);
-	hitObjectRecordMissMotionNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0, 8.0f);
-	hitObjectExecuteShaderNV(hObjHit, 1);
-	if (hitObjectIsHitNV(hObj)) { 
-		op = 1.0f;
-	} else if (hitObjectIsMissNV(hObj)) {
-		op = 2.0f;
-	} else if (hitObjectIsEmptyNV(hObj)) {
-		op = 3.0f;
-	}
-	
-
-	float tmin = hitObjectGetRayTMinNV(hObjHit);
-	float tmax = hitObjectGetRayTMaxNV(hObjHit);
-	vec3 orig = hitObjectGetWorldRayOriginNV(hObjHit);
-	vec3 dir = hitObjectGetWorldRayDirectionNV(hObjHit);
-	vec3 oorig = hitObjectGetObjectRayOriginNV(hObjHit);
-	vec3 odir = hitObjectGetObjectRayDirectionNV(hObjHit);
-	mat4x3 otw = hitObjectGetObjectToWorldNV(hObjHit);
-	mat4x3 wto = hitObjectGetWorldToObjectNV(hObjHit);
-	int cid = hitObjectGetInstanceCustomIndexNV(hObjMiss);
-	int iid = hitObjectGetInstanceIdNV(hObjNop);
-	int pid = hitObjectGetPrimitiveIndexNV(hObj);
-	int gid = hitObjectGetGeometryIndexNV(hObj);
-	uint hkind = hitObjectGetHitKindNV(hObj);
-	hitObjectGetAttributesNV(hObj, 2);
-	uvec2 handle = hitObjectGetShaderRecordBufferHandleNV(hObj);
-	uint rid = hitObjectGetShaderBindingTableRecordIndexNV(hObj);
-	reorderThreadNV(4,4);
-	reorderThreadNV(hObjHit);
-	reorderThreadNV(hObjHit, 4, 2);
-
-	
-	
-	
-}
diff --git a/Test/spv.nv.hitobject-allops.rmiss b/Test/spv.nv.hitobject-allops.rmiss
deleted file mode 100644
index 045e4a5..0000000
--- a/Test/spv.nv.hitobject-allops.rmiss
+++ /dev/null
@@ -1,58 +0,0 @@
-#version 460
-#extension GL_EXT_ray_tracing : enable
-#extension GL_NV_shader_invocation_reorder : enable
-#extension GL_NV_ray_tracing_motion_blur : enable
-layout(location = 1) rayPayloadEXT vec4 payload;
-layout(location = 2) rayPayloadEXT pBlock { vec2 val1; vec2 val2; };
-layout(location = 2) hitObjectAttributeNV vec2 attr;
-layout(location = 3) hitObjectAttributeNV hBlock { float attrval;};
-layout(binding = 0) uniform accelerationStructureEXT as;
-layout(binding = 1) buffer block {
-	float op;
-};
-void main()
-{
-	hitObjectNV hObj;
-	hitObjectNV hObjHit, hObjMiss, hObjNop;
-	attr = vec2(1.0);
-	attrval = 2.0;
-	hitObjectTraceRayNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 1);
-	hitObjectTraceRayMotionNV(hObj, as, 1U, 1U, 1U, 1U, 1U, vec3(0.5), 0.5, vec3(1), 1.0, 10.0, 2);
-	hitObjectRecordHitNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 2);
-	hitObjectRecordHitMotionNV(hObj, as, 1, 1, 1, 2U, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 2);
-	hitObjectRecordHitWithIndexNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 3);
-	hitObjectRecordHitWithIndexMotionNV(hObjHit, as, 1, 1, 1, 2U, 2U, vec3(1), 1.0f, vec3(2), 2.0f, 4.0f, 3);
-	hitObjectRecordEmptyNV(hObjNop);
-	hitObjectRecordMissNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0);
-	hitObjectRecordMissMotionNV(hObjMiss, 1U, vec3(0.5), 2.0, vec3(1.5), 5.0, 8.0f);
-	hitObjectExecuteShaderNV(hObjHit, 2);
-	if (hitObjectIsHitNV(hObj)) { 
-		op = 1.0f;
-	} else if (hitObjectIsMissNV(hObj)) {
-		op = 2.0f;
-	} else if (hitObjectIsEmptyNV(hObj)) {
-		op = 3.0f;
-	}
-	
-
-	float tmin = hitObjectGetRayTMinNV(hObjHit);
-	float tmax = hitObjectGetRayTMaxNV(hObjHit);
-	vec3 orig = hitObjectGetWorldRayOriginNV(hObjHit);
-	vec3 dir = hitObjectGetWorldRayDirectionNV(hObjHit);
-	vec3 oorig = hitObjectGetObjectRayOriginNV(hObjHit);
-	vec3 odir = hitObjectGetObjectRayDirectionNV(hObjHit);
-	mat4x3 otw = hitObjectGetObjectToWorldNV(hObjHit);
-	mat4x3 wto = hitObjectGetWorldToObjectNV(hObjHit);
-	int cid = hitObjectGetInstanceCustomIndexNV(hObjMiss);
-	int iid = hitObjectGetInstanceIdNV(hObjNop);
-	int pid = hitObjectGetPrimitiveIndexNV(hObj);
-	int gid = hitObjectGetGeometryIndexNV(hObj);
-	uint hkind = hitObjectGetHitKindNV(hObj);
-	hitObjectGetAttributesNV(hObj, 2);
-	uvec2 handle = hitObjectGetShaderRecordBufferHandleNV(hObj);
-	uint rid = hitObjectGetShaderBindingTableRecordIndexNV(hObj);
-
-	
-	
-	
-}
diff --git a/Test/struct.error.frag b/Test/struct.error.frag
deleted file mode 100644
index 29aba00..0000000
--- a/Test/struct.error.frag
+++ /dev/null
@@ -1,14 +0,0 @@
-#version 460
-
-struct A {
-	float x;
-};
-
-A test() {
-	return A(1.0);
-}
-
-void main() {
-	test().z; // A.z does not exist, causes a crash
-}
-
diff --git a/gen_extension_headers.py b/gen_extension_headers.py
index 0638720..2838c96 100755
--- a/gen_extension_headers.py
+++ b/gen_extension_headers.py
@@ -57,7 +57,7 @@
         contents += '\tfor (int i = 0; i < n; i++) {\n'
 
         for symbol_name in symbol_name_list:

-            contents += '\t\tif (strstr(shaders[i], "%s") != nullptr) {\n'   % (symbol_name)
+            contents += '\t\tif (strstr(shaders[i], "%s") != NULL) {\n'   % (symbol_name)
             contents += '\t\t    shaderString.append(%s_GLSL);\n' % (symbol_name)
             contents += '\t\t}\n'

 
diff --git a/glslang/CInterface/glslang_c_interface.cpp b/glslang/CInterface/glslang_c_interface.cpp
index 1465ce1..ead005c 100644
--- a/glslang/CInterface/glslang_c_interface.cpp
+++ b/glslang/CInterface/glslang_c_interface.cpp
@@ -33,7 +33,7 @@
 #include "glslang/Include/glslang_c_interface.h"
 
 #include "StandAlone/DirStackFileIncluder.h"
-#include "glslang/Public/ResourceLimits.h"
+#include "StandAlone/ResourceLimits.h"
 #include "glslang/Include/ShHandle.h"
 
 #include "glslang/Include/ResourceLimits.h"
@@ -351,10 +351,6 @@
     return shader;
 }
 
-GLSLANG_EXPORT void glslang_shader_set_preamble(glslang_shader_t* shader, const char* s) {
-    shader->shader->setPreamble(s);
-}
-
 GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base)
 {
     const glslang::TResourceType res_type = glslang::TResourceType(res);
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
index 7709f09..72e82b4 100644
--- a/glslang/CMakeLists.txt
+++ b/glslang/CMakeLists.txt
@@ -149,8 +149,6 @@
 
 set(GLSLANG_HEADERS
     Public/ShaderLang.h
-    Public/ResourceLimits.h
-    Public/resource_limits_c.h
     Include/arrays.h
     Include/BaseTypes.h
     Include/Common.h
@@ -212,7 +210,7 @@
             message(WARNING \"Using `glslangTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
             if (NOT TARGET glslang::glslang)
-                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+                include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
             endif()
 
             if(${BUILD_SHARED_LIBS})
diff --git a/glslang/GenericCodeGen/Link.cpp b/glslang/GenericCodeGen/Link.cpp
index 5e28405..c38db0f 100644
--- a/glslang/GenericCodeGen/Link.cpp
+++ b/glslang/GenericCodeGen/Link.cpp
@@ -82,7 +82,7 @@
 
 TShHandleBase* ConstructBindings()
 {
-    return nullptr;
+    return 0;
 }
 
 void DeleteBindingList(TShHandleBase* bindingList)
diff --git a/glslang/HLSL/hlslGrammar.cpp b/glslang/HLSL/hlslGrammar.cpp
index 19a792b..a01f240 100644
--- a/glslang/HLSL/hlslGrammar.cpp
+++ b/glslang/HLSL/hlslGrammar.cpp
@@ -3794,7 +3794,7 @@
         parseContext.unnestLooping();
         --parseContext.controlFlowNestingLevel;
 
-        loopNode = intermediate.addLoop(statement, condition, nullptr, false, loc);
+        loopNode = intermediate.addLoop(statement, condition, 0, false, loc);
         statement = loopNode;
         break;
 
diff --git a/glslang/HLSL/hlslParseHelper.cpp b/glslang/HLSL/hlslParseHelper.cpp
index 6e0d314..62e46a0 100644
--- a/glslang/HLSL/hlslParseHelper.cpp
+++ b/glslang/HLSL/hlslParseHelper.cpp
@@ -1596,7 +1596,7 @@
     //
     bool builtIn;
     TSymbol* symbol = symbolTable.find(function.getMangledName(), &builtIn);
-    const TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr;
+    const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0;
 
     if (prototype) {
         // All built-in functions are defined, even though they don't have a body.
@@ -2472,7 +2472,7 @@
 void HlslParseContext::handleFunctionArgument(TFunction* function,
                                               TIntermTyped*& arguments, TIntermTyped* newArg)
 {
-    TParameter param = { nullptr, new TType, nullptr };
+    TParameter param = { 0, new TType, nullptr };
     param.type->shallowCopy(newArg->getType());
 
     function->addParameter(param);
@@ -7790,18 +7790,18 @@
             // Handle aggregates: put all args into the new function call
             for (int arg = 0; arg < int(args->getAsAggregate()->getSequence().size()); ++arg) {
                 // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly.
-                TParameter param = { nullptr, new TType, nullptr };
+                TParameter param = { 0, new TType, nullptr };
                 param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType());
                 convertedCall.addParameter(param);
             }
         } else if (args->getAsUnaryNode()) {
             // Handle unaries: put all args into the new function call
-            TParameter param = { nullptr, new TType, nullptr };
+            TParameter param = { 0, new TType, nullptr };
             param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType());
             convertedCall.addParameter(param);
         } else if (args->getAsTyped()) {
             // Handle bare e.g, floats, not in an aggregate.
-            TParameter param = { nullptr, new TType, nullptr };
+            TParameter param = { 0, new TType, nullptr };
             param.type->shallowCopy(args->getAsTyped()->getType());
             convertedCall.addParameter(param);
         } else {
diff --git a/glslang/HLSL/hlslParseHelper.h b/glslang/HLSL/hlslParseHelper.h
index 97c52d4..96d85f4 100644
--- a/glslang/HLSL/hlslParseHelper.h
+++ b/glslang/HLSL/hlslParseHelper.h
@@ -147,14 +147,14 @@
     void declareTypedef(const TSourceLoc&, const TString& identifier, const TType&);
     void declareStruct(const TSourceLoc&, TString& structName, TType&);
     TSymbol* lookupUserType(const TString&, TType&);
-    TIntermNode* declareVariable(const TSourceLoc&, const TString& identifier, TType&, TIntermTyped* initializer = nullptr);
+    TIntermNode* declareVariable(const TSourceLoc&, const TString& identifier, TType&, TIntermTyped* initializer = 0);
     void lengthenList(const TSourceLoc&, TIntermSequence& list, int size, TIntermTyped* scalarInit);
     TIntermTyped* handleConstructor(const TSourceLoc&, TIntermTyped*, const TType&);
     TIntermTyped* addConstructor(const TSourceLoc&, TIntermTyped*, const TType&);
     TIntermTyped* convertArray(TIntermTyped*, const TType&);
     TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&);
     TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
-    void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = nullptr);
+    void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0);
     void declareStructBufferCounter(const TSourceLoc& loc, const TType& bufferType, const TString& name);
     void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation);
     void fixXfbOffsets(TQualifier&, TTypeList&);
@@ -171,10 +171,10 @@
     void unnestAnnotations() { --annotationNestingLevel; }
     int getAnnotationNestingLevel() { return annotationNestingLevel; }
     void pushScope()         { symbolTable.push(); }
-    void popScope()          { symbolTable.pop(nullptr); }
+    void popScope()          { symbolTable.pop(0); }
 
     void pushThisScope(const TType&, const TVector<TFunctionDeclarator>&);
-    void popThisScope()      { symbolTable.pop(nullptr); }
+    void popThisScope()      { symbolTable.pop(0); }
 
     void pushImplicitThis(TVariable* thisParameter) { implicitThisStack.push_back(thisParameter); }
     void popImplicitThis() { implicitThisStack.pop_back(); }
diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h
index cf93193..156d98b 100644
--- a/glslang/Include/BaseTypes.h
+++ b/glslang/Include/BaseTypes.h
@@ -65,7 +65,6 @@
     EbtAccStruct,
     EbtReference,
     EbtRayQuery,
-    EbtHitObjectNV,
 #ifndef GLSLANG_WEB
     // SPIR-V type defined by spirv_type
     EbtSpirvType,
@@ -105,7 +104,6 @@
     EvqHitAttr,
     EvqCallableData,
     EvqCallableDataIn,
-    EvqHitObjectAttrNV,
 
     EvqtaskPayloadSharedEXT,
 
@@ -318,13 +316,6 @@
     EbvByteAddressBuffer,
     EbvRWByteAddressBuffer,
 
-    // ARM specific core builtins
-    EbvCoreCountARM,
-    EbvCoreIDARM,
-    EbvCoreMaxIDARM,
-    EbvWarpIDARM,
-    EbvWarpMaxIDARM,
-
     EbvLast
 };
 
@@ -377,7 +368,6 @@
     case EvqCallableData:   return "callableDataNV";   break;
     case EvqCallableDataIn: return "callableDataInNV"; break;
     case EvqtaskPayloadSharedEXT: return "taskPayloadSharedEXT"; break;
-    case EvqHitObjectAttrNV:return "hitObjectAttributeNV"; break;
     default:                return "unknown qualifier";
     }
 }
diff --git a/glslang/Include/PoolAlloc.h b/glslang/Include/PoolAlloc.h
index 3e67d6e..1f5cac7 100644
--- a/glslang/Include/PoolAlloc.h
+++ b/glslang/Include/PoolAlloc.h
@@ -37,7 +37,7 @@
 #ifndef _POOLALLOC_INCLUDED_
 #define _POOLALLOC_INCLUDED_
 
-#ifndef NDEBUG
+#ifdef _DEBUG
 #  define GUARD_BLOCKS  // define to enable guard block sanity checking
 #endif
 
@@ -74,7 +74,7 @@
 
 class TAllocation {
 public:
-    TAllocation(size_t size, unsigned char* mem, TAllocation* prev = nullptr) :
+    TAllocation(size_t size, unsigned char* mem, TAllocation* prev = 0) :
         size(size), mem(mem), prevAlloc(prev) {
         // Allocations are bracketed:
         //    [allocationHeader][initialGuardBlock][userData][finalGuardBlock]
@@ -171,7 +171,7 @@
     void popAll();
 
     //
-    // Call allocate() to actually acquire memory.  Returns nullptr if no memory
+    // Call allocate() to actually acquire memory.  Returns 0 if no memory
     // available, otherwise a properly aligned pointer to 'numBytes' of memory.
     //
     void* allocate(size_t numBytes);
@@ -189,7 +189,7 @@
     struct tHeader {
         tHeader(tHeader* nextPage, size_t pageCount) :
 #ifdef GUARD_BLOCKS
-        lastAllocation(nullptr),
+        lastAllocation(0),
 #endif
         nextPage(nextPage), pageCount(pageCount) { }
 
diff --git a/glslang/Include/ShHandle.h b/glslang/Include/ShHandle.h
index dee47c0..df07bd8 100644
--- a/glslang/Include/ShHandle.h
+++ b/glslang/Include/ShHandle.h
@@ -58,9 +58,9 @@
 public:
     TShHandleBase() { pool = new glslang::TPoolAllocator; }
     virtual ~TShHandleBase() { delete pool; }
-    virtual TCompiler* getAsCompiler() { return nullptr; }
-    virtual TLinker* getAsLinker() { return nullptr; }
-    virtual TUniformMap* getAsUniformMap() { return nullptr; }
+    virtual TCompiler* getAsCompiler() { return 0; }
+    virtual TLinker* getAsLinker() { return 0; }
+    virtual TUniformMap* getAsUniformMap() { return 0; }
     virtual glslang::TPoolAllocator* getPool() const { return pool; }
 private:
     glslang::TPoolAllocator* pool;
@@ -123,11 +123,11 @@
         infoSink(iSink),
         executable(e),
         haveReturnableObjectCode(false),
-        appAttributeBindings(nullptr),
-        fixedAttributeBindings(nullptr),
-        excludedAttributes(nullptr),
+        appAttributeBindings(0),
+        fixedAttributeBindings(0),
+        excludedAttributes(0),
         excludedCount(0),
-        uniformBindings(nullptr) { }
+        uniformBindings(0) { }
     virtual TLinker* getAsLinker() { return this; }
     virtual ~TLinker() { }
     virtual bool link(TCompilerList&, TUniformMap*) = 0;
@@ -137,7 +137,7 @@
     virtual void getAttributeBindings(ShBindingTable const **t) const = 0;
     virtual void setExcludedAttributes(const int* attributes, int count) { excludedAttributes = attributes; excludedCount = count; }
     virtual ShBindingTable* getUniformBindings() const  { return uniformBindings; }
-    virtual const void* getObjectCode() const { return nullptr; } // a real compiler would be returning object code here
+    virtual const void* getObjectCode() const { return 0; } // a real compiler would be returning object code here
     virtual TInfoSink& getInfoSink() { return infoSink; }
     TInfoSink& infoSink;
 protected:
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 59a447c..a6f47e8 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -429,12 +429,6 @@
     ElfR16ui,
     ElfR8ui,
     ElfR64ui,
-    ElfExtSizeGuard,   // to help with comparisons
-    ElfSize1x8,
-    ElfSize1x16,
-    ElfSize1x32,
-    ElfSize2x32,
-    ElfSize4x32,
 
     ElfCount
 };
@@ -869,9 +863,6 @@
     bool isAnyCallable() const {
         return storage == EvqCallableData || storage == EvqCallableDataIn;
     }
-    bool isHitObjectAttrNV() const {
-        return storage == EvqHitObjectAttrNV;
-    }
 
     // True if this type of IO is supposed to be arrayed with extra level for per-vertex data
     bool isArrayedIo(EShLanguage language) const
@@ -907,9 +898,6 @@
         // -2048 as the default value indicating layoutSecondaryViewportRelative is not set
         layoutSecondaryViewportRelativeOffset = -2048;
         layoutShaderRecord = false;
-        layoutHitObjectShaderRecordNV = false;
-        layoutBindlessSampler = false;
-        layoutBindlessImage = false;
         layoutBufferReferenceAlign = layoutBufferReferenceAlignEnd;
         layoutFormat = ElfNone;
 #endif
@@ -1009,14 +997,10 @@
     bool layoutViewportRelative;
     int layoutSecondaryViewportRelativeOffset;
     bool layoutShaderRecord;
-    bool layoutHitObjectShaderRecordNV;
 
     // GL_EXT_spirv_intrinsics
     int spirvStorageClass;
     TSpirvDecorate* spirvDecorate;
-
-    bool layoutBindlessSampler;
-    bool layoutBindlessImage;
 #endif
 
     bool hasUniformLayout() const
@@ -1139,7 +1123,6 @@
     TLayoutFormat getFormat() const { return layoutFormat; }
     bool isPushConstant() const { return layoutPushConstant; }
     bool isShaderRecord() const { return layoutShaderRecord; }
-    bool hasHitObjectShaderRecordNV() const { return layoutHitObjectShaderRecordNV; }
     bool hasBufferReference() const { return layoutBufferReference; }
     bool hasBufferReferenceAlign() const
     {
@@ -1149,14 +1132,6 @@
     {
         return nonUniform;
     }
-    bool isBindlessSampler() const
-    {
-        return layoutBindlessSampler;
-    }
-    bool isBindlessImage() const
-    {
-        return layoutBindlessImage;
-    }
 
     // GL_EXT_spirv_intrinsics
     bool hasSprivDecorate() const { return spirvDecorate != nullptr; }
@@ -1266,11 +1241,6 @@
         case ElfR8ui:         return "r8ui";
         case ElfR64ui:        return "r64ui";
         case ElfR64i:         return "r64i";
-        case ElfSize1x8:      return "size1x8";
-        case ElfSize1x16:     return "size1x16";
-        case ElfSize1x32:     return "size1x32";
-        case ElfSize2x32:     return "size2x32";
-        case ElfSize4x32:     return "size4x32";
         default:              return "none";
         }
     }
@@ -1894,11 +1864,9 @@
     virtual bool isArray()  const { return arraySizes != nullptr; }
     virtual bool isSizedArray() const { return isArray() && arraySizes->isSized(); }
     virtual bool isUnsizedArray() const { return isArray() && !arraySizes->isSized(); }
-    virtual bool isImplicitlySizedArray() const { return isArray() && arraySizes->isImplicitlySized(); }
     virtual bool isArrayVariablyIndexed() const { assert(isArray()); return arraySizes->isVariablyIndexed(); }
     virtual void setArrayVariablyIndexed() { assert(isArray()); arraySizes->setVariablyIndexed(); }
     virtual void updateImplicitArraySize(int size) { assert(isArray()); arraySizes->updateImplicitSize(size); }
-    virtual void setImplicitlySized(bool isImplicitSized) { arraySizes->setImplicitlySized(isImplicitSized); }
     virtual bool isStruct() const { return basicType == EbtStruct || basicType == EbtBlock; }
     virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; }
     virtual bool isIntegerDomain() const
@@ -1921,8 +1889,7 @@
     }
     virtual bool isOpaque() const { return basicType == EbtSampler
 #ifndef GLSLANG_WEB
-            || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery 
-            || basicType == EbtHitObjectNV
+            || basicType == EbtAtomicUint || basicType == EbtAccStruct || basicType == EbtRayQuery
 #endif
         ; }
     virtual bool isBuiltIn() const { return getQualifier().builtIn != EbvNone; }
@@ -1931,8 +1898,6 @@
     virtual bool isImage()   const { return basicType == EbtSampler && getSampler().isImage(); }
     virtual bool isSubpass() const { return basicType == EbtSampler && getSampler().isSubpass(); }
     virtual bool isTexture() const { return basicType == EbtSampler && getSampler().isTexture(); }
-    virtual bool isBindlessImage() const { return isImage() && qualifier.layoutBindlessImage; }
-    virtual bool isBindlessTexture() const { return isTexture() && qualifier.layoutBindlessSampler; }
     // Check the block-name convention of creating a block without populating it's members:
     virtual bool isUnusableName() const { return isStruct() && structure == nullptr; }
     virtual bool isParameterized()  const { return typeParameters != nullptr; }
@@ -1989,11 +1954,6 @@
         return contains([](const TType* t) { return t->isOpaque(); } );
     }
 
-    virtual bool containsSampler() const
-    {
-        return contains([](const TType* t) { return t->isTexture() || t->isImage(); });
-    }
-
     // Recursively checks if the type contains a built-in variable
     virtual bool containsBuiltIn() const
     {
@@ -2127,12 +2087,8 @@
     // an explicit array.
     void adoptImplicitArraySizes(bool skipNonvariablyIndexed)
     {
-        if (isUnsizedArray() &&
-            (qualifier.builtIn == EbvSampleMask ||
-                !(skipNonvariablyIndexed || isArrayVariablyIndexed()))) {
+        if (isUnsizedArray() && !(skipNonvariablyIndexed || isArrayVariablyIndexed()))
             changeOuterArraySize(getImplicitArraySize());
-            setImplicitlySized(true);
-        }
         // For multi-dim per-view arrays, set unsized inner dimension size to 1
         if (qualifier.isPerView() && arraySizes && arraySizes->isInnerUnsized())
             arraySizes->clearInnerUnsized();
@@ -2327,16 +2283,8 @@
                 appendStr(" layoutSecondaryViewportRelativeOffset=");
                 appendInt(qualifier.layoutSecondaryViewportRelativeOffset);
               }
-              
               if (qualifier.layoutShaderRecord)
                 appendStr(" shaderRecordNV");
-              if (qualifier.layoutHitObjectShaderRecordNV)
-                appendStr(" hitobjectshaderrecordnv");
-
-              if (qualifier.layoutBindlessSampler)
-                  appendStr(" layoutBindlessSampler");
-              if (qualifier.layoutBindlessImage)
-                  appendStr(" layoutBindlessImage");
 
               appendStr(")");
             }
@@ -2596,7 +2544,6 @@
     void setStruct(TTypeList* s) { assert(isStruct()); structure = s; }
     TTypeList* getWritableStruct() const { assert(isStruct()); return structure; }  // This should only be used when known to not be sharing with other threads
     void setBasicType(const TBasicType& t) { basicType = t; }
-    void setVectorSize(int s) { vectorSize = s; }
 
     int computeNumComponents() const
     {
@@ -2764,10 +2711,7 @@
     bool sameArrayness(const TType& right) const
     {
         return ((arraySizes == nullptr && right.arraySizes == nullptr) ||
-                (arraySizes != nullptr && right.arraySizes != nullptr &&
-                 (*arraySizes == *right.arraySizes ||
-                  (arraySizes->isImplicitlySized() && right.arraySizes->isDefaultImplicitlySized()) ||
-                  (right.arraySizes->isImplicitlySized() && arraySizes->isDefaultImplicitlySized()))));
+                (arraySizes != nullptr && right.arraySizes != nullptr && *arraySizes == *right.arraySizes));
     }
 
     // See if two type's arrayness match in everything except their outer dimension
diff --git a/glslang/Include/arrays.h b/glslang/Include/arrays.h
index 1da14d0..7f047d9 100644
--- a/glslang/Include/arrays.h
+++ b/glslang/Include/arrays.h
@@ -222,7 +222,7 @@
 struct TArraySizes {
     POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
 
-    TArraySizes() : implicitArraySize(0), implicitlySized(true), variablyIndexed(false){ }
+    TArraySizes() : implicitArraySize(1), variablyIndexed(false) { }
 
     // For breaking into two non-shared copies, independently modifiable.
     TArraySizes& operator=(const TArraySizes& from)
@@ -230,7 +230,6 @@
         implicitArraySize = from.implicitArraySize;
         variablyIndexed = from.variablyIndexed;
         sizes = from.sizes;
-        implicitlySized = from.implicitlySized;
 
         return *this;
     }
@@ -257,17 +256,11 @@
     void addInnerSize(int s, TIntermTyped* n) { sizes.push_back((unsigned)s, n); }
     void addInnerSize(TArraySize pair) {
         sizes.push_back(pair.size, pair.node);
-        implicitlySized = false;
     }
     void addInnerSizes(const TArraySizes& s) { sizes.push_back(s.sizes); }
-    void changeOuterSize(int s) {
-        sizes.changeFront((unsigned)s);
-        implicitlySized = false;
-    }
-    int getImplicitSize() const { return implicitArraySize > 0 ? implicitArraySize : 1; }
-    void updateImplicitSize(int s) {
-        implicitArraySize = (std::max)(implicitArraySize, s);
-    }
+    void changeOuterSize(int s) { sizes.changeFront((unsigned)s); }
+    int getImplicitSize() const { return implicitArraySize; }
+    void updateImplicitSize(int s) { implicitArraySize = std::max(implicitArraySize, s); }
     bool isInnerUnsized() const
     {
         for (int d = 1; d < sizes.size(); ++d) {
@@ -302,9 +295,6 @@
 
     bool hasUnsized() const { return getOuterSize() == UnsizedArraySize || isInnerUnsized(); }
     bool isSized() const { return getOuterSize() != UnsizedArraySize; }
-    bool isImplicitlySized() const { return implicitlySized; }
-    bool isDefaultImplicitlySized() const { return implicitlySized && implicitArraySize == 0; }
-    void setImplicitlySized(bool isImplicitSizing) { implicitlySized = isImplicitSizing; }
     void dereference() { sizes.pop_front(); }
     void copyDereferenced(const TArraySizes& rhs)
     {
@@ -343,7 +333,6 @@
     // the implicit size of the array, if not variably indexed and
     // otherwise legal.
     int implicitArraySize;
-    bool implicitlySized;
     bool variablyIndexed;  // true if array is indexed with a non compile-time constant
 };
 
diff --git a/glslang/Include/glslang_c_interface.h b/glslang/Include/glslang_c_interface.h
index 28d5233..9e5608c 100644
--- a/glslang/Include/glslang_c_interface.h
+++ b/glslang/Include/glslang_c_interface.h
@@ -157,13 +157,7 @@
     int max_task_work_group_size_y_ext;
     int max_task_work_group_size_z_ext;
     int max_mesh_view_count_ext;
-    union
-    {
-        int max_dual_source_draw_buffers_ext;
-
-        /* Incorrectly capitalized name retained for backward compatibility */
-        int maxDualSourceDrawBuffersEXT;
-    };
+    int maxDualSourceDrawBuffersEXT;
 
     glslang_limits_t limits;
 } glslang_resource_t;
@@ -251,7 +245,6 @@
 
 GLSLANG_EXPORT glslang_shader_t* glslang_shader_create(const glslang_input_t* input);
 GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader);
-GLSLANG_EXPORT void glslang_shader_set_preamble(glslang_shader_t* shader, const char* s);
 GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base);
 GLSLANG_EXPORT void glslang_shader_shift_binding_for_set(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base, unsigned int set);
 GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int options); // glslang_shader_options_t
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index ec2b28a..a024002 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -968,42 +968,7 @@
     EOpRayQueryGetIntersectionObjectToWorld,
     EOpRayQueryGetIntersectionWorldToObject,
 
-    // 
-    // GL_NV_shader_invocation_reorder
     //
-
-    EOpHitObjectTraceRayNV,
-    EOpHitObjectTraceRayMotionNV,
-    EOpHitObjectRecordHitNV,
-    EOpHitObjectRecordHitMotionNV,
-    EOpHitObjectRecordHitWithIndexNV,
-    EOpHitObjectRecordHitWithIndexMotionNV,
-    EOpHitObjectRecordMissNV,
-    EOpHitObjectRecordMissMotionNV,
-    EOpHitObjectRecordEmptyNV,
-    EOpHitObjectExecuteShaderNV,
-    EOpHitObjectIsEmptyNV,
-    EOpHitObjectIsMissNV,
-    EOpHitObjectIsHitNV,
-    EOpHitObjectGetRayTMinNV,
-    EOpHitObjectGetRayTMaxNV,
-    EOpHitObjectGetObjectRayOriginNV,
-    EOpHitObjectGetObjectRayDirectionNV,
-    EOpHitObjectGetWorldRayOriginNV,
-    EOpHitObjectGetWorldRayDirectionNV,
-    EOpHitObjectGetWorldToObjectNV,
-    EOpHitObjectGetObjectToWorldNV,
-    EOpHitObjectGetInstanceCustomIndexNV,
-    EOpHitObjectGetInstanceIdNV,
-    EOpHitObjectGetGeometryIndexNV,
-    EOpHitObjectGetPrimitiveIndexNV,
-    EOpHitObjectGetHitKindNV,
-    EOpHitObjectGetShaderBindingTableRecordIndexNV,
-    EOpHitObjectGetShaderRecordBufferHandleNV,
-    EOpHitObjectGetAttributesNV,
-    EOpHitObjectGetCurrentTimeNV,
-    EOpReorderThreadNV,
-
     // HLSL operations
     //
 
@@ -1121,31 +1086,31 @@
     virtual const glslang::TSourceLoc& getLoc() const { return loc; }
     virtual void setLoc(const glslang::TSourceLoc& l) { loc = l; }
     virtual void traverse(glslang::TIntermTraverser*) = 0;
-    virtual       glslang::TIntermTyped*         getAsTyped()               { return nullptr; }
-    virtual       glslang::TIntermOperator*      getAsOperator()            { return nullptr; }
-    virtual       glslang::TIntermConstantUnion* getAsConstantUnion()       { return nullptr; }
-    virtual       glslang::TIntermAggregate*     getAsAggregate()           { return nullptr; }
-    virtual       glslang::TIntermUnary*         getAsUnaryNode()           { return nullptr; }
-    virtual       glslang::TIntermBinary*        getAsBinaryNode()          { return nullptr; }
-    virtual       glslang::TIntermSelection*     getAsSelectionNode()       { return nullptr; }
-    virtual       glslang::TIntermSwitch*        getAsSwitchNode()          { return nullptr; }
-    virtual       glslang::TIntermMethod*        getAsMethodNode()          { return nullptr; }
-    virtual       glslang::TIntermSymbol*        getAsSymbolNode()          { return nullptr; }
-    virtual       glslang::TIntermBranch*        getAsBranchNode()          { return nullptr; }
-    virtual       glslang::TIntermLoop*          getAsLoopNode()            { return nullptr; }
+    virtual       glslang::TIntermTyped*         getAsTyped()               { return 0; }
+    virtual       glslang::TIntermOperator*      getAsOperator()            { return 0; }
+    virtual       glslang::TIntermConstantUnion* getAsConstantUnion()       { return 0; }
+    virtual       glslang::TIntermAggregate*     getAsAggregate()           { return 0; }
+    virtual       glslang::TIntermUnary*         getAsUnaryNode()           { return 0; }
+    virtual       glslang::TIntermBinary*        getAsBinaryNode()          { return 0; }
+    virtual       glslang::TIntermSelection*     getAsSelectionNode()       { return 0; }
+    virtual       glslang::TIntermSwitch*        getAsSwitchNode()          { return 0; }
+    virtual       glslang::TIntermMethod*        getAsMethodNode()          { return 0; }
+    virtual       glslang::TIntermSymbol*        getAsSymbolNode()          { return 0; }
+    virtual       glslang::TIntermBranch*        getAsBranchNode()          { return 0; }
+    virtual       glslang::TIntermLoop*          getAsLoopNode()            { return 0; }
 
-    virtual const glslang::TIntermTyped*         getAsTyped()         const { return nullptr; }
-    virtual const glslang::TIntermOperator*      getAsOperator()      const { return nullptr; }
-    virtual const glslang::TIntermConstantUnion* getAsConstantUnion() const { return nullptr; }
-    virtual const glslang::TIntermAggregate*     getAsAggregate()     const { return nullptr; }
-    virtual const glslang::TIntermUnary*         getAsUnaryNode()     const { return nullptr; }
-    virtual const glslang::TIntermBinary*        getAsBinaryNode()    const { return nullptr; }
-    virtual const glslang::TIntermSelection*     getAsSelectionNode() const { return nullptr; }
-    virtual const glslang::TIntermSwitch*        getAsSwitchNode()    const { return nullptr; }
-    virtual const glslang::TIntermMethod*        getAsMethodNode()    const { return nullptr; }
-    virtual const glslang::TIntermSymbol*        getAsSymbolNode()    const { return nullptr; }
-    virtual const glslang::TIntermBranch*        getAsBranchNode()    const { return nullptr; }
-    virtual const glslang::TIntermLoop*          getAsLoopNode()      const { return nullptr; }
+    virtual const glslang::TIntermTyped*         getAsTyped()         const { return 0; }
+    virtual const glslang::TIntermOperator*      getAsOperator()      const { return 0; }
+    virtual const glslang::TIntermConstantUnion* getAsConstantUnion() const { return 0; }
+    virtual const glslang::TIntermAggregate*     getAsAggregate()     const { return 0; }
+    virtual const glslang::TIntermUnary*         getAsUnaryNode()     const { return 0; }
+    virtual const glslang::TIntermBinary*        getAsBinaryNode()    const { return 0; }
+    virtual const glslang::TIntermSelection*     getAsSelectionNode() const { return 0; }
+    virtual const glslang::TIntermSwitch*        getAsSwitchNode()    const { return 0; }
+    virtual const glslang::TIntermMethod*        getAsMethodNode()    const { return 0; }
+    virtual const glslang::TIntermSymbol*        getAsSymbolNode()    const { return 0; }
+    virtual const glslang::TIntermBranch*        getAsBranchNode()    const { return 0; }
+    virtual const glslang::TIntermLoop*          getAsLoopNode()      const { return 0; }
     virtual ~TIntermNode() { }
 
 protected:
@@ -1651,8 +1616,8 @@
 //
 class TIntermUnary : public TIntermOperator {
 public:
-    TIntermUnary(TOperator o, TType& t) : TIntermOperator(o, t), operand(nullptr) {}
-    TIntermUnary(TOperator o) : TIntermOperator(o), operand(nullptr) {}
+    TIntermUnary(TOperator o, TType& t) : TIntermOperator(o, t), operand(0) {}
+    TIntermUnary(TOperator o) : TIntermOperator(o), operand(0) {}
     virtual void traverse(TIntermTraverser*);
     virtual void setOperand(TIntermTyped* o) { operand = o; }
     virtual       TIntermTyped* getOperand() { return operand; }
@@ -1854,7 +1819,7 @@
 
     TIntermNode *getParentNode()
     {
-        return path.size() == 0 ? nullptr : path.back();
+        return path.size() == 0 ? NULL : path.back();
     }
 
     const bool preVisit;
diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp
index 40f53bb..5fc61db 100644
--- a/glslang/MachineIndependent/Constant.cpp
+++ b/glslang/MachineIndependent/Constant.cpp
@@ -226,7 +226,7 @@
                     newConstArray[i].setU64Const(leftUnionArray[i].getU64Const() / rightUnionArray[i].getU64Const());
                 break;
             default:
-                return nullptr;
+                return 0;
 #endif
             }
         }
@@ -354,7 +354,7 @@
         break;
 
     default:
-        return nullptr;
+        return 0;
     }
 
     TIntermConstantUnion *newNode = new TIntermConstantUnion(newConstArray, returnType);
@@ -1345,7 +1345,7 @@
 {
     TType dereferencedType(node->getType(), index);
     dereferencedType.getQualifier().storage = EvqConst;
-    TIntermTyped* result = nullptr;
+    TIntermTyped* result = 0;
     int size = dereferencedType.computeNumComponents();
 
     // arrays, vectors, matrices, all use simple multiplicative math
@@ -1365,7 +1365,7 @@
 
     result = addConstantUnion(TConstUnionArray(node->getAsConstantUnion()->getConstArray(), start, size), node->getType(), loc);
 
-    if (result == nullptr)
+    if (result == 0)
         result = node;
     else
         result->setType(dereferencedType);
@@ -1387,7 +1387,7 @@
 
     TIntermTyped* result = addConstantUnion(constArray, node->getType(), loc);
 
-    if (result == nullptr)
+    if (result == 0)
         result = node;
     else
         result->setType(TType(node->getBasicType(), EvqConst, selectors.size()));
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 16287df..0cbb9e7 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -147,6 +147,10 @@
 #ifdef GLSLANG_WEB
     const Versioning* Es300Desktop130 = nullptr;
     const Versioning* Es310Desktop420 = nullptr;
+#elif defined(GLSLANG_ANGLE)
+    const Versioning* Es300Desktop130 = nullptr;
+    const Versioning* Es310Desktop420 = nullptr;
+    const Versioning* Es310Desktop450 = nullptr;
 #else
     const Versioning Es300Desktop130Version[] = { { EEsProfile,      0, 300, 0, nullptr },
                                                   { EDesktopProfile, 0, 130, 0, nullptr },
@@ -416,7 +420,7 @@
 // See if the tabled versioning information allows the current version.
 bool ValidVersion(const BuiltInFunction& function, int version, EProfile profile, const SpvVersion& /* spVersion */)
 {
-#if defined(GLSLANG_WEB)
+#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
     // all entries in table are valid
     return true;
 #endif
@@ -501,7 +505,7 @@
     prefixes[EbtFloat] =  "";
     prefixes[EbtInt]   = "i";
     prefixes[EbtUint]  = "u";
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     prefixes[EbtFloat16] = "f16";
     prefixes[EbtInt8]  = "i8";
     prefixes[EbtUint8] = "u8";
@@ -520,7 +524,9 @@
     dimMap[Esd3D] = 3;
     dimMap[EsdCube] = 3;
 #ifndef GLSLANG_WEB
+#ifndef GLSLANG_ANGLE
     dimMap[Esd1D] = 1;
+#endif
     dimMap[EsdRect] = 2;
     dimMap[EsdBuffer] = 1;
     dimMap[EsdSubpass] = 2;  // potentially unused for now
@@ -545,6 +551,9 @@
 #ifdef GLSLANG_WEB
     version = 310;
     profile = EEsProfile;
+#elif defined(GLSLANG_ANGLE)
+    version = 450;
+    profile = ECoreProfile;
 #endif
     addTabledBuiltins(version, profile, spvVersion);
 
@@ -590,6 +599,7 @@
         "vec4  fwidthCoarse(vec4  p);"
     );
 
+#ifndef GLSLANG_ANGLE
     TString derivativesAndControl16bits (
         "float16_t dFdx(float16_t);"
         "f16vec2   dFdx(f16vec2);"
@@ -1383,6 +1393,7 @@
             "\n"
         );
     }
+#endif // !GLSLANG_ANGLE
 
     if ((profile == EEsProfile && version >= 310) ||
         (profile != EEsProfile && version >= 430)) {
@@ -1420,6 +1431,7 @@
             "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     if (profile != EEsProfile && version >= 440) {
         commonBuiltins.append(
             "uint64_t atomicMin(coherent volatile inout uint64_t, uint64_t);"
@@ -1499,6 +1511,7 @@
             "void atomicStore(coherent volatile out double, double, int, int, int);"
             "\n");
     }
+#endif // !GLSLANG_ANGLE
 #endif // !GLSLANG_WEB
 
     if ((profile == EEsProfile && version >= 300) ||
@@ -1539,6 +1552,7 @@
             "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     if (profile != EEsProfile && version >= 150) {  // ARB_gpu_shader_fp64
             commonBuiltins.append(
                 "double fma(double, double, double);"
@@ -1556,6 +1570,7 @@
                 "f64vec4  fma(f64vec4,  f64vec4,  f64vec4 );"
                 "\n");
     }
+#endif
 
     if ((profile == EEsProfile && version >= 310) ||
         (profile != EEsProfile && version >= 400)) {
@@ -1573,6 +1588,7 @@
             "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     if (profile != EEsProfile && version >= 150) { // ARB_gpu_shader_fp64
         commonBuiltins.append(
             "double frexp(double, out int);"
@@ -1606,6 +1622,7 @@
             "\n");
     }
 #endif
+#endif
 
     if ((profile == EEsProfile && version >= 300) ||
         (profile != EEsProfile && version >= 150)) {
@@ -1714,6 +1731,7 @@
     }
 
 #ifndef GLSLANG_WEB
+#ifndef GLSLANG_ANGLE
     //
     // Original-style texture functions existing in all stages.
     // (Per-stage functions below.)
@@ -1908,6 +1926,7 @@
                 "\n");
         }
     }
+#endif // !GLSLANG_ANGLE
 
     // Bitfield
     if ((profile == EEsProfile && version >= 310) ||
@@ -2050,6 +2069,7 @@
             "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     // GL_ARB_shader_ballot
     if (profile != EEsProfile && version >= 450) {
         commonBuiltins.append(
@@ -3370,6 +3390,7 @@
             "bool textureFootprintGradClampNV(sampler2D, vec2, vec2, vec2, float, int, bool, out gl_TextureFootprint2DNV);"
             "\n");
     }
+#endif // !GLSLANG_ANGLE
 
     if ((profile == EEsProfile && version >= 300 && version < 310) ||
         (profile != EEsProfile && version >= 150 && version < 450)) { // GL_EXT_shader_integer_mix
@@ -3389,6 +3410,7 @@
                               "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     // GL_AMD_gpu_shader_half_float/Explicit types
     if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 310)) {
         commonBuiltins.append(
@@ -4162,6 +4184,7 @@
             "\n");
 
     }
+#endif // !GLSLANG_ANGLE
 
     //============================================================================
     //
@@ -4177,6 +4200,7 @@
     if (spvVersion.vulkan == 0 && IncludeLegacy(version, profile, spvVersion))
         stageBuiltins[EShLangVertex].append("vec4 ftransform();");
 
+#ifndef GLSLANG_ANGLE
     //
     // Original-style texture Functions with lod.
     //
@@ -4236,6 +4260,7 @@
                 "\n");
         }
     }
+#endif // !GLSLANG_ANGLE
 
     if ((profile != EEsProfile && version >= 150) ||
         (profile == EEsProfile && version >= 310)) {
@@ -4316,6 +4341,7 @@
 
     commonBuiltins.append("void debugPrintfEXT();\n");
 
+#ifndef GLSLANG_ANGLE
     if (profile != EEsProfile && version >= 450) {
         // coopMatStoreNV perhaps ought to have "out" on the buf parameter, but
         // adding it introduces undesirable tempArgs on the stack. What we want
@@ -4439,6 +4465,7 @@
 
             "\n");
     }
+#endif // !GLSLANG_ANGLE
 
     // GL_ARB_derivative_control
     if (profile != EEsProfile && version >= 400) {
@@ -4476,6 +4503,7 @@
         "bool helperInvocationEXT();"
         "\n");
 
+#ifndef GLSLANG_ANGLE
     // GL_AMD_shader_explicit_vertex_parameter
     if (profile != EEsProfile && version >= 450) {
         stageBuiltins[EShLangFragment].append(
@@ -4550,8 +4578,7 @@
             "\n");
         }
 
-    // Builtins for GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query/
-    // GL_NV_shader_invocation_reorder
+    // Builtins for GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query
     if (profile != EEsProfile && version >= 460) {
          commonBuiltins.append("void rayQueryInitializeEXT(rayQueryEXT, accelerationStructureEXT, uint, uint, vec3, float, vec3, float);"
             "void rayQueryTerminateEXT(rayQueryEXT);"
@@ -4584,39 +4611,6 @@
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
-            "void hitObjectTraceRayNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectTraceRayMotionNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitMotionNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitWithIndexNV(hitObjectNV, accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitWithIndexMotionNV(hitObjectNV, accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordMissNV(hitObjectNV,uint,vec3,float,vec3,float);"
-            "void hitObjectRecordMissMotionNV(hitObjectNV,uint,vec3,float,vec3,float,float);"
-            "void hitObjectRecordEmptyNV(hitObjectNV);"
-            "void hitObjectExecuteShaderNV(hitObjectNV,int);"
-            "bool hitObjectIsEmptyNV(hitObjectNV);"
-            "bool hitObjectIsMissNV(hitObjectNV);"
-            "bool hitObjectIsHitNV(hitObjectNV);"
-            "float hitObjectGetRayTMinNV(hitObjectNV);"
-            "float hitObjectGetRayTMaxNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayDirectionNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayDirectionNV(hitObjectNV);"
-            "mat4x3 hitObjectGetWorldToObjectNV(hitObjectNV);"
-            "mat4x3 hitObjectGetObjectToWorldNV(hitObjectNV);"
-            "int hitObjectGetInstanceCustomIndexNV(hitObjectNV);"
-            "int hitObjectGetInstanceIdNV(hitObjectNV);"
-            "int hitObjectGetGeometryIndexNV(hitObjectNV);"
-            "int hitObjectGetPrimitiveIndexNV(hitObjectNV);"
-            "uint hitObjectGetHitKindNV(hitObjectNV);"
-            "void hitObjectGetAttributesNV(hitObjectNV,int);"
-            "float hitObjectGetCurrentTimeNV(hitObjectNV);"
-            "uint hitObjectGetShaderBindingTableRecordIndexNV(hitObjectNV);"
-            "uvec2 hitObjectGetShaderRecordBufferHandleNV(hitObjectNV);"
-            "void reorderThreadNV(uint, uint);"
-            "void reorderThreadNV(hitObjectNV);"
-            "void reorderThreadNV(hitObjectNV, uint, uint);"
             "\n");
         stageBuiltins[EShLangIntersect].append(
             "bool reportIntersectionNV(float, uint);"
@@ -4632,36 +4626,6 @@
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
-            "void hitObjectTraceRayNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectTraceRayMotionNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitMotionNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitWithIndexNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitWithIndexMotionNV(hitObjectNV, accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordMissNV(hitObjectNV, uint, vec3, float, vec3, float);"
-            "void hitObjectRecordMissMotionNV(hitObjectNV,uint,vec3,float,vec3,float,float);"
-            "void hitObjectRecordEmptyNV(hitObjectNV);"
-            "void hitObjectExecuteShaderNV(hitObjectNV, int);"
-            "bool hitObjectIsEmptyNV(hitObjectNV);"
-            "bool hitObjectIsMissNV(hitObjectNV);"
-            "bool hitObjectIsHitNV(hitObjectNV);"
-            "float hitObjectGetRayTMinNV(hitObjectNV);"
-            "float hitObjectGetRayTMaxNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayDirectionNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayDirectionNV(hitObjectNV);"
-            "mat4x3 hitObjectGetWorldToObjectNV(hitObjectNV);"
-            "mat4x3 hitObjectGetObjectToWorldNV(hitObjectNV);"
-            "int hitObjectGetInstanceCustomIndexNV(hitObjectNV);"
-            "int hitObjectGetInstanceIdNV(hitObjectNV);"
-            "int hitObjectGetGeometryIndexNV(hitObjectNV);"
-            "int hitObjectGetPrimitiveIndexNV(hitObjectNV);"
-            "uint hitObjectGetHitKindNV(hitObjectNV);"
-            "void hitObjectGetAttributesNV(hitObjectNV,int);"
-            "float hitObjectGetCurrentTimeNV(hitObjectNV);"
-            "uint hitObjectGetShaderBindingTableRecordIndexNV(hitObjectNV);"
-            "uvec2 hitObjectGetShaderRecordBufferHandleNV(hitObjectNV);"
             "\n");
         stageBuiltins[EShLangMiss].append(
             "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
@@ -4669,48 +4633,20 @@
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
-            "void hitObjectTraceRayNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectTraceRayMotionNV(hitObjectNV,accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitMotionNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordHitWithIndexNV(hitObjectNV,accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,int);"
-            "void hitObjectRecordHitWithIndexMotionNV(hitObjectNV, accelerationStructureEXT,int,int,int,uint,uint,vec3,float,vec3,float,float,int);"
-            "void hitObjectRecordMissNV(hitObjectNV, uint, vec3, float, vec3, float);"
-            "void hitObjectRecordMissMotionNV(hitObjectNV,uint,vec3,float,vec3,float,float);"
-            "void hitObjectRecordEmptyNV(hitObjectNV);"
-            "void hitObjectExecuteShaderNV(hitObjectNV, int);"
-            "bool hitObjectIsEmptyNV(hitObjectNV);"
-            "bool hitObjectIsMissNV(hitObjectNV);"
-            "bool hitObjectIsHitNV(hitObjectNV);"
-            "float hitObjectGetRayTMinNV(hitObjectNV);"
-            "float hitObjectGetRayTMaxNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetWorldRayDirectionNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayOriginNV(hitObjectNV);"
-            "vec3 hitObjectGetObjectRayDirectionNV(hitObjectNV);"
-            "mat4x3 hitObjectGetWorldToObjectNV(hitObjectNV);"
-            "mat4x3 hitObjectGetObjectToWorldNV(hitObjectNV);"
-            "int hitObjectGetInstanceCustomIndexNV(hitObjectNV);"
-            "int hitObjectGetInstanceIdNV(hitObjectNV);"
-            "int hitObjectGetGeometryIndexNV(hitObjectNV);"
-            "int hitObjectGetPrimitiveIndexNV(hitObjectNV);"
-            "uint hitObjectGetHitKindNV(hitObjectNV);"
-            "void hitObjectGetAttributesNV(hitObjectNV,int);"
-            "float hitObjectGetCurrentTimeNV(hitObjectNV);"
-            "uint hitObjectGetShaderBindingTableRecordIndexNV(hitObjectNV);"
-            "uvec2 hitObjectGetShaderRecordBufferHandleNV(hitObjectNV);"
             "\n");
         stageBuiltins[EShLangCallable].append(
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
             "\n");
     }
+#endif // !GLSLANG_ANGLE
 
     //E_SPV_NV_compute_shader_derivatives
     if ((profile == EEsProfile && version >= 320) || (profile != EEsProfile && version >= 450)) {
         stageBuiltins[EShLangCompute].append(derivativeControls);
         stageBuiltins[EShLangCompute].append("\n");
     }
+#ifndef GLSLANG_ANGLE
     if (profile != EEsProfile && version >= 450) {
         stageBuiltins[EShLangCompute].append(derivativesAndControl16bits);
         stageBuiltins[EShLangCompute].append(derivativesAndControl64bits);
@@ -4734,6 +4670,7 @@
             "void SetMeshOutputsEXT(uint, uint);"
             "\n");
     }
+#endif // !GLSLANG_ANGLE
 #endif // !GLSLANG_WEB
 
     //============================================================================
@@ -4771,7 +4708,7 @@
             "\n");
     }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     if (spvVersion.spv == 0 && IncludeLegacy(version, profile, spvVersion)) {
         //
         // Matrix state. p. 31, 32, 37, 39, 40.
@@ -4889,7 +4826,7 @@
 
             "\n");
     }
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
 
     //============================================================================
     //
@@ -4920,6 +4857,7 @@
     }
 
 #ifndef GLSLANG_WEB
+#ifndef GLSLANG_ANGLE
     //============================================================================
     //
     // Define the interface to the mesh/task shader.
@@ -5036,6 +4974,7 @@
                 "\n");
         }
     }
+#endif // !GLSLANG_ANGLE
 
     //============================================================================
     //
@@ -5769,6 +5708,7 @@
             "\n");
     }
 
+#ifndef GLSLANG_ANGLE
     // GL_ARB_shader_ballot
     if (profile != EEsProfile && version >= 450) {
         const char* ballotDecls =
@@ -5831,12 +5771,6 @@
             "in highp   uint  gl_SMCountNV;"
             "in highp   uint  gl_WarpIDNV;"
             "in highp   uint  gl_SMIDNV;"
-            // GL_ARM_shader_core_builtins
-            "in highp   uint  gl_CoreIDARM;"
-            "in highp   uint  gl_CoreCountARM;"
-            "in highp   uint  gl_CoreMaxIDARM;"
-            "in highp   uint  gl_WarpIDARM;"
-            "in highp   uint  gl_WarpMaxIDARM;"
             "\n";
         const char* fragmentSubgroupDecls =
             "flat in mediump uint  gl_SubgroupSize;"
@@ -5851,12 +5785,6 @@
             "flat in highp   uint  gl_SMCountNV;"
             "flat in highp   uint  gl_WarpIDNV;"
             "flat in highp   uint  gl_SMIDNV;"
-            // GL_ARM_shader_core_builtins
-            "flat in highp   uint  gl_CoreIDARM;"
-            "flat in highp   uint  gl_CoreCountARM;"
-            "flat in highp   uint  gl_CoreMaxIDARM;"
-            "flat in highp   uint  gl_WarpIDARM;"
-            "flat in highp   uint  gl_WarpMaxIDARM;"
             "\n";
         const char* computeSubgroupDecls =
             "in highp   uint  gl_NumSubgroups;"
@@ -5876,12 +5804,6 @@
             "in highp    uint  gl_SMCountNV;"
             "in highp volatile uint  gl_WarpIDNV;"
             "in highp volatile uint  gl_SMIDNV;"
-            // GL_ARM_shader_core_builtins
-            "in highp   uint  gl_CoreIDARM;"
-            "in highp   uint  gl_CoreCountARM;"
-            "in highp   uint  gl_CoreMaxIDARM;"
-            "in highp   uint  gl_WarpIDARM;"
-            "in highp   uint  gl_WarpMaxIDARM;"
             "\n";
 
         stageBuiltins[EShLangVertex]        .append(subgroupDecls);
@@ -6145,6 +6067,8 @@
             }
         }
     }
+#endif // !GLSLANG_ANGLE
+    
 #endif // !GLSLANG_WEB
 
     // printf("%s\n", commonBuiltins.c_str());
@@ -6164,7 +6088,7 @@
 
     // enumerate all the types
     const TBasicType bTypes[] = { EbtFloat, EbtInt, EbtUint,
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         EbtFloat16
 #endif
     };
@@ -6198,7 +6122,11 @@
 #ifdef GLSLANG_WEB
                     for (int dim = Esd2D; dim <= EsdCube; ++dim) { // 2D, 3D, and Cube
 #else
+#if defined(GLSLANG_ANGLE)
+                    for (int dim = Esd2D; dim < EsdNumDims; ++dim) { // 2D, ..., buffer, subpass
+#else
                     for (int dim = Esd1D; dim < EsdNumDims; ++dim) { // 1D, ..., buffer, subpass
+#endif
                         if (dim == EsdSubpass && spvVersion.vulkan == 0)
                             continue;
                         if (dim == EsdSubpass && (image || shadow || arrayed))
@@ -6650,6 +6578,9 @@
 #ifdef GLSLANG_WEB
     profile = EEsProfile;
     version = 310;
+#elif defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
 #endif
 
     //
@@ -6726,7 +6657,7 @@
                                     continue;
 
                                 // loop over 16-bit floating-point texel addressing
-#if defined(GLSLANG_WEB)
+#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
                                 const int f16TexAddr = 0;
 #else
                                 for (int f16TexAddr = 0; f16TexAddr <= 1; ++f16TexAddr)
@@ -6739,7 +6670,7 @@
                                         totalDims--;
                                     }
                                     // loop over "bool" lod clamp
-#if defined(GLSLANG_WEB)
+#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
                                     const int lodClamp = 0;
 #else
                                     for (int lodClamp = 0; lodClamp <= 1 ;++lodClamp)
@@ -6751,7 +6682,7 @@
                                             continue;
 
                                         // loop over "bool" sparse or not
-#if defined(GLSLANG_WEB)
+#if defined(GLSLANG_WEB) || defined(GLSLANG_ANGLE)
                                         const int sparse = 0;
 #else
                                         for (int sparse = 0; sparse <= 1; ++sparse)
@@ -6935,6 +6866,9 @@
 #ifdef GLSLANG_WEB
     profile = EEsProfile;
     version = 310;
+#elif defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
 #endif
 
     switch (sampler.dim) {
@@ -7178,6 +7112,9 @@
 #ifdef GLSLANG_WEB
     version = 310;
     profile = EEsProfile;
+#elif defined(GLSLANG_ANGLE)
+    version = 450;
+    profile = ECoreProfile;
 #endif
 
     //
@@ -7610,6 +7547,7 @@
         s.append("\n");
     }
 
+#ifndef GLSLANG_ANGLE
     // atomic counters (some in compute below)
     if ((profile == EEsProfile && version >= 310) ||
         (profile != EEsProfile && version >= 420)) {
@@ -7646,6 +7584,7 @@
 
         s.append("\n");
     }
+#endif // !GLSLANG_ANGLE
 
     // GL_ARB_cull_distance
     if (profile != EEsProfile && version >= 450) {
@@ -7662,6 +7601,7 @@
         s.append(builtInConstant);
     }
 
+#ifndef GLSLANG_ANGLE
     // SPV_NV_mesh_shader
     if ((profile != EEsProfile && version >= 450) || (profile == EEsProfile && version >= 320)) {
         snprintf(builtInConstant, maxSize, "const int gl_MaxMeshOutputVerticesNV = %d;", resources.maxMeshOutputVerticesNV);
@@ -7685,6 +7625,7 @@
         s.append("\n");
     }
 #endif
+#endif
 
     s.append("\n");
 }
@@ -7790,6 +7731,9 @@
 #ifdef GLSLANG_WEB
     version = 310;
     profile = EEsProfile;
+#elif defined(GLSLANG_ANGLE)
+    version = 450;
+    profile = ECoreProfile;
 #endif
 
     //
@@ -8148,19 +8092,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
 
 		if (language == EShLangGeometry || language == EShLangVertex) {
@@ -8676,19 +8607,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
 
         if (profile == EEsProfile) {
@@ -8832,19 +8750,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
 
         // GL_KHR_shader_subgroup
@@ -8888,7 +8793,7 @@
 #endif // !GLSLANG_WEB
         break;
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     case EShLangRayGen:
     case EShLangIntersect:
     case EShLangAnyHit:
@@ -8946,38 +8851,6 @@
             symbolTable.setFunctionExtensions("executeCallableNV", 1, &E_GL_NV_ray_tracing);
             symbolTable.setFunctionExtensions("executeCallableEXT", 1, &E_GL_EXT_ray_tracing);
 
-            symbolTable.setFunctionExtensions("hitObjectTraceRayNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectTraceRayMotionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordHitNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordHitMotionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordHitWithIndexNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordHitWithIndexMotionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordMissNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordMissMotionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectRecordEmptyNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectExecuteShaderNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectIsEmptyNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectIsMissNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectIsHitNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetRayTMinNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetRayTMaxNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetObjectRayOriginNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetObjectRayDirectionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetWorldRayOriginNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetWorldRayDirectionNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetWorldToObjectNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetbjectToWorldNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetInstanceCustomIndexNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetInstanceIdNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetGeometryIndexNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetPrimitiveIndexNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetHitKindNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetAttributesNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetCurrentTimeNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetShaderBindingTableRecordIndexNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("hitObjectGetShaderRecordBufferHandleNV", 1, &E_GL_NV_shader_invocation_reorder);
-            symbolTable.setFunctionExtensions("reorderThreadNV", 1, &E_GL_NV_shader_invocation_reorder);
-
 
             BuiltInVariable("gl_LaunchIDNV",             EbvLaunchId,           symbolTable);
             BuiltInVariable("gl_LaunchIDEXT",            EbvLaunchId,           symbolTable);
@@ -9071,19 +8944,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
         if ((profile == EEsProfile && version >= 310) ||
             (profile != EEsProfile && version >= 450)) {
@@ -9290,19 +9150,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
 
         if ((profile == EEsProfile && version >= 310) ||
@@ -9433,19 +9280,6 @@
             BuiltInVariable("gl_SMCountNV",             EbvSMCount,         symbolTable);
             BuiltInVariable("gl_WarpIDNV",              EbvWarpID,          symbolTable);
             BuiltInVariable("gl_SMIDNV",                EbvSMID,            symbolTable);
-
-            // GL_ARM_shader_core_builtins
-            symbolTable.setVariableExtensions("gl_CoreCountARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_CoreMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpIDARM",    1, &E_GL_ARM_shader_core_builtins);
-            symbolTable.setVariableExtensions("gl_WarpMaxIDARM", 1, &E_GL_ARM_shader_core_builtins);
-
-            BuiltInVariable("gl_CoreCountARM", EbvCoreCountARM, symbolTable);
-            BuiltInVariable("gl_CoreIDARM",    EbvCoreIDARM, symbolTable);
-            BuiltInVariable("gl_CoreMaxIDARM", EbvCoreMaxIDARM, symbolTable);
-            BuiltInVariable("gl_WarpIDARM",    EbvWarpIDARM, symbolTable);
-            BuiltInVariable("gl_WarpMaxIDARM", EbvWarpMaxIDARM, symbolTable);
         }
         if ((profile == EEsProfile && version >= 310) ||
             (profile != EEsProfile && version >= 450)) {
@@ -9981,38 +9815,6 @@
             symbolTable.relateToOperator("traceRayEXT", EOpTraceKHR);
             symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV);
             symbolTable.relateToOperator("executeCallableEXT", EOpExecuteCallableKHR);
-
-            symbolTable.relateToOperator("hitObjectTraceRayNV", EOpHitObjectTraceRayNV);
-            symbolTable.relateToOperator("hitObjectTraceRayMotionNV", EOpHitObjectTraceRayMotionNV);
-            symbolTable.relateToOperator("hitObjectRecordHitNV", EOpHitObjectRecordHitNV);
-            symbolTable.relateToOperator("hitObjectRecordHitMotionNV", EOpHitObjectRecordHitMotionNV);
-            symbolTable.relateToOperator("hitObjectRecordHitWithIndexNV", EOpHitObjectRecordHitWithIndexNV);
-            symbolTable.relateToOperator("hitObjectRecordHitWithIndexMotionNV", EOpHitObjectRecordHitWithIndexMotionNV);
-            symbolTable.relateToOperator("hitObjectRecordMissNV", EOpHitObjectRecordMissNV);
-            symbolTable.relateToOperator("hitObjectRecordMissMotionNV", EOpHitObjectRecordMissMotionNV);
-            symbolTable.relateToOperator("hitObjectRecordEmptyNV", EOpHitObjectRecordEmptyNV);
-            symbolTable.relateToOperator("hitObjectExecuteShaderNV", EOpHitObjectExecuteShaderNV);
-            symbolTable.relateToOperator("hitObjectIsEmptyNV", EOpHitObjectIsEmptyNV);
-            symbolTable.relateToOperator("hitObjectIsMissNV", EOpHitObjectIsMissNV);
-            symbolTable.relateToOperator("hitObjectIsHitNV", EOpHitObjectIsHitNV);
-            symbolTable.relateToOperator("hitObjectGetRayTMinNV", EOpHitObjectGetRayTMinNV);
-            symbolTable.relateToOperator("hitObjectGetRayTMaxNV", EOpHitObjectGetRayTMaxNV);
-            symbolTable.relateToOperator("hitObjectGetObjectRayOriginNV", EOpHitObjectGetObjectRayOriginNV);
-            symbolTable.relateToOperator("hitObjectGetObjectRayDirectionNV", EOpHitObjectGetObjectRayDirectionNV);
-            symbolTable.relateToOperator("hitObjectGetWorldRayOriginNV", EOpHitObjectGetWorldRayOriginNV);
-            symbolTable.relateToOperator("hitObjectGetWorldRayDirectionNV", EOpHitObjectGetWorldRayDirectionNV);
-            symbolTable.relateToOperator("hitObjectGetWorldToObjectNV", EOpHitObjectGetWorldToObjectNV);
-            symbolTable.relateToOperator("hitObjectGetObjectToWorldNV", EOpHitObjectGetObjectToWorldNV);
-            symbolTable.relateToOperator("hitObjectGetInstanceCustomIndexNV", EOpHitObjectGetInstanceCustomIndexNV);
-            symbolTable.relateToOperator("hitObjectGetInstanceIdNV", EOpHitObjectGetInstanceIdNV);
-            symbolTable.relateToOperator("hitObjectGetGeometryIndexNV", EOpHitObjectGetGeometryIndexNV);
-            symbolTable.relateToOperator("hitObjectGetPrimitiveIndexNV", EOpHitObjectGetPrimitiveIndexNV);
-            symbolTable.relateToOperator("hitObjectGetHitKindNV", EOpHitObjectGetHitKindNV);
-            symbolTable.relateToOperator("hitObjectGetAttributesNV", EOpHitObjectGetAttributesNV);
-            symbolTable.relateToOperator("hitObjectGetCurrentTimeNV", EOpHitObjectGetCurrentTimeNV);
-            symbolTable.relateToOperator("hitObjectGetShaderBindingTableRecordIndexNV", EOpHitObjectGetShaderBindingTableRecordIndexNV);
-            symbolTable.relateToOperator("hitObjectGetShaderRecordBufferHandleNV", EOpHitObjectGetShaderRecordBufferHandleNV);
-            symbolTable.relateToOperator("reorderThreadNV", EOpReorderThreadNV);
         }
         break;
     case EShLangIntersect:
@@ -10074,6 +9876,10 @@
 void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TSymbolTable& symbolTable, const TBuiltInResource &resources)
 {
 #ifndef GLSLANG_WEB
+#if defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
+#endif
     if (profile != EEsProfile && version >= 430 && version < 440) {
         symbolTable.setVariableExtensions("gl_MaxTransformFeedbackBuffers", 1, &E_GL_ARB_enhanced_layouts);
         symbolTable.setVariableExtensions("gl_MaxTransformFeedbackInterleavedComponents", 1, &E_GL_ARB_enhanced_layouts);
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index e542f90..6a43ef3 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -352,7 +352,7 @@
 TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child,
     const TSourceLoc& loc)
 {
-    if (child == nullptr)
+    if (child == 0)
         return nullptr;
 
     if (child->getType().getBasicType() == EbtBlock)
@@ -751,11 +751,6 @@
         case EbtInt64:   newOp = EOpConvInt64ToUint;   break;
         case EbtUint64:  newOp = EOpConvUint64ToUint;  break;
 #endif
-        // For bindless texture type conversion, add a dummy convert op, just
-        // to generate a new TIntermTyped
-        // uvec2(any sampler type)
-        // uvec2(any image type)
-        case EbtSampler: newOp = EOpConvIntToUint;  break;
         default:
             return false;
         }
diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp
index 758572b..616580f 100644
--- a/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/glslang/MachineIndependent/ParseContextBase.cpp
@@ -159,8 +159,7 @@
         //
         switch (node->getBasicType()) {
         case EbtSampler:
-            if (extensionTurnedOn(E_GL_ARB_bindless_texture) == false)
-                message = "can't modify a sampler";
+            message = "can't modify a sampler";
             break;
         case EbtVoid:
             message = "can't modify void";
@@ -175,9 +174,6 @@
         case EbtRayQuery:
             message = "can't modify rayQueryEXT";
             break;
-        case EbtHitObjectNV:
-            message = "can't modify hitObjectNV";
-            break;
 #endif
         default:
             break;
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 515137b..e2ac43c 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -608,15 +608,6 @@
 #ifndef GLSLANG_WEB
         if (base->getType().isUnsizedArray()) {
             base->getWritableType().updateImplicitArraySize(indexValue + 1);
-            base->getWritableType().setImplicitlySized(true);
-            if (base->getQualifier().builtIn == EbvClipDistance &&
-                indexValue >= resources.maxClipDistances) {
-                error(loc, "gl_ClipDistance", "[", "array index out of range '%d'", indexValue);
-            }
-            else if (base->getQualifier().builtIn == EbvCullDistance &&
-                indexValue >= resources.maxCullDistances) {
-                error(loc, "gl_CullDistance", "[", "array index out of range '%d'", indexValue);
-            }
             // For 2D per-view builtin arrays, update the inner dimension size in parent type
             if (base->getQualifier().isPerView() && base->getQualifier().builtIn != EbvNone) {
                 TIntermBinary* binaryNode = base->getAsBinaryNode();
@@ -845,16 +836,12 @@
     } else if (language == EShLangMesh) {
         unsigned int maxPrimitives =
             intermediate.getPrimitives() != TQualifier::layoutNotSet ? intermediate.getPrimitives() : 0;
-        if (qualifier.builtIn == EbvPrimitiveIndicesNV) {
+        if (qualifier.builtIn == EbvPrimitiveIndicesNV || qualifier.builtIn == EbvPrimitiveTriangleIndicesEXT ||
+            qualifier.builtIn == EbvPrimitiveLineIndicesEXT || qualifier.builtIn == EbvPrimitivePointIndicesEXT) {
             expectedSize = maxPrimitives * TQualifier::mapGeometryToSize(intermediate.getOutputPrimitive());
             str = "max_primitives*";
             str += TQualifier::getGeometryString(intermediate.getOutputPrimitive());
         }
-        else if (qualifier.builtIn == EbvPrimitiveTriangleIndicesEXT || qualifier.builtIn == EbvPrimitiveLineIndicesEXT ||
-                 qualifier.builtIn == EbvPrimitivePointIndicesEXT) {
-            expectedSize = maxPrimitives;
-            str = "max_primitives";
-        }
         else if (qualifier.isPerPrimitive()) {
             expectedSize = maxPrimitives;
             str = "max_primitives";
@@ -1035,22 +1022,14 @@
             inheritMemoryQualifiers(base->getQualifier(), result->getWritableType().getQualifier());
         } else {
             auto baseSymbol = base;
-            while (baseSymbol->getAsSymbolNode() == nullptr) {
-                auto binaryNode = baseSymbol->getAsBinaryNode();
-                if (binaryNode == nullptr) break;
-                baseSymbol = binaryNode->getLeft();
-            }
-            if (baseSymbol->getAsSymbolNode() != nullptr) {
-                TString structName;
-                structName.append("\'").append(baseSymbol->getAsSymbolNode()->getName().c_str()).append("\'");
-                error(loc, "no such field in structure", field.c_str(), structName.c_str());
-            } else {
-                error(loc, "no such field in structure", field.c_str(), "");
-            }
+            while (baseSymbol->getAsSymbolNode() == nullptr)
+                baseSymbol = baseSymbol->getAsBinaryNode()->getLeft();
+            TString structName;
+            structName.append("\'").append(baseSymbol->getAsSymbolNode()->getName().c_str()).append( "\'");
+            error(loc, "no such field in structure", field.c_str(), structName.c_str());
         }
     } else
-        error(loc, "does not apply to this type:", field.c_str(),
-          base->getType().getCompleteString(intermediate.getEnhancedMsgs()).c_str());
+        error(loc, "does not apply to this type:", field.c_str(), base->getType().getCompleteString(intermediate.getEnhancedMsgs()).c_str());
 
     // Propagate noContraction up the dereference chain
     if (base->getQualifier().isNoContraction())
@@ -1182,7 +1161,7 @@
     if (symbol && builtIn && function.getBuiltInOp() == EOpSpirvInst)
         symbol = nullptr;
 #endif
-    const TFunction* prevDec = symbol ? symbol->getAsFunction() : nullptr;
+    const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0;
     if (prevDec) {
         if (prevDec->isPrototyped() && prototype)
             profileRequires(loc, EEsProfile, 300, nullptr, "multiple prototypes for same function");
@@ -1406,8 +1385,7 @@
 #endif
                     const TType& argType = arg->getAsTyped()->getType();
                     const TQualifier& argQualifier = argType.getQualifier();
-                    bool containsBindlessSampler = intermediate.getBindlessMode() && argType.containsSampler();
-                    if (argQualifier.isMemory() && !containsBindlessSampler && (argType.containsOpaque() || argType.isReference())) {
+                    if (argQualifier.isMemory() && (argType.containsOpaque() || argType.isReference())) {
                         const char* message = "argument cannot drop memory qualifier when passed to formal parameter";
 #ifndef GLSLANG_WEB
                         if (argQualifier.volatil && ! formalQualifier.volatil)
@@ -1693,13 +1671,9 @@
             error(loc, "type does not match, or is not convertible to, the function's return type", "return", "");
             branch = intermediate.addBranch(EOpReturn, value, loc);
         }
-    } else {
-        if (value->getType().isTexture() || value->getType().isImage()) {
-            if (!extensionTurnedOn(E_GL_ARB_bindless_texture))
-                error(loc, "sampler or image can be used as return type only when the extension GL_ARB_bindless_texture enabled", "return", "");
-        }
+    } else
         branch = intermediate.addBranch(EOpReturn, value, loc);
-    }
+
     branch->updatePrecision(currentFunctionType->getQualifier().precision);
     return branch;
 }
@@ -1950,9 +1924,6 @@
     if ((op == EOpAddAssign || op == EOpSubAssign) && left->isReference())
         requireExtensions(loc, 1, &E_GL_EXT_buffer_reference2, "+= and -= on a buffer reference");
 
-    if (op == EOpAssign && left->getBasicType() == EbtSampler && right->getBasicType() == EbtSampler)
-        requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "sampler assignment for bindless texture");
-
     return intermediate.addAssign(op, left, right, loc);
 }
 
@@ -2385,79 +2356,6 @@
         }
         break;
 
-    case EOpHitObjectTraceRayNV:
-        if (!(*argp)[11]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "payload number", "");
-        else {
-            unsigned int location = (*argp)[11]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0)
-                error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectTraceRayMotionNV:
-        if (!(*argp)[12]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "payload number", "");
-        else {
-            unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0)
-                error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectExecuteShaderNV:
-        if (!(*argp)[1]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "payload number", "");
-        else {
-            unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(0, location) < 0)
-                error(loc, "with layout(location =", "no rayPayloadEXT/rayPayloadInEXT declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectRecordHitNV:
-        if (!(*argp)[12]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "hitobjectattribute number", "");
-        else {
-            unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0)
-                error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectRecordHitMotionNV:
-        if (!(*argp)[13]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "hitobjectattribute number", "");
-        else {
-            unsigned int location = (*argp)[13]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0)
-                error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectRecordHitWithIndexNV:
-        if (!(*argp)[11]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "hitobjectattribute number", "");
-        else {
-            unsigned int location = (*argp)[11]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0)
-                error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectRecordHitWithIndexMotionNV:
-        if (!(*argp)[12]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "hitobjectattribute number", "");
-        else {
-            unsigned int location = (*argp)[12]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0)
-                error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location);
-        }
-        break;
-    case EOpHitObjectGetAttributesNV:
-        if (!(*argp)[1]->getAsConstantUnion())
-            error(loc, "argument must be compile-time constant", "hitobjectattribute number", "");
-        else {
-            unsigned int location = (*argp)[1]->getAsConstantUnion()->getAsConstantUnion()->getConstArray()[0].getUConst();
-            if (!extensionTurnedOn(E_GL_EXT_spirv_intrinsics) && intermediate.checkLocationRT(2, location) < 0)
-                error(loc, "with layout(location =", "no hitObjectAttributeNV declared", "%d)", location);
-        }
-        break;
-
     case EOpRayQueryGetIntersectionType:
     case EOpRayQueryGetIntersectionT:
     case EOpRayQueryGetIntersectionInstanceCustomIndex:
@@ -2909,14 +2807,6 @@
         profileRequires(loc, EEsProfile, 300, nullptr, "arrayed constructor");
     }
 
-    // Reuse EOpConstructTextureSampler for bindless image constructor
-    // uvec2 imgHandle;
-    // imageLoad(image1D(imgHandle), 0);
-    if (type.isImage() && extensionTurnedOn(E_GL_ARB_bindless_texture))
-    {
-        intermediate.setBindlessImageMode(currentCaller, AstRefTypeFunc);
-    }
-
     TOperator op = intermediate.mapTypeToConstructorOp(type);
 
     if (op == EOpNull) {
@@ -3246,7 +3136,7 @@
             ppWarn(loc, "\"defined\" is (un)defined:", op,  identifier);
         else
             ppError(loc, "\"defined\" can't be (un)defined:", op,  identifier);
-    else if (strstr(identifier, "__") != nullptr && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) {
+    else if (strstr(identifier, "__") != 0 && !extensionTurnedOn(E_GL_EXT_spirv_intrinsics)) {
         // The extension GL_EXT_spirv_intrinsics allows us to declare macros prefixed with "__".
         if (isEsProfile() && version >= 300 &&
             (strcmp(identifier, "__LINE__") == 0 ||
@@ -3650,13 +3540,8 @@
         return true;
     }
     if (op != EOpConstructStruct && op != EOpConstructNonuniform && typed->getBasicType() == EbtSampler) {
-        if (op == EOpConstructUVec2 && extensionTurnedOn(E_GL_ARB_bindless_texture)) {
-            intermediate.setBindlessTextureMode(currentCaller, AstRefTypeFunc);
-        }
-        else {
-            error(loc, "cannot convert a sampler", constructorString.c_str(), "");
-            return true;
-        }
+        error(loc, "cannot convert a sampler", constructorString.c_str(), "");
+        return true;
     }
     if (op != EOpConstructStruct && typed->isAtomic()) {
         error(loc, "cannot convert an atomic_uint", constructorString.c_str(), "");
@@ -3676,26 +3561,6 @@
 {
     TString constructorName = function.getType().getBasicTypeString();  // TODO: performance: should not be making copy; interface needs to change
     const char* token = constructorName.c_str();
-    // verify the constructor for bindless texture, the input must be ivec2 or uvec2
-    if (function.getParamCount() == 1) {
-        TType* pType = function[0].type;
-        TBasicType basicType = pType->getBasicType();
-        bool isIntegerVec2 = ((basicType == EbtUint || basicType == EbtInt) && pType->getVectorSize() == 2);
-        bool bindlessMode = extensionTurnedOn(E_GL_ARB_bindless_texture);
-        if (isIntegerVec2 && bindlessMode) {
-            if (pType->getSampler().isImage())
-                intermediate.setBindlessImageMode(currentCaller, AstRefTypeFunc);
-            else
-                intermediate.setBindlessTextureMode(currentCaller, AstRefTypeFunc);
-            return false;
-        } else {
-            if (!bindlessMode)
-                error(loc, "sampler-constructor requires the extension GL_ARB_bindless_texture enabled", token, "");
-            else
-                error(loc, "sampler-constructor requires the input to be ivec2 or uvec2", token, "");
-            return true;
-        }
-    }
 
     // exactly two arguments needed
     if (function.getParamCount() != 2) {
@@ -3791,32 +3656,13 @@
     if (type.getQualifier().storage == EvqUniform)
         return;
 
-    if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtSampler)) {
-        // For bindless texture, sampler can be declared as an struct member
-        if (extensionTurnedOn(E_GL_ARB_bindless_texture)) {
-            if (type.getSampler().isImage())
-                intermediate.setBindlessImageMode(currentCaller, AstRefTypeVar);
-            else
-                intermediate.setBindlessTextureMode(currentCaller, AstRefTypeVar);
-        }
-        else {
-            error(loc, "non-uniform struct contains a sampler or image:", type.getBasicTypeString().c_str(), identifier.c_str());
-        }
-    }
+    if (type.getBasicType() == EbtStruct && containsFieldWithBasicType(type, EbtSampler))
+        error(loc, "non-uniform struct contains a sampler or image:", type.getBasicTypeString().c_str(), identifier.c_str());
     else if (type.getBasicType() == EbtSampler && type.getQualifier().storage != EvqUniform) {
-        // For bindless texture, sampler can be declared as an input/output/block member
-        if (extensionTurnedOn(E_GL_ARB_bindless_texture)) {
-            if (type.getSampler().isImage())
-                intermediate.setBindlessImageMode(currentCaller, AstRefTypeVar);
-            else
-                intermediate.setBindlessTextureMode(currentCaller, AstRefTypeVar);
-        }
-        else {
-            // non-uniform sampler
-            // not yet:  okay if it has an initializer
-            // if (! initializer)
-            error(loc, "sampler/image types can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str());
-        }
+        // non-uniform sampler
+        // not yet:  okay if it has an initializer
+        // if (! initializer)
+        error(loc, "sampler/image types can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str());
     }
 }
 
@@ -3882,7 +3728,7 @@
 //
 // Check/fix just a full qualifier (no variables or types yet, but qualifier is complete) at global level.
 //
-void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& qualifier, bool isMemberCheck, const TPublicType* publicType)
+void TParseContext::globalQualifierFixCheck(const TSourceLoc& loc, TQualifier& qualifier, bool isMemberCheck)
 {
     bool nonuniformOkay = false;
 
@@ -3918,11 +3764,6 @@
         {
             requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "default std430 layout for uniform");
         }
-
-        if (publicType != nullptr && publicType->isImage() &&
-            (qualifier.layoutFormat > ElfExtSizeGuard && qualifier.layoutFormat < ElfCount))
-            qualifier.layoutFormat = mapLegacyLayoutFormat(qualifier.layoutFormat, publicType->sampler.getBasicType());
-
         break;
     default:
         break;
@@ -4327,7 +4168,7 @@
 
 void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier qualifier, const TType& type)
 {
-    if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque() && !intermediate.getBindlessMode())
+    if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque())
         error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), "");
     if (!parsingBuiltins && type.contains16BitFloat())
         requireFloat16Arithmetic(loc, type.getBasicTypeString().c_str(), "float16 types can only be in uniform block or buffer storage");
@@ -4671,7 +4512,7 @@
 
     // check for additional things allowed by GL_EXT_nonuniform_qualifier
     if (base.getBasicType() == EbtSampler || base.getBasicType() == EbtAccStruct || base.getBasicType() == EbtRayQuery ||
-        base.getBasicType() == EbtHitObjectNV || (base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer()))
+        (base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer()))
         requireExtensions(loc, 1, &E_GL_EXT_nonuniform_qualifier, "variable index");
     else
         error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable");
@@ -5260,7 +5101,7 @@
 
 void TParseContext::opaqueCheck(const TSourceLoc& loc, const TType& type, const char* op)
 {
-    if (containsFieldWithBasicType(type, EbtSampler) && !extensionTurnedOn(E_GL_ARB_bindless_texture))
+    if (containsFieldWithBasicType(type, EbtSampler))
         error(loc, "can't use with samplers or structs containing samplers", op, "");
 }
 
@@ -5361,7 +5202,7 @@
     bool badInit = false;
     if (! init || ! init->getAsAggregate() || init->getAsAggregate()->getSequence().size() != 1)
         badInit = true;
-    TIntermBinary* binaryInit = nullptr;
+    TIntermBinary* binaryInit = 0;
     if (! badInit) {
         // get the declaration assignment
         binaryInit = init->getAsAggregate()->getSequence()[0]->getAsBinaryNode();
@@ -5635,28 +5476,6 @@
         intermediate.setUsePhysicalStorageBuffer();
         return;
     }
-    if (id == "bindless_sampler") {
-        requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "bindless_sampler");
-        publicType.qualifier.layoutBindlessSampler = true;
-        intermediate.setBindlessTextureMode(currentCaller, AstRefTypeLayout);
-        return;
-    }
-    if (id == "bindless_image") {
-        requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "bindless_image");
-        publicType.qualifier.layoutBindlessImage = true;
-        intermediate.setBindlessImageMode(currentCaller, AstRefTypeLayout);
-        return;
-    }
-    if (id == "bound_sampler") {
-        requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "bound_sampler");
-        publicType.qualifier.layoutBindlessSampler = false;
-        return;
-    }
-    if (id == "bound_image") {
-        requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "bound_image");
-        publicType.qualifier.layoutBindlessImage = false;
-        return;
-    }
     if (language == EShLangGeometry || language == EShLangTessEvaluation || language == EShLangMesh) {
         if (id == TQualifier::getGeometryString(ElgTriangles)) {
             publicType.shaderQualifiers.geometry = ElgTriangles;
@@ -5851,10 +5670,6 @@
                 }
                 publicType.qualifier.layoutShaderRecord = true;
                 return;
-            } else if (id == "hitobjectshaderrecordnv") {
-                requireExtensions(loc, 1, &E_GL_NV_shader_invocation_reorder, "hitobject shader record NV");
-                publicType.qualifier.layoutHitObjectShaderRecordNV = true;
-                return;
             }
 
         }
@@ -6158,14 +5973,8 @@
         if (id == "max_vertices") {
             requireExtensions(loc, Num_AEP_mesh_shader, AEP_mesh_shader, "max_vertices");
             publicType.shaderQualifiers.vertices = value;
-            int max = extensionTurnedOn(E_GL_EXT_mesh_shader) ? resources.maxMeshOutputVerticesEXT
-                                                              : resources.maxMeshOutputVerticesNV;
-            if (value > max) {
-                TString maxsErrtring = "too large, must be less than ";
-                maxsErrtring.append(extensionTurnedOn(E_GL_EXT_mesh_shader) ? "gl_MaxMeshOutputVerticesEXT"
-                                                                            : "gl_MaxMeshOutputVerticesNV");
-                error(loc, maxsErrtring.c_str(), "max_vertices", "");
-            }
+            if (value > resources.maxMeshOutputVerticesNV)
+                error(loc, "too large, must be less than gl_MaxMeshOutputVerticesNV", "max_vertices", "");
             if (nonLiteral)
                 error(loc, "needs a literal integer", "max_vertices", "");
             return;
@@ -6173,14 +5982,8 @@
         if (id == "max_primitives") {
             requireExtensions(loc, Num_AEP_mesh_shader, AEP_mesh_shader, "max_primitives");
             publicType.shaderQualifiers.primitives = value;
-            int max = extensionTurnedOn(E_GL_EXT_mesh_shader) ? resources.maxMeshOutputPrimitivesEXT
-                                                              : resources.maxMeshOutputPrimitivesNV;
-            if (value > max) {
-                TString maxsErrtring = "too large, must be less than ";
-                maxsErrtring.append(extensionTurnedOn(E_GL_EXT_mesh_shader) ? "gl_MaxMeshOutputPrimitivesEXT"
-                                                                            : "gl_MaxMeshOutputPrimitivesNV");
-                error(loc, maxsErrtring.c_str(), "max_primitives", "");
-            }
+            if (value > resources.maxMeshOutputPrimitivesNV)
+                error(loc, "too large, must be less than gl_MaxMeshOutputPrimitivesNV", "max_primitives", "");
             if (nonLiteral)
                 error(loc, "needs a literal integer", "max_primitives", "");
             return;
@@ -6196,7 +5999,7 @@
             if (language == EShLangMesh || language == EShLangTask) {
                 requireExtensions(loc, Num_AEP_mesh_shader, AEP_mesh_shader, "gl_WorkGroupSize");
             } else {
-                profileRequires(loc, EEsProfile, 310, nullptr, "gl_WorkGroupSize");
+                profileRequires(loc, EEsProfile, 310, 0, "gl_WorkGroupSize");
                 profileRequires(loc, ~EEsProfile, 430, E_GL_ARB_compute_shader, "gl_WorkGroupSize");
             }
 #endif
@@ -6318,16 +6121,10 @@
             dst.layoutSecondaryViewportRelativeOffset = src.layoutSecondaryViewportRelativeOffset;
         if (src.layoutShaderRecord)
             dst.layoutShaderRecord = true;
-        if (src.layoutBindlessSampler)
-            dst.layoutBindlessSampler = true;
-        if (src.layoutBindlessImage)
-            dst.layoutBindlessImage = true;
         if (src.pervertexNV)
             dst.pervertexNV = true;
         if (src.pervertexEXT)
             dst.pervertexEXT = true;
-        if (src.layoutHitObjectShaderRecordNV)
-            dst.layoutHitObjectShaderRecordNV = true;
 #endif
     }
 }
@@ -6485,7 +6282,6 @@
         case EvqHitAttr:
         case EvqCallableData:
         case EvqCallableDataIn:
-        case EvqHitObjectAttrNV:
             break;
 #endif
         default:
@@ -6606,7 +6402,7 @@
 
     // Image format
     if (qualifier.hasFormat()) {
-        if (! type.isImage() && !intermediate.getBindlessImageMode())
+        if (! type.isImage())
             error(loc, "only apply to images", TQualifier::getLayoutFormatString(qualifier.getFormat()), "");
         else {
             if (type.getSampler().type == EbtFloat && qualifier.getFormat() > ElfFloatGuard)
@@ -6625,7 +6421,7 @@
                 }
             }
         }
-    } else if (type.isImage() && ! qualifier.isWriteOnly() && !intermediate.getBindlessImageMode()) {
+    } else if (type.isImage() && ! qualifier.isWriteOnly()) {
         const char *explanation = "image variables not declared 'writeonly' and without a format layout qualifier";
         requireProfile(loc, ECoreProfile | ECompatibilityProfile, explanation);
         profileRequires(loc, ECoreProfile | ECompatibilityProfile, 0, E_GL_EXT_shader_image_load_formatted, explanation);
@@ -7270,7 +7066,7 @@
             realFunc.addParameter(TParameter().copyParam((*function)[i]));
         }
 
-        TParameter tmpP = { nullptr, &uintType };
+        TParameter tmpP = { 0, &uintType };
         realFunc.addParameter(TParameter().copyParam(tmpP));
         arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(1, loc, true));
 
@@ -7287,7 +7083,7 @@
             realFunc.addParameter(TParameter().copyParam((*function)[i]));
         }
 
-        TParameter tmpP = { nullptr, &uintType };
+        TParameter tmpP = { 0, &uintType };
         realFunc.addParameter(TParameter().copyParam(tmpP));
         arguments = intermediate.growAggregate(arguments, intermediate.addConstantUnion(-1, loc, true));
 
@@ -7441,10 +7237,7 @@
     if (initializer) {
         if (type.getBasicType() == EbtRayQuery) {
             error(loc, "ray queries can only be initialized by using the rayQueryInitializeEXT intrinsic:", "=", identifier.c_str());
-        } else if (type.getBasicType() == EbtHitObjectNV) {
-            error(loc, "hit objects cannot be initialized using initializers", "=", identifier.c_str());
         }
-
     }
 
     if (type.isCoopMat()) {
@@ -7936,14 +7729,12 @@
     // Combined texture-sampler constructors are completely semantic checked
     // in constructorTextureSamplerError()
     if (op == EOpConstructTextureSampler) {
-        if (aggrNode != nullptr) {
-            if (aggrNode->getSequence()[1]->getAsTyped()->getType().getSampler().shadow) {
-                // Transfer depth into the texture (SPIR-V image) type, as a hint
-                // for tools to know this texture/image is a depth image.
-                aggrNode->getSequence()[0]->getAsTyped()->getWritableType().getSampler().shadow = true;
-            }
-            return intermediate.setAggregateOperator(aggrNode, op, type, loc);
+        if (aggrNode->getSequence()[1]->getAsTyped()->getType().getSampler().shadow) {
+            // Transfer depth into the texture (SPIR-V image) type, as a hint
+            // for tools to know this texture/image is a depth image.
+            aggrNode->getSequence()[0]->getAsTyped()->getWritableType().getSampler().shadow = true;
         }
+        return intermediate.setAggregateOperator(aggrNode, op, type, loc);
     }
 
     TTypeList::const_iterator memberTypes;
@@ -8078,16 +7869,6 @@
             TIntermTyped* newNode = intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConvPtrToUvec2, true, node,
                 type);
             return newNode;
-        } else if (node->getType().getBasicType() == EbtSampler) {
-            requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "sampler conversion to uvec2");
-            // force the basic type of the constructor param to uvec2, otherwise spv builder will
-            // report some errors
-            TIntermTyped* newSrcNode = intermediate.createConversion(EbtUint, node);
-            newSrcNode->getAsTyped()->getWritableType().setVectorSize(2);
-
-            TIntermTyped* newNode =
-                intermediate.addBuiltInFunctionCall(node->getLoc(), EOpConstructUVec2, false, newSrcNode, type);
-            return newNode;
         }
     case EOpConstructUVec3:
     case EOpConstructUVec4:
@@ -8101,15 +7882,7 @@
     case EOpConstructBool:
         basicOp = EOpConstructBool;
         break;
-    case EOpConstructTextureSampler:
-        if ((node->getType().getBasicType() == EbtUint || node->getType().getBasicType() == EbtInt) &&
-            node->getType().getVectorSize() == 2) {
-            requireExtensions(loc, 1, &E_GL_ARB_bindless_texture, "ivec2/uvec2 convert to texture handle");
-            // No matter ivec2 or uvec2, Set EOpPackUint2x32 just to generate an opBitcast op code
-            TIntermTyped* newNode =
-                intermediate.addBuiltInFunctionCall(node->getLoc(), EOpPackUint2x32, true, node, type);
-            return newNode;
-        }
+
 #ifndef GLSLANG_WEB
 
     case EOpConstructDVec2:
@@ -8457,30 +8230,6 @@
 }
 
 //
-// Update qualifier layoutBindlessImage & layoutBindlessSampler on block member
-//
-void TParseContext::updateBindlessQualifier(TType& memberType)
-{
-    if (memberType.containsSampler()) {
-        if (memberType.isStruct()) {
-            TTypeList* typeList = memberType.getWritableStruct();
-            for (unsigned int member = 0; member < typeList->size(); ++member) {
-                TType* subMemberType = (*typeList)[member].type;
-                updateBindlessQualifier(*subMemberType);
-            }
-        }
-        else if (memberType.getSampler().isImage()) {
-            intermediate.setBindlessImageMode(currentCaller, AstRefTypeLayout);
-            memberType.getQualifier().layoutBindlessImage = true;
-        }
-        else {
-            intermediate.setBindlessTextureMode(currentCaller, AstRefTypeLayout);
-            memberType.getQualifier().layoutBindlessSampler = true;
-        }
-    }
-}
-
-//
 // Do everything needed to add an interface block.
 //
 void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName,
@@ -8532,13 +8281,8 @@
             }
         }
 
-        // For bindless texture, sampler can be declared as uniform/storage block member,
-        if (memberType.containsOpaque()) {
-            if (memberType.containsSampler() && extensionTurnedOn(E_GL_ARB_bindless_texture))
-                updateBindlessQualifier(memberType);
-            else
-                error(memberLoc, "member of block cannot be or contain a sampler, image, or atomic_uint type", typeList[member].type->getFieldName().c_str(), "");
-            }
+        if (memberType.containsOpaque())
+            error(memberLoc, "member of block cannot be or contain a sampler, image, or atomic_uint type", typeList[member].type->getFieldName().c_str(), "");
 
         if (memberType.containsCoopMat())
             error(memberLoc, "member of block cannot be or contain a cooperative matrix type", typeList[member].type->getFieldName().c_str(), "");
@@ -8871,10 +8615,6 @@
         profileRequires(loc, ~EEsProfile, 460, 2, extsrt, "callableDataInNV block");
         requireStage(loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV block");
         break;
-    case EvqHitObjectAttrNV:
-        profileRequires(loc, ~EEsProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV block");
-        requireStage(loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask | EShLangMissMask), "hitObjectAttributeNV block");
-        break;
 #endif
     default:
         error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), "");
@@ -9716,38 +9456,4 @@
     return originStruct;
 }
 
-TLayoutFormat TParseContext::mapLegacyLayoutFormat(TLayoutFormat legacyLayoutFormat, TBasicType imageType)
-{
-    TLayoutFormat layoutFormat = ElfNone;
-    if (imageType == EbtFloat) {
-        switch (legacyLayoutFormat) {
-        case ElfSize1x16: layoutFormat = ElfR16f; break;
-        case ElfSize1x32: layoutFormat = ElfR32f; break;
-        case ElfSize2x32: layoutFormat = ElfRg32f; break;
-        case ElfSize4x32: layoutFormat = ElfRgba32f; break;
-        default: break;
-        }
-    } else if (imageType == EbtUint) {
-        switch (legacyLayoutFormat) {
-        case ElfSize1x8: layoutFormat = ElfR8ui; break;
-        case ElfSize1x16: layoutFormat = ElfR16ui; break;
-        case ElfSize1x32: layoutFormat = ElfR32ui; break;
-        case ElfSize2x32: layoutFormat = ElfRg32ui; break;
-        case ElfSize4x32: layoutFormat = ElfRgba32ui; break;
-        default: break;
-        }
-    } else if (imageType == EbtInt) {
-        switch (legacyLayoutFormat) {
-        case ElfSize1x8: layoutFormat = ElfR8i; break;
-        case ElfSize1x16: layoutFormat = ElfR16i; break;
-        case ElfSize1x32: layoutFormat = ElfR32i; break;
-        case ElfSize2x32: layoutFormat = ElfRg32i; break;
-        case ElfSize4x32: layoutFormat = ElfRgba32i; break;
-        default: break;
-        }
-    }
-
-    return layoutFormat;
-}
-
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index 8edcfdf..885fd90 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -393,7 +393,7 @@
     void accStructCheck(const TSourceLoc & loc, const TType & type, const TString & identifier);
     void transparentOpaqueCheck(const TSourceLoc&, const TType&, const TString& identifier);
     void memberQualifierCheck(glslang::TPublicType&);
-    void globalQualifierFixCheck(const TSourceLoc&, TQualifier&, bool isMemberCheck = false, const TPublicType* publicType = nullptr);
+    void globalQualifierFixCheck(const TSourceLoc&, TQualifier&, bool isMemberCheck = false);
     void globalQualifierTypeCheck(const TSourceLoc&, const TQualifier&, const TPublicType&);
     bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType);
     void mergeQualifiers(const TSourceLoc&, TQualifier& dst, const TQualifier& src, bool force);
@@ -438,12 +438,12 @@
     const TFunction* findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn);
     const TFunction* findFunctionExplicitTypes(const TSourceLoc& loc, const TFunction& call, bool& builtIn);
     void declareTypeDefaults(const TSourceLoc&, const TPublicType&);
-    TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = nullptr, TIntermTyped* initializer = nullptr);
+    TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0);
     TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&);
     TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&);
     TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
     void inheritMemoryQualifiers(const TQualifier& from, TQualifier& to);
-    void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = nullptr, TArraySizes* arraySizes = nullptr);
+    void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0);
     void blockStorageRemap(const TSourceLoc&, const TString*, TQualifier&);
     void blockStageIoCheck(const TSourceLoc&, const TQualifier&);
     void blockQualifierCheck(const TSourceLoc&, const TQualifier&, bool instanceName);
@@ -456,11 +456,9 @@
     void addQualifierToExisting(const TSourceLoc&, TQualifier, TIdentifierList&);
     void invariantCheck(const TSourceLoc&, const TQualifier&);
     void updateStandaloneQualifierDefaults(const TSourceLoc&, const TPublicType&);
-    void updateBindlessQualifier(TType& memberType);
     void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode);
     TIntermNode* addSwitch(const TSourceLoc&, TIntermTyped* expression, TIntermAggregate* body);
     const TTypeList* recordStructCopy(TStructRecord&, const TType*, const TType*);
-    TLayoutFormat mapLegacyLayoutFormat(TLayoutFormat legacyLayoutFormat, TBasicType imageType);
 
 #ifndef GLSLANG_WEB
     TAttributeType attributeFromName(const TString& name) const;
diff --git a/glslang/MachineIndependent/PoolAlloc.cpp b/glslang/MachineIndependent/PoolAlloc.cpp
index c3a3928..84c40f4 100644
--- a/glslang/MachineIndependent/PoolAlloc.cpp
+++ b/glslang/MachineIndependent/PoolAlloc.cpp
@@ -267,8 +267,8 @@
         //
         size_t numBytesToAlloc = allocationSize + headerSkip;
         tHeader* memory = reinterpret_cast<tHeader*>(::new char[numBytesToAlloc]);
-        if (memory == nullptr)
-            return nullptr;
+        if (memory == 0)
+            return 0;
 
         // Use placement-new to initialize header
         new(memory) tHeader(inUseList, (numBytesToAlloc + pageSize - 1) / pageSize);
@@ -289,8 +289,8 @@
         freeList = freeList->nextPage;
     } else {
         memory = reinterpret_cast<tHeader*>(::new char[pageSize]);
-        if (memory == nullptr)
-            return nullptr;
+        if (memory == 0)
+            return 0;
     }
 
     // Use placement-new to initialize header
@@ -308,7 +308,7 @@
 //
 void TAllocation::checkAllocList() const
 {
-    for (const TAllocation* alloc = this; alloc != nullptr; alloc = alloc->prevAlloc)
+    for (const TAllocation* alloc = this; alloc != 0; alloc = alloc->prevAlloc)
         alloc->check();
 }
 
diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp
index c20048a..7f51173 100644
--- a/glslang/MachineIndependent/Scan.cpp
+++ b/glslang/MachineIndependent/Scan.cpp
@@ -765,9 +765,6 @@
     (*KeywordMap)["icoopmatNV"] =              ICOOPMATNV;
     (*KeywordMap)["ucoopmatNV"] =              UCOOPMATNV;
 
-    (*KeywordMap)["hitObjectNV"] =             HITOBJECTNV;
-    (*KeywordMap)["hitObjectAttributeNV"] =    HITOBJECTATTRNV;
-
     ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
 
     ReservedSet->insert("common");
@@ -1792,20 +1789,6 @@
             parseContext.extensionTurnedOn(E_GL_EXT_spirv_intrinsics))
             return keyword;
         return identifierOrType();
-
-    case HITOBJECTNV:
-        if (parseContext.symbolTable.atBuiltInLevel() ||
-            (!parseContext.isEsProfile() && parseContext.version >= 460
-                 && parseContext.extensionTurnedOn(E_GL_NV_shader_invocation_reorder)))
-            return keyword;
-        return identifierOrType();
-
-    case HITOBJECTATTRNV:
-        if (parseContext.symbolTable.atBuiltInLevel() ||
-            (!parseContext.isEsProfile() && parseContext.version >= 460
-                 && parseContext.extensionTurnedOn(E_GL_NV_shader_invocation_reorder)))
-            return keyword;
-        return identifierOrType();
 #endif
 
     default:
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index ed40c36..57e3423 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -298,6 +298,9 @@
 #ifdef GLSLANG_WEB
     profile = EEsProfile;
     version = 310;
+#elif defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
 #endif
 
     (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
@@ -319,6 +322,9 @@
 #ifdef GLSLANG_WEB
     profile = EEsProfile;
     version = 310;
+#elif defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
 #endif
 
     std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
@@ -365,6 +371,7 @@
         InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source,
                                    infoSink, commonTable, symbolTables);
 
+#ifndef GLSLANG_ANGLE
     // check for ray tracing stages
     if (profile != EEsProfile && version >= 450) {
         InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangRayGen, source,
@@ -392,6 +399,7 @@
         (profile == EEsProfile && version >= 320))
         InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTask, source,
                                    infoSink, commonTable, symbolTables);
+#endif // !GLSLANG_ANGLE
 #endif // !GLSLANG_WEB
 
     return true;
@@ -494,7 +502,7 @@
 // Function to Print all builtins
 void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
 {
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     infoSink.debug << "BuiltinSymbolTable {\n";
 
     symbolTable.dump(infoSink, true);
@@ -598,7 +606,7 @@
         break;
     }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     // Correct for stage type...
     switch (stage) {
     case EShLangGeometry:
@@ -876,7 +884,7 @@
                                 : userInput.scanVersion(version, profile, versionNotFirstToken);
     bool versionNotFound = version == 0;
     if (forceDefaultVersionAndProfile && source == EShSourceGlsl) {
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         if (! (messages & EShMsgSuppressWarnings) && ! versionNotFound &&
             (version != defaultVersion || profile != defaultProfile)) {
             compiler->infoSink.info << "Warning, (version, profile) forced to be ("
@@ -902,10 +910,13 @@
 #ifdef GLSLANG_WEB
     profile = EEsProfile;
     version = 310;
+#elif defined(GLSLANG_ANGLE)
+    profile = ECoreProfile;
+    version = 450;
 #endif
 
     bool versionWillBeError = (versionNotFound || (profile == EEsProfile && version >= 300 && versionNotFirst));
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     bool warnVersionNotFirst = false;
     if (! versionWillBeError && versionNotFirstToken) {
         if (messages & EShMsgRelaxedErrors)
@@ -978,7 +989,7 @@
     parseContext->setLimits(*resources);
     if (! goodVersion)
         parseContext->addError();
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     if (warnVersionNotFirst) {
         TSourceLoc loc;
         loc.init();
@@ -1016,7 +1027,7 @@
     return success;
 }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 // Responsible for keeping track of the most recent source string and line in
 // the preprocessor and outputting newlines appropriately if the source string
@@ -1239,14 +1250,16 @@
             parseContext.infoSink.info << parseContext.getNumErrors() << " compilation errors.  No code generated.\n\n";
         }
 
+#ifndef GLSLANG_ANGLE
         if (messages & EShMsgAST)
             intermediate.output(parseContext.infoSink, true);
+#endif
 
         return success;
     }
 };
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 // Take a single compilation unit, and run the preprocessor on it.
 // Return: True if there were no issues found in preprocessing,
 //         False if during preprocessing any unknown version, pragmas or
@@ -1357,7 +1370,7 @@
 ShHandle ShConstructCompiler(const EShLanguage language, int debugOptions)
 {
     if (!InitThread())
-        return nullptr;
+        return 0;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(ConstructCompiler(language, debugOptions));
 
@@ -1367,7 +1380,7 @@
 ShHandle ShConstructLinker(const EShExecutable executable, int debugOptions)
 {
     if (!InitThread())
-        return nullptr;
+        return 0;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(ConstructLinker(executable, debugOptions));
 
@@ -1377,7 +1390,7 @@
 ShHandle ShConstructUniformMap()
 {
     if (!InitThread())
-        return nullptr;
+        return 0;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(ConstructUniformMap());
 
@@ -1386,7 +1399,7 @@
 
 void ShDestruct(ShHandle handle)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(handle);
@@ -1419,7 +1432,7 @@
                 for (int source = 0; source < SourceCount; ++source) {
                     for (int stage = 0; stage < EShLangCount; ++stage) {
                         delete SharedSymbolTables[version][spvVersion][p][source][stage];
-                        SharedSymbolTables[version][spvVersion][p][source][stage] = nullptr;
+                        SharedSymbolTables[version][spvVersion][p][source][stage] = 0;
                     }
                 }
             }
@@ -1432,7 +1445,7 @@
                 for (int source = 0; source < SourceCount; ++source) {
                     for (int pc = 0; pc < EPcCount; ++pc) {
                         delete CommonSymbolTable[version][spvVersion][p][source][pc];
-                        CommonSymbolTable[version][spvVersion][p][source][pc] = nullptr;
+                        CommonSymbolTable[version][spvVersion][p][source][pc] = 0;
                     }
                 }
             }
@@ -1475,12 +1488,12 @@
     )
 {
     // Map the generic handle to the C++ object
-    if (handle == nullptr)
+    if (handle == 0)
         return 0;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
     TCompiler* compiler = base->getAsCompiler();
-    if (compiler == nullptr)
+    if (compiler == 0)
         return 0;
 
     SetThreadPoolAllocator(compiler->getPool());
@@ -1520,13 +1533,13 @@
     const ShHandle compHandles[],
     const int numHandles)
 {
-    if (linkHandle == nullptr || numHandles == 0)
+    if (linkHandle == 0 || numHandles == 0)
         return 0;
 
     THandleList cObjects;
 
     for (int i = 0; i < numHandles; ++i) {
-        if (compHandles[i] == nullptr)
+        if (compHandles[i] == 0)
             return 0;
         TShHandleBase* base = reinterpret_cast<TShHandleBase*>(compHandles[i]);
         if (base->getAsLinker()) {
@@ -1535,7 +1548,7 @@
         if (base->getAsCompiler())
             cObjects.push_back(base->getAsCompiler());
 
-        if (cObjects[i] == nullptr)
+        if (cObjects[i] == 0)
             return 0;
     }
 
@@ -1544,7 +1557,7 @@
 
     SetThreadPoolAllocator(linker->getPool());
 
-    if (linker == nullptr)
+    if (linker == 0)
         return 0;
 
     linker->infoSink.info.erase();
@@ -1569,7 +1582,7 @@
 //
 void ShSetEncryptionMethod(ShHandle handle)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return;
 }
 
@@ -1578,8 +1591,8 @@
 //
 const char* ShGetInfoLog(const ShHandle handle)
 {
-    if (handle == nullptr)
-        return nullptr;
+    if (handle == 0)
+        return 0;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(handle);
     TInfoSink* infoSink;
@@ -1589,7 +1602,7 @@
     else if (base->getAsLinker())
         infoSink = &(base->getAsLinker()->getInfoSink());
     else
-        return nullptr;
+        return 0;
 
     infoSink->info << infoSink->debug.c_str();
     return infoSink->info.c_str();
@@ -1601,14 +1614,14 @@
 //
 const void* ShGetExecutable(const ShHandle handle)
 {
-    if (handle == nullptr)
-        return nullptr;
+    if (handle == 0)
+        return 0;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
 
     TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-    if (linker == nullptr)
-        return nullptr;
+    if (linker == 0)
+        return 0;
 
     return linker->getObjectCode();
 }
@@ -1623,13 +1636,13 @@
 //
 int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* table)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return 0;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
     TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
 
-    if (linker == nullptr)
+    if (linker == 0)
         return 0;
 
     linker->setAppAttributeBindings(table);
@@ -1642,13 +1655,13 @@
 //
 int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* table)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return 0;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
     TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
 
-    if (linker == nullptr)
+    if (linker == 0)
         return 0;
 
     linker->setFixedAttributeBindings(table);
@@ -1660,12 +1673,12 @@
 //
 int ShExcludeAttributes(const ShHandle handle, int *attributes, int count)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return 0;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
     TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-    if (linker == nullptr)
+    if (linker == 0)
         return 0;
 
     linker->setExcludedAttributes(attributes, count);
@@ -1681,12 +1694,12 @@
 //
 int ShGetUniformLocation(const ShHandle handle, const char* name)
 {
-    if (handle == nullptr)
+    if (handle == 0)
         return -1;
 
     TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
     TUniformMap* uniformMap= base->getAsUniformMap();
-    if (uniformMap == nullptr)
+    if (uniformMap == 0)
         return -1;
 
     return uniformMap->getLocation(name);
@@ -1914,7 +1927,7 @@
                            &environment);
 }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 // Fill in a string with the result of preprocessing ShaderStrings
 // Returns true if all extensions, pragmas and version strings were valid.
 //
@@ -1953,15 +1966,15 @@
 }
 
 TProgram::TProgram() :
-#if !defined(GLSLANG_WEB)
-    reflection(nullptr),
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
+    reflection(0),
 #endif
     linked(false)
 {
     pool = new TPoolAllocator;
     infoSink = new TInfoSink;
     for (int s = 0; s < EShLangCount; ++s) {
-        intermediate[s] = nullptr;
+        intermediate[s] = 0;
         newedIntermediate[s] = false;
     }
 }
@@ -1969,7 +1982,7 @@
 TProgram::~TProgram()
 {
     delete infoSink;
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     delete reflection;
 #endif
 
@@ -2019,7 +2032,7 @@
     if (stages[stage].size() == 0)
         return true;
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     int numEsShaders = 0, numNonEsShaders = 0;
     for (auto it = stages[stage].begin(); it != stages[stage].end(); ++it) {
         if ((*it)->intermediate->getProfile() == EEsProfile) {
@@ -2075,8 +2088,10 @@
 #endif
     intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0);
 
+#ifndef GLSLANG_ANGLE
     if (messages & EShMsgAST)
         intermediate[stage]->output(*infoSink, true);
+#endif
 
     return intermediate[stage]->getNumErrors() == 0;
 }
@@ -2154,7 +2169,7 @@
     return infoSink->debug.c_str();
 }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 //
 // Reflection implementation.
@@ -2236,6 +2251,6 @@
     return ioMapper->doMap(pResolver, *infoSink);
 }
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp
index f5f98a0..2f1b5ac 100644
--- a/glslang/MachineIndependent/SymbolTable.cpp
+++ b/glslang/MachineIndependent/SymbolTable.cpp
@@ -78,7 +78,6 @@
     case EbtAccStruct:          mangledName += "as";     break;
     case EbtRayQuery:           mangledName += "rq";     break;
     case EbtSpirvType:          mangledName += "spv-t";  break;
-    case EbtHitObjectNV:        mangledName += "ho";     break;
 #endif
     case EbtSampler:
         switch (sampler.type) {
@@ -184,7 +183,7 @@
     }
 }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 //
 // Dump functions.
@@ -417,7 +416,7 @@
     // copy of the original container.
     assert(0);
 
-    return nullptr;
+    return 0;
 }
 
 TSymbolTableLevel* TSymbolTableLevel::clone() const
diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h
index c2b386e..2e570bb 100644
--- a/glslang/MachineIndependent/SymbolTable.h
+++ b/glslang/MachineIndependent/SymbolTable.h
@@ -84,7 +84,7 @@
 class TSymbol {
 public:
     POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
-    explicit TSymbol(const TString *n) :  name(n), uniqueId(0), extensions(nullptr), writable(true) { }
+    explicit TSymbol(const TString *n) :  name(n), uniqueId(0), extensions(0), writable(true) { }
     virtual TSymbol* clone() const = 0;
     virtual ~TSymbol() { }  // rely on all symbol owned memory coming from the pool
 
@@ -97,18 +97,18 @@
         changeName(NewPoolTString(newName.c_str()));
     }
     virtual const TString& getMangledName() const { return getName(); }
-    virtual TFunction* getAsFunction() { return nullptr; }
-    virtual const TFunction* getAsFunction() const { return nullptr; }
-    virtual TVariable* getAsVariable() { return nullptr; }
-    virtual const TVariable* getAsVariable() const { return nullptr; }
-    virtual const TAnonMember* getAsAnonMember() const { return nullptr; }
+    virtual TFunction* getAsFunction() { return 0; }
+    virtual const TFunction* getAsFunction() const { return 0; }
+    virtual TVariable* getAsVariable() { return 0; }
+    virtual const TVariable* getAsVariable() const { return 0; }
+    virtual const TAnonMember* getAsAnonMember() const { return 0; }
     virtual const TType& getType() const = 0;
     virtual TType& getWritableType() = 0;
     virtual void setUniqueId(long long id) { uniqueId = id; }
     virtual long long getUniqueId() const { return uniqueId; }
     virtual void setExtensions(int numExts, const char* const exts[])
     {
-        assert(extensions == nullptr);
+        assert(extensions == 0);
         assert(numExts > 0);
         extensions = NewPoolObject(extensions);
         for (int e = 0; e < numExts; ++e)
@@ -117,7 +117,7 @@
     virtual int getNumExtensions() const { return extensions == nullptr ? 0 : (int)extensions->size(); }
     virtual const char** getExtensions() const { return extensions->data(); }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const = 0;
     void dumpExtensions(TInfoSink& infoSink) const;
 #endif
@@ -196,7 +196,7 @@
     }
     virtual const char** getMemberExtensions(int member) const { return (*memberExtensions)[member].data(); }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const;
 #endif
 
@@ -229,7 +229,7 @@
         if (param.name)
             name = NewPoolTString(param.name->c_str());
         else
-            name = nullptr;
+            name = 0;
         type = param.type->clone();
         defaultValue = param.defaultValue;
         return *this;
@@ -243,7 +243,7 @@
 class TFunction : public TSymbol {
 public:
     explicit TFunction(TOperator o) :
-        TSymbol(nullptr),
+        TSymbol(0),
         op(o),
         defined(false), prototyped(false), implicitThis(false), illegalImplicitThis(false), defaultParamCount(0) { }
     TFunction(const TString *name, const TType& retType, TOperator tOp = EOpNull) :
@@ -319,7 +319,6 @@
 
     virtual TParameter& operator[](int i) { assert(writable); return parameters[i]; }
     virtual const TParameter& operator[](int i) const { return parameters[i]; }
-    const TQualifier& getQualifier() const { return returnType.getQualifier(); }
 
 #ifndef GLSLANG_WEB
     virtual void setSpirvInstruction(const TSpirvInstruction& inst)
@@ -330,7 +329,7 @@
     virtual const TSpirvInstruction& getSpirvInstruction() const { return spirvInst; }
 #endif
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
 #endif
 
@@ -396,7 +395,7 @@
     virtual const char** getExtensions() const override { return anonContainer.getMemberExtensions(memberNumber); }
 
     virtual int getAnonId() const { return anonId; }
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     virtual void dump(TInfoSink& infoSink, bool complete = false) const override;
 #endif
 
@@ -412,7 +411,7 @@
 class TSymbolTableLevel {
 public:
     POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
-    TSymbolTableLevel() : defaultPrecision(nullptr), anonId(0), thisLevel(false) { }
+    TSymbolTableLevel() : defaultPrecision(0), anonId(0), thisLevel(false) { }
     ~TSymbolTableLevel();
 
     bool insert(const TString& name, TSymbol* symbol) {
@@ -494,7 +493,7 @@
     {
         tLevel::const_iterator it = level.find(name);
         if (it == level.end())
-            return nullptr;
+            return 0;
         else
             return (*it).second;
     }
@@ -562,7 +561,7 @@
     {
         // can call multiple times at one scope, will only latch on first call,
         // as we're tracking the previous scope's values, not the current values
-        if (defaultPrecision != nullptr)
+        if (defaultPrecision != 0)
             return;
 
         defaultPrecision = new TPrecisionQualifier[EbtNumTypes];
@@ -574,7 +573,7 @@
     {
         // can be called for table level pops that didn't set the
         // defaults
-        if (defaultPrecision == nullptr || p == nullptr)
+        if (defaultPrecision == 0 || p == 0)
             return;
 
         for (int t = 0; t < EbtNumTypes; ++t)
@@ -583,7 +582,7 @@
 
     void relateToOperator(const char* name, TOperator op);
     void setFunctionExtensions(const char* name, int num, const char* const extensions[]);
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     void dump(TInfoSink& infoSink, bool complete = false) const;
 #endif
     TSymbolTableLevel* clone() const;
@@ -623,7 +622,7 @@
 
         // don't deallocate levels passed in from elsewhere
         while (table.size() > adoptedLevels)
-            pop(nullptr);
+            pop(0);
     }
 
     void adoptLevels(TSymbolTable& symTable)
@@ -784,7 +783,7 @@
 
     // Normal find of a symbol, that can optionally say whether the symbol was found
     // at a built-in level or the current top-scope level.
-    TSymbol* find(const TString& name, bool* builtIn = nullptr, bool* currentScope = nullptr, int* thisDepthP = nullptr)
+    TSymbol* find(const TString& name, bool* builtIn = 0, bool* currentScope = 0, int* thisDepthP = 0)
     {
         int level = currentLevel();
         TSymbol* symbol;
@@ -828,7 +827,7 @@
                 ++thisDepth;
             symbol = table[level]->find(name);
             --level;
-        } while (symbol == nullptr && level >= 0);
+        } while (symbol == 0 && level >= 0);
 
         if (! table[level + 1]->isThisLevel())
             thisDepth = 0;
@@ -913,7 +912,7 @@
     }
 
     long long getMaxSymbolId() { return uniqueId; }
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     void dump(TInfoSink& infoSink, bool complete = false) const;
 #endif
     void copyTable(const TSymbolTable& copyOf);
diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp
index bf5ce2f..a5fd107 100644
--- a/glslang/MachineIndependent/Versions.cpp
+++ b/glslang/MachineIndependent/Versions.cpp
@@ -227,7 +227,6 @@
     extensionBehavior[E_GL_ARB_texture_query_lod]            = EBhDisable;
     extensionBehavior[E_GL_ARB_vertex_attrib_64bit]          = EBhDisable;
     extensionBehavior[E_GL_ARB_draw_instanced]               = EBhDisable;
-    extensionBehavior[E_GL_ARB_bindless_texture]             = EBhDisable;
     extensionBehavior[E_GL_ARB_fragment_coord_conventions]   = EBhDisable;
 
 
@@ -302,11 +301,6 @@
     extensionBehavior[E_GL_NV_shader_sm_builtins]                    = EBhDisable;
     extensionBehavior[E_GL_NV_integer_cooperative_matrix]            = EBhDisable;
 
-    extensionBehavior[E_GL_NV_shader_invocation_reorder]             = EBhDisable;
-
-    // ARM
-    extensionBehavior[E_GL_ARM_shader_core_builtins]                 = EBhDisable;
-
     // AEP
     extensionBehavior[E_GL_ANDROID_extension_pack_es31a]             = EBhDisable;
     extensionBehavior[E_GL_KHR_blend_equation_advanced]              = EBhDisable;
@@ -376,9 +370,6 @@
     extensionBehavior[E_GL_EXT_shader_subgroup_extended_types_float16] = EBhDisable;
     extensionBehavior[E_GL_EXT_shader_atomic_float]                    = EBhDisable;
     extensionBehavior[E_GL_EXT_shader_atomic_float2]                   = EBhDisable;
-
-    // Record extensions not for spv.
-    spvUnsupportedExt.push_back(E_GL_ARB_bindless_texture);
 }
 
 #endif // GLSLANG_WEB
@@ -446,6 +437,7 @@
 
     } else { // !isEsProfile()
         preamble =
+            "#define GL_FRAGMENT_PRECISION_HIGH 1\n"
             "#define GL_ARB_texture_rectangle 1\n"
             "#define GL_ARB_shading_language_420pack 1\n"
             "#define GL_ARB_texture_gather 1\n"
@@ -485,7 +477,6 @@
             "#define GL_ARB_vertex_attrib_64bit 1\n"
             "#define GL_ARB_draw_instanced 1\n"
             "#define GL_ARB_fragment_coord_conventions 1\n"
-            "#define GL_ARB_bindless_texture 1\n"
             "#define GL_EXT_shader_non_constant_global_initializers 1\n"
             "#define GL_EXT_shader_image_load_formatted 1\n"
             "#define GL_EXT_post_depth_coverage 1\n"
@@ -553,7 +544,6 @@
             "#define GL_NV_mesh_shader 1\n"
             "#define GL_NV_cooperative_matrix 1\n"
             "#define GL_NV_integer_cooperative_matrix 1\n"
-            "#define GL_NV_shader_execution_reorder 1\n"
 
             "#define GL_EXT_shader_explicit_arithmetic_types 1\n"
             "#define GL_EXT_shader_explicit_arithmetic_types_int8 1\n"
@@ -586,10 +576,6 @@
             preamble += "#define GL_EXT_null_initializer 1\n";
             preamble += "#define GL_EXT_subgroup_uniform_control_flow 1\n";
         }
-        if (version >= 130) {
-            preamble +="#define GL_FRAGMENT_PRECISION_HIGH 1\n";
-        }
-
 #endif // GLSLANG_WEB
     }
 
@@ -1080,8 +1066,8 @@
     if (strcmp(extension, "GL_NV_mesh_shader") == 0) {
         requireStage(loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask | EShLangFragmentMask),
                      "#extension GL_NV_mesh_shader");
-        profileRequires(loc, ECoreProfile, 450, nullptr, "#extension GL_NV_mesh_shader");
-        profileRequires(loc, EEsProfile, 320, nullptr, "#extension GL_NV_mesh_shader");
+        profileRequires(loc, ECoreProfile, 450, 0, "#extension GL_NV_mesh_shader");
+        profileRequires(loc, EEsProfile, 320, 0, "#extension GL_NV_mesh_shader");
         if (extensionTurnedOn(E_GL_EXT_mesh_shader)) {
             error(loc, "GL_EXT_mesh_shader is already turned on, and not allowed with", "#extension", extension);
         }
@@ -1089,8 +1075,8 @@
     else if (strcmp(extension, "GL_EXT_mesh_shader") == 0) {
         requireStage(loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask | EShLangFragmentMask),
                      "#extension GL_EXT_mesh_shader");
-        profileRequires(loc, ECoreProfile, 450, nullptr, "#extension GL_EXT_mesh_shader");
-        profileRequires(loc, EEsProfile, 320, nullptr, "#extension GL_EXT_mesh_shader");
+        profileRequires(loc, ECoreProfile, 450, 0, "#extension GL_EXT_mesh_shader");
+        profileRequires(loc, EEsProfile, 320, 0, "#extension GL_EXT_mesh_shader");
         if (extensionTurnedOn(E_GL_NV_mesh_shader)) {
             error(loc, "GL_NV_mesh_shader is already turned on, and not allowed with", "#extension", extension);
         }
@@ -1113,13 +1099,6 @@
             minSpvVersion = iter->second;
         requireSpv(loc, extension, minSpvVersion);
     }
-
-    if (spvVersion.spv != 0){
-        for (auto ext : spvUnsupportedExt){
-            if (strcmp(extension, ext.c_str()) == 0)
-                error(loc, "not allowed when using generating SPIR-V codes", extension, "");
-        }
-    }
 }
 
 // Call for any operation needing full GLSL integer data-type support.
diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h
index 9e4c9fe..f06abdd 100644
--- a/glslang/MachineIndependent/Versions.h
+++ b/glslang/MachineIndependent/Versions.h
@@ -163,7 +163,6 @@
 const char* const E_GL_ARB_vertex_attrib_64bit          = "GL_ARB_vertex_attrib_64bit";
 const char* const E_GL_ARB_draw_instanced               = "GL_ARB_draw_instanced";
 const char* const E_GL_ARB_fragment_coord_conventions   = "GL_ARB_fragment_coord_conventions";
-const char* const E_GL_ARB_bindless_texture             = "GL_ARB_bindless_texture";
 
 const char* const E_GL_KHR_shader_subgroup_basic            = "GL_KHR_shader_subgroup_basic";
 const char* const E_GL_KHR_shader_subgroup_vote             = "GL_KHR_shader_subgroup_vote";
@@ -266,9 +265,6 @@
 const char* const E_GL_NV_shader_texture_footprint              = "GL_NV_shader_texture_footprint";
 const char* const E_GL_NV_mesh_shader                           = "GL_NV_mesh_shader";
 
-// ARM
-const char* const E_GL_ARM_shader_core_builtins                 = "GL_ARM_shader_core_builtins";
-
 // Arrays of extensions for the above viewportEXTs duplications
 
 const char* const viewportEXTs[] = { E_GL_ARB_shader_viewport_layer_array, E_GL_NV_viewport_array2 };
@@ -277,7 +273,6 @@
 const char* const E_GL_NV_cooperative_matrix                    = "GL_NV_cooperative_matrix";
 const char* const E_GL_NV_shader_sm_builtins                    = "GL_NV_shader_sm_builtins";
 const char* const E_GL_NV_integer_cooperative_matrix            = "GL_NV_integer_cooperative_matrix";
-const char* const E_GL_NV_shader_invocation_reorder             = "GL_NV_shader_invocation_reorder";
 
 // AEP
 const char* const E_GL_ANDROID_extension_pack_es31a             = "GL_ANDROID_extension_pack_es31a";
diff --git a/glslang/MachineIndependent/glslang.m4 b/glslang/MachineIndependent/glslang.m4
index 442529b..a59da44 100644
--- a/glslang/MachineIndependent/glslang.m4
+++ b/glslang/MachineIndependent/glslang.m4
@@ -211,7 +211,6 @@
 %token <lex> ACCSTRUCTEXT
 %token <lex> RAYQUERYEXT
 %token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
-%token <lex> HITOBJECTNV HITOBJECTATTRNV
 
 // combined image/sampler
 %token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
@@ -311,7 +310,7 @@
 %token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
 %token <lex> INT64CONSTANT UINT64CONSTANT
 %token <lex> SUBROUTINE DEMOTE
-%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV 
+%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
 %token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
 %token <lex> PATCH SAMPLE NONUNIFORM
 %token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
@@ -1219,7 +1218,7 @@
         parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier);
     }
     | type_qualifier type_specifier  {
-        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier, false, &$2);
+        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
         parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2);
 
         if ($2.arraySizes) {
@@ -1535,14 +1534,6 @@
         $$.init($1.loc);
         $$.qualifier.storage = EvqHitAttr;
     }
-	| HITOBJECTATTRNV {
-        parseContext.globalCheck($1.loc, "hitAttributeNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
-            | EShLangMissMask), "hitObjectAttributeNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqHitObjectAttrNV;
-	}
     | HITATTREXT {
         parseContext.globalCheck($1.loc, "hitAttributeEXT");
         parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -3518,10 +3509,6 @@
         parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
         $$ = $1;
     }
-	| HITOBJECTNV {
-       $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-       $$.basicType = EbtHitObjectNV;
-	}
 GLSLANG_WEB_EXCLUDE_OFF
     | struct_specifier {
         $$ = $1;
diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y
index e0a5bcf..35242f2 100644
--- a/glslang/MachineIndependent/glslang.y
+++ b/glslang/MachineIndependent/glslang.y
@@ -151,7 +151,7 @@
 
 %parse-param {glslang::TParseContext* pParseContext}
 %lex-param {parseContext}
-%pure-parser  // enable thread safety
+%define api.pure  // enable thread safety
 %expect 1     // One shift reduce conflict because of if | else
 
 %token <lex> CONST BOOL INT UINT FLOAT
@@ -211,7 +211,6 @@
 %token <lex> ACCSTRUCTEXT
 %token <lex> RAYQUERYEXT
 %token <lex> FCOOPMATNV ICOOPMATNV UCOOPMATNV
-%token <lex> HITOBJECTNV HITOBJECTATTRNV
 
 // combined image/sampler
 %token <lex> SAMPLERCUBEARRAY SAMPLERCUBEARRAYSHADOW
@@ -311,7 +310,7 @@
 %token <lex> DOUBLECONSTANT INT16CONSTANT UINT16CONSTANT FLOAT16CONSTANT INT32CONSTANT UINT32CONSTANT
 %token <lex> INT64CONSTANT UINT64CONSTANT
 %token <lex> SUBROUTINE DEMOTE
-%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV 
+%token <lex> PAYLOADNV PAYLOADINNV HITATTRNV CALLDATANV CALLDATAINNV
 %token <lex> PAYLOADEXT PAYLOADINEXT HITATTREXT CALLDATAEXT CALLDATAINEXT
 %token <lex> PATCH SAMPLE NONUNIFORM
 %token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY DEVICECOHERENT QUEUEFAMILYCOHERENT WORKGROUPCOHERENT
@@ -1219,7 +1218,7 @@
         parseContext.precisionQualifierCheck($$.loc, $$.basicType, $$.qualifier);
     }
     | type_qualifier type_specifier  {
-        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier, false, &$2);
+        parseContext.globalQualifierFixCheck($1.loc, $1.qualifier);
         parseContext.globalQualifierTypeCheck($1.loc, $1.qualifier, $2);
 
         if ($2.arraySizes) {
@@ -1535,14 +1534,6 @@
         $$.init($1.loc);
         $$.qualifier.storage = EvqHitAttr;
     }
-	| HITOBJECTATTRNV {
-        parseContext.globalCheck($1.loc, "hitAttributeNV");
-        parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
-            | EShLangMissMask), "hitObjectAttributeNV");
-        parseContext.profileRequires($1.loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV");
-        $$.init($1.loc);
-        $$.qualifier.storage = EvqHitObjectAttrNV;
-	}
     | HITATTREXT {
         parseContext.globalCheck($1.loc, "hitAttributeEXT");
         parseContext.requireStage($1.loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -3518,10 +3509,6 @@
         parseContext.requireExtensions($1.loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
         $$ = $1;
     }
-	| HITOBJECTNV {
-       $$.init($1.loc, parseContext.symbolTable.atGlobalLevel());
-       $$.basicType = EbtHitObjectNV;
-	}
 
     | struct_specifier {
         $$ = $1;
diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp
index 5c17c8c..7ca3e71 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp
+++ b/glslang/MachineIndependent/glslang_tab.cpp
@@ -287,431 +287,429 @@
   YYSYMBOL_FCOOPMATNV = 163,               /* FCOOPMATNV  */
   YYSYMBOL_ICOOPMATNV = 164,               /* ICOOPMATNV  */
   YYSYMBOL_UCOOPMATNV = 165,               /* UCOOPMATNV  */
-  YYSYMBOL_HITOBJECTNV = 166,              /* HITOBJECTNV  */
-  YYSYMBOL_HITOBJECTATTRNV = 167,          /* HITOBJECTATTRNV  */
-  YYSYMBOL_SAMPLERCUBEARRAY = 168,         /* SAMPLERCUBEARRAY  */
-  YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 169,   /* SAMPLERCUBEARRAYSHADOW  */
-  YYSYMBOL_ISAMPLERCUBEARRAY = 170,        /* ISAMPLERCUBEARRAY  */
-  YYSYMBOL_USAMPLERCUBEARRAY = 171,        /* USAMPLERCUBEARRAY  */
-  YYSYMBOL_SAMPLER1D = 172,                /* SAMPLER1D  */
-  YYSYMBOL_SAMPLER1DARRAY = 173,           /* SAMPLER1DARRAY  */
-  YYSYMBOL_SAMPLER1DARRAYSHADOW = 174,     /* SAMPLER1DARRAYSHADOW  */
-  YYSYMBOL_ISAMPLER1D = 175,               /* ISAMPLER1D  */
-  YYSYMBOL_SAMPLER1DSHADOW = 176,          /* SAMPLER1DSHADOW  */
-  YYSYMBOL_SAMPLER2DRECT = 177,            /* SAMPLER2DRECT  */
-  YYSYMBOL_SAMPLER2DRECTSHADOW = 178,      /* SAMPLER2DRECTSHADOW  */
-  YYSYMBOL_ISAMPLER2DRECT = 179,           /* ISAMPLER2DRECT  */
-  YYSYMBOL_USAMPLER2DRECT = 180,           /* USAMPLER2DRECT  */
-  YYSYMBOL_SAMPLERBUFFER = 181,            /* SAMPLERBUFFER  */
-  YYSYMBOL_ISAMPLERBUFFER = 182,           /* ISAMPLERBUFFER  */
-  YYSYMBOL_USAMPLERBUFFER = 183,           /* USAMPLERBUFFER  */
-  YYSYMBOL_SAMPLER2DMS = 184,              /* SAMPLER2DMS  */
-  YYSYMBOL_ISAMPLER2DMS = 185,             /* ISAMPLER2DMS  */
-  YYSYMBOL_USAMPLER2DMS = 186,             /* USAMPLER2DMS  */
-  YYSYMBOL_SAMPLER2DMSARRAY = 187,         /* SAMPLER2DMSARRAY  */
-  YYSYMBOL_ISAMPLER2DMSARRAY = 188,        /* ISAMPLER2DMSARRAY  */
-  YYSYMBOL_USAMPLER2DMSARRAY = 189,        /* USAMPLER2DMSARRAY  */
-  YYSYMBOL_SAMPLEREXTERNALOES = 190,       /* SAMPLEREXTERNALOES  */
-  YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 191,  /* SAMPLEREXTERNAL2DY2YEXT  */
-  YYSYMBOL_ISAMPLER1DARRAY = 192,          /* ISAMPLER1DARRAY  */
-  YYSYMBOL_USAMPLER1D = 193,               /* USAMPLER1D  */
-  YYSYMBOL_USAMPLER1DARRAY = 194,          /* USAMPLER1DARRAY  */
-  YYSYMBOL_F16SAMPLER1D = 195,             /* F16SAMPLER1D  */
-  YYSYMBOL_F16SAMPLER2D = 196,             /* F16SAMPLER2D  */
-  YYSYMBOL_F16SAMPLER3D = 197,             /* F16SAMPLER3D  */
-  YYSYMBOL_F16SAMPLER2DRECT = 198,         /* F16SAMPLER2DRECT  */
-  YYSYMBOL_F16SAMPLERCUBE = 199,           /* F16SAMPLERCUBE  */
-  YYSYMBOL_F16SAMPLER1DARRAY = 200,        /* F16SAMPLER1DARRAY  */
-  YYSYMBOL_F16SAMPLER2DARRAY = 201,        /* F16SAMPLER2DARRAY  */
-  YYSYMBOL_F16SAMPLERCUBEARRAY = 202,      /* F16SAMPLERCUBEARRAY  */
-  YYSYMBOL_F16SAMPLERBUFFER = 203,         /* F16SAMPLERBUFFER  */
-  YYSYMBOL_F16SAMPLER2DMS = 204,           /* F16SAMPLER2DMS  */
-  YYSYMBOL_F16SAMPLER2DMSARRAY = 205,      /* F16SAMPLER2DMSARRAY  */
-  YYSYMBOL_F16SAMPLER1DSHADOW = 206,       /* F16SAMPLER1DSHADOW  */
-  YYSYMBOL_F16SAMPLER2DSHADOW = 207,       /* F16SAMPLER2DSHADOW  */
-  YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 208,  /* F16SAMPLER1DARRAYSHADOW  */
-  YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 209,  /* F16SAMPLER2DARRAYSHADOW  */
-  YYSYMBOL_F16SAMPLER2DRECTSHADOW = 210,   /* F16SAMPLER2DRECTSHADOW  */
-  YYSYMBOL_F16SAMPLERCUBESHADOW = 211,     /* F16SAMPLERCUBESHADOW  */
-  YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 212, /* F16SAMPLERCUBEARRAYSHADOW  */
-  YYSYMBOL_IMAGE1D = 213,                  /* IMAGE1D  */
-  YYSYMBOL_IIMAGE1D = 214,                 /* IIMAGE1D  */
-  YYSYMBOL_UIMAGE1D = 215,                 /* UIMAGE1D  */
-  YYSYMBOL_IMAGE2D = 216,                  /* IMAGE2D  */
-  YYSYMBOL_IIMAGE2D = 217,                 /* IIMAGE2D  */
-  YYSYMBOL_UIMAGE2D = 218,                 /* UIMAGE2D  */
-  YYSYMBOL_IMAGE3D = 219,                  /* IMAGE3D  */
-  YYSYMBOL_IIMAGE3D = 220,                 /* IIMAGE3D  */
-  YYSYMBOL_UIMAGE3D = 221,                 /* UIMAGE3D  */
-  YYSYMBOL_IMAGE2DRECT = 222,              /* IMAGE2DRECT  */
-  YYSYMBOL_IIMAGE2DRECT = 223,             /* IIMAGE2DRECT  */
-  YYSYMBOL_UIMAGE2DRECT = 224,             /* UIMAGE2DRECT  */
-  YYSYMBOL_IMAGECUBE = 225,                /* IMAGECUBE  */
-  YYSYMBOL_IIMAGECUBE = 226,               /* IIMAGECUBE  */
-  YYSYMBOL_UIMAGECUBE = 227,               /* UIMAGECUBE  */
-  YYSYMBOL_IMAGEBUFFER = 228,              /* IMAGEBUFFER  */
-  YYSYMBOL_IIMAGEBUFFER = 229,             /* IIMAGEBUFFER  */
-  YYSYMBOL_UIMAGEBUFFER = 230,             /* UIMAGEBUFFER  */
-  YYSYMBOL_IMAGE1DARRAY = 231,             /* IMAGE1DARRAY  */
-  YYSYMBOL_IIMAGE1DARRAY = 232,            /* IIMAGE1DARRAY  */
-  YYSYMBOL_UIMAGE1DARRAY = 233,            /* UIMAGE1DARRAY  */
-  YYSYMBOL_IMAGE2DARRAY = 234,             /* IMAGE2DARRAY  */
-  YYSYMBOL_IIMAGE2DARRAY = 235,            /* IIMAGE2DARRAY  */
-  YYSYMBOL_UIMAGE2DARRAY = 236,            /* UIMAGE2DARRAY  */
-  YYSYMBOL_IMAGECUBEARRAY = 237,           /* IMAGECUBEARRAY  */
-  YYSYMBOL_IIMAGECUBEARRAY = 238,          /* IIMAGECUBEARRAY  */
-  YYSYMBOL_UIMAGECUBEARRAY = 239,          /* UIMAGECUBEARRAY  */
-  YYSYMBOL_IMAGE2DMS = 240,                /* IMAGE2DMS  */
-  YYSYMBOL_IIMAGE2DMS = 241,               /* IIMAGE2DMS  */
-  YYSYMBOL_UIMAGE2DMS = 242,               /* UIMAGE2DMS  */
-  YYSYMBOL_IMAGE2DMSARRAY = 243,           /* IMAGE2DMSARRAY  */
-  YYSYMBOL_IIMAGE2DMSARRAY = 244,          /* IIMAGE2DMSARRAY  */
-  YYSYMBOL_UIMAGE2DMSARRAY = 245,          /* UIMAGE2DMSARRAY  */
-  YYSYMBOL_F16IMAGE1D = 246,               /* F16IMAGE1D  */
-  YYSYMBOL_F16IMAGE2D = 247,               /* F16IMAGE2D  */
-  YYSYMBOL_F16IMAGE3D = 248,               /* F16IMAGE3D  */
-  YYSYMBOL_F16IMAGE2DRECT = 249,           /* F16IMAGE2DRECT  */
-  YYSYMBOL_F16IMAGECUBE = 250,             /* F16IMAGECUBE  */
-  YYSYMBOL_F16IMAGE1DARRAY = 251,          /* F16IMAGE1DARRAY  */
-  YYSYMBOL_F16IMAGE2DARRAY = 252,          /* F16IMAGE2DARRAY  */
-  YYSYMBOL_F16IMAGECUBEARRAY = 253,        /* F16IMAGECUBEARRAY  */
-  YYSYMBOL_F16IMAGEBUFFER = 254,           /* F16IMAGEBUFFER  */
-  YYSYMBOL_F16IMAGE2DMS = 255,             /* F16IMAGE2DMS  */
-  YYSYMBOL_F16IMAGE2DMSARRAY = 256,        /* F16IMAGE2DMSARRAY  */
-  YYSYMBOL_I64IMAGE1D = 257,               /* I64IMAGE1D  */
-  YYSYMBOL_U64IMAGE1D = 258,               /* U64IMAGE1D  */
-  YYSYMBOL_I64IMAGE2D = 259,               /* I64IMAGE2D  */
-  YYSYMBOL_U64IMAGE2D = 260,               /* U64IMAGE2D  */
-  YYSYMBOL_I64IMAGE3D = 261,               /* I64IMAGE3D  */
-  YYSYMBOL_U64IMAGE3D = 262,               /* U64IMAGE3D  */
-  YYSYMBOL_I64IMAGE2DRECT = 263,           /* I64IMAGE2DRECT  */
-  YYSYMBOL_U64IMAGE2DRECT = 264,           /* U64IMAGE2DRECT  */
-  YYSYMBOL_I64IMAGECUBE = 265,             /* I64IMAGECUBE  */
-  YYSYMBOL_U64IMAGECUBE = 266,             /* U64IMAGECUBE  */
-  YYSYMBOL_I64IMAGEBUFFER = 267,           /* I64IMAGEBUFFER  */
-  YYSYMBOL_U64IMAGEBUFFER = 268,           /* U64IMAGEBUFFER  */
-  YYSYMBOL_I64IMAGE1DARRAY = 269,          /* I64IMAGE1DARRAY  */
-  YYSYMBOL_U64IMAGE1DARRAY = 270,          /* U64IMAGE1DARRAY  */
-  YYSYMBOL_I64IMAGE2DARRAY = 271,          /* I64IMAGE2DARRAY  */
-  YYSYMBOL_U64IMAGE2DARRAY = 272,          /* U64IMAGE2DARRAY  */
-  YYSYMBOL_I64IMAGECUBEARRAY = 273,        /* I64IMAGECUBEARRAY  */
-  YYSYMBOL_U64IMAGECUBEARRAY = 274,        /* U64IMAGECUBEARRAY  */
-  YYSYMBOL_I64IMAGE2DMS = 275,             /* I64IMAGE2DMS  */
-  YYSYMBOL_U64IMAGE2DMS = 276,             /* U64IMAGE2DMS  */
-  YYSYMBOL_I64IMAGE2DMSARRAY = 277,        /* I64IMAGE2DMSARRAY  */
-  YYSYMBOL_U64IMAGE2DMSARRAY = 278,        /* U64IMAGE2DMSARRAY  */
-  YYSYMBOL_TEXTURECUBEARRAY = 279,         /* TEXTURECUBEARRAY  */
-  YYSYMBOL_ITEXTURECUBEARRAY = 280,        /* ITEXTURECUBEARRAY  */
-  YYSYMBOL_UTEXTURECUBEARRAY = 281,        /* UTEXTURECUBEARRAY  */
-  YYSYMBOL_TEXTURE1D = 282,                /* TEXTURE1D  */
-  YYSYMBOL_ITEXTURE1D = 283,               /* ITEXTURE1D  */
-  YYSYMBOL_UTEXTURE1D = 284,               /* UTEXTURE1D  */
-  YYSYMBOL_TEXTURE1DARRAY = 285,           /* TEXTURE1DARRAY  */
-  YYSYMBOL_ITEXTURE1DARRAY = 286,          /* ITEXTURE1DARRAY  */
-  YYSYMBOL_UTEXTURE1DARRAY = 287,          /* UTEXTURE1DARRAY  */
-  YYSYMBOL_TEXTURE2DRECT = 288,            /* TEXTURE2DRECT  */
-  YYSYMBOL_ITEXTURE2DRECT = 289,           /* ITEXTURE2DRECT  */
-  YYSYMBOL_UTEXTURE2DRECT = 290,           /* UTEXTURE2DRECT  */
-  YYSYMBOL_TEXTUREBUFFER = 291,            /* TEXTUREBUFFER  */
-  YYSYMBOL_ITEXTUREBUFFER = 292,           /* ITEXTUREBUFFER  */
-  YYSYMBOL_UTEXTUREBUFFER = 293,           /* UTEXTUREBUFFER  */
-  YYSYMBOL_TEXTURE2DMS = 294,              /* TEXTURE2DMS  */
-  YYSYMBOL_ITEXTURE2DMS = 295,             /* ITEXTURE2DMS  */
-  YYSYMBOL_UTEXTURE2DMS = 296,             /* UTEXTURE2DMS  */
-  YYSYMBOL_TEXTURE2DMSARRAY = 297,         /* TEXTURE2DMSARRAY  */
-  YYSYMBOL_ITEXTURE2DMSARRAY = 298,        /* ITEXTURE2DMSARRAY  */
-  YYSYMBOL_UTEXTURE2DMSARRAY = 299,        /* UTEXTURE2DMSARRAY  */
-  YYSYMBOL_F16TEXTURE1D = 300,             /* F16TEXTURE1D  */
-  YYSYMBOL_F16TEXTURE2D = 301,             /* F16TEXTURE2D  */
-  YYSYMBOL_F16TEXTURE3D = 302,             /* F16TEXTURE3D  */
-  YYSYMBOL_F16TEXTURE2DRECT = 303,         /* F16TEXTURE2DRECT  */
-  YYSYMBOL_F16TEXTURECUBE = 304,           /* F16TEXTURECUBE  */
-  YYSYMBOL_F16TEXTURE1DARRAY = 305,        /* F16TEXTURE1DARRAY  */
-  YYSYMBOL_F16TEXTURE2DARRAY = 306,        /* F16TEXTURE2DARRAY  */
-  YYSYMBOL_F16TEXTURECUBEARRAY = 307,      /* F16TEXTURECUBEARRAY  */
-  YYSYMBOL_F16TEXTUREBUFFER = 308,         /* F16TEXTUREBUFFER  */
-  YYSYMBOL_F16TEXTURE2DMS = 309,           /* F16TEXTURE2DMS  */
-  YYSYMBOL_F16TEXTURE2DMSARRAY = 310,      /* F16TEXTURE2DMSARRAY  */
-  YYSYMBOL_SUBPASSINPUT = 311,             /* SUBPASSINPUT  */
-  YYSYMBOL_SUBPASSINPUTMS = 312,           /* SUBPASSINPUTMS  */
-  YYSYMBOL_ISUBPASSINPUT = 313,            /* ISUBPASSINPUT  */
-  YYSYMBOL_ISUBPASSINPUTMS = 314,          /* ISUBPASSINPUTMS  */
-  YYSYMBOL_USUBPASSINPUT = 315,            /* USUBPASSINPUT  */
-  YYSYMBOL_USUBPASSINPUTMS = 316,          /* USUBPASSINPUTMS  */
-  YYSYMBOL_F16SUBPASSINPUT = 317,          /* F16SUBPASSINPUT  */
-  YYSYMBOL_F16SUBPASSINPUTMS = 318,        /* F16SUBPASSINPUTMS  */
-  YYSYMBOL_SPIRV_INSTRUCTION = 319,        /* SPIRV_INSTRUCTION  */
-  YYSYMBOL_SPIRV_EXECUTION_MODE = 320,     /* SPIRV_EXECUTION_MODE  */
-  YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 321,  /* SPIRV_EXECUTION_MODE_ID  */
-  YYSYMBOL_SPIRV_DECORATE = 322,           /* SPIRV_DECORATE  */
-  YYSYMBOL_SPIRV_DECORATE_ID = 323,        /* SPIRV_DECORATE_ID  */
-  YYSYMBOL_SPIRV_DECORATE_STRING = 324,    /* SPIRV_DECORATE_STRING  */
-  YYSYMBOL_SPIRV_TYPE = 325,               /* SPIRV_TYPE  */
-  YYSYMBOL_SPIRV_STORAGE_CLASS = 326,      /* SPIRV_STORAGE_CLASS  */
-  YYSYMBOL_SPIRV_BY_REFERENCE = 327,       /* SPIRV_BY_REFERENCE  */
-  YYSYMBOL_SPIRV_LITERAL = 328,            /* SPIRV_LITERAL  */
-  YYSYMBOL_LEFT_OP = 329,                  /* LEFT_OP  */
-  YYSYMBOL_RIGHT_OP = 330,                 /* RIGHT_OP  */
-  YYSYMBOL_INC_OP = 331,                   /* INC_OP  */
-  YYSYMBOL_DEC_OP = 332,                   /* DEC_OP  */
-  YYSYMBOL_LE_OP = 333,                    /* LE_OP  */
-  YYSYMBOL_GE_OP = 334,                    /* GE_OP  */
-  YYSYMBOL_EQ_OP = 335,                    /* EQ_OP  */
-  YYSYMBOL_NE_OP = 336,                    /* NE_OP  */
-  YYSYMBOL_AND_OP = 337,                   /* AND_OP  */
-  YYSYMBOL_OR_OP = 338,                    /* OR_OP  */
-  YYSYMBOL_XOR_OP = 339,                   /* XOR_OP  */
-  YYSYMBOL_MUL_ASSIGN = 340,               /* MUL_ASSIGN  */
-  YYSYMBOL_DIV_ASSIGN = 341,               /* DIV_ASSIGN  */
-  YYSYMBOL_ADD_ASSIGN = 342,               /* ADD_ASSIGN  */
-  YYSYMBOL_MOD_ASSIGN = 343,               /* MOD_ASSIGN  */
-  YYSYMBOL_LEFT_ASSIGN = 344,              /* LEFT_ASSIGN  */
-  YYSYMBOL_RIGHT_ASSIGN = 345,             /* RIGHT_ASSIGN  */
-  YYSYMBOL_AND_ASSIGN = 346,               /* AND_ASSIGN  */
-  YYSYMBOL_XOR_ASSIGN = 347,               /* XOR_ASSIGN  */
-  YYSYMBOL_OR_ASSIGN = 348,                /* OR_ASSIGN  */
-  YYSYMBOL_SUB_ASSIGN = 349,               /* SUB_ASSIGN  */
-  YYSYMBOL_STRING_LITERAL = 350,           /* STRING_LITERAL  */
-  YYSYMBOL_LEFT_PAREN = 351,               /* LEFT_PAREN  */
-  YYSYMBOL_RIGHT_PAREN = 352,              /* RIGHT_PAREN  */
-  YYSYMBOL_LEFT_BRACKET = 353,             /* LEFT_BRACKET  */
-  YYSYMBOL_RIGHT_BRACKET = 354,            /* RIGHT_BRACKET  */
-  YYSYMBOL_LEFT_BRACE = 355,               /* LEFT_BRACE  */
-  YYSYMBOL_RIGHT_BRACE = 356,              /* RIGHT_BRACE  */
-  YYSYMBOL_DOT = 357,                      /* DOT  */
-  YYSYMBOL_COMMA = 358,                    /* COMMA  */
-  YYSYMBOL_COLON = 359,                    /* COLON  */
-  YYSYMBOL_EQUAL = 360,                    /* EQUAL  */
-  YYSYMBOL_SEMICOLON = 361,                /* SEMICOLON  */
-  YYSYMBOL_BANG = 362,                     /* BANG  */
-  YYSYMBOL_DASH = 363,                     /* DASH  */
-  YYSYMBOL_TILDE = 364,                    /* TILDE  */
-  YYSYMBOL_PLUS = 365,                     /* PLUS  */
-  YYSYMBOL_STAR = 366,                     /* STAR  */
-  YYSYMBOL_SLASH = 367,                    /* SLASH  */
-  YYSYMBOL_PERCENT = 368,                  /* PERCENT  */
-  YYSYMBOL_LEFT_ANGLE = 369,               /* LEFT_ANGLE  */
-  YYSYMBOL_RIGHT_ANGLE = 370,              /* RIGHT_ANGLE  */
-  YYSYMBOL_VERTICAL_BAR = 371,             /* VERTICAL_BAR  */
-  YYSYMBOL_CARET = 372,                    /* CARET  */
-  YYSYMBOL_AMPERSAND = 373,                /* AMPERSAND  */
-  YYSYMBOL_QUESTION = 374,                 /* QUESTION  */
-  YYSYMBOL_INVARIANT = 375,                /* INVARIANT  */
-  YYSYMBOL_HIGH_PRECISION = 376,           /* HIGH_PRECISION  */
-  YYSYMBOL_MEDIUM_PRECISION = 377,         /* MEDIUM_PRECISION  */
-  YYSYMBOL_LOW_PRECISION = 378,            /* LOW_PRECISION  */
-  YYSYMBOL_PRECISION = 379,                /* PRECISION  */
-  YYSYMBOL_PACKED = 380,                   /* PACKED  */
-  YYSYMBOL_RESOURCE = 381,                 /* RESOURCE  */
-  YYSYMBOL_SUPERP = 382,                   /* SUPERP  */
-  YYSYMBOL_FLOATCONSTANT = 383,            /* FLOATCONSTANT  */
-  YYSYMBOL_INTCONSTANT = 384,              /* INTCONSTANT  */
-  YYSYMBOL_UINTCONSTANT = 385,             /* UINTCONSTANT  */
-  YYSYMBOL_BOOLCONSTANT = 386,             /* BOOLCONSTANT  */
-  YYSYMBOL_IDENTIFIER = 387,               /* IDENTIFIER  */
-  YYSYMBOL_TYPE_NAME = 388,                /* TYPE_NAME  */
-  YYSYMBOL_CENTROID = 389,                 /* CENTROID  */
-  YYSYMBOL_IN = 390,                       /* IN  */
-  YYSYMBOL_OUT = 391,                      /* OUT  */
-  YYSYMBOL_INOUT = 392,                    /* INOUT  */
-  YYSYMBOL_STRUCT = 393,                   /* STRUCT  */
-  YYSYMBOL_VOID = 394,                     /* VOID  */
-  YYSYMBOL_WHILE = 395,                    /* WHILE  */
-  YYSYMBOL_BREAK = 396,                    /* BREAK  */
-  YYSYMBOL_CONTINUE = 397,                 /* CONTINUE  */
-  YYSYMBOL_DO = 398,                       /* DO  */
-  YYSYMBOL_ELSE = 399,                     /* ELSE  */
-  YYSYMBOL_FOR = 400,                      /* FOR  */
-  YYSYMBOL_IF = 401,                       /* IF  */
-  YYSYMBOL_DISCARD = 402,                  /* DISCARD  */
-  YYSYMBOL_RETURN = 403,                   /* RETURN  */
-  YYSYMBOL_SWITCH = 404,                   /* SWITCH  */
-  YYSYMBOL_CASE = 405,                     /* CASE  */
-  YYSYMBOL_DEFAULT = 406,                  /* DEFAULT  */
-  YYSYMBOL_TERMINATE_INVOCATION = 407,     /* TERMINATE_INVOCATION  */
-  YYSYMBOL_TERMINATE_RAY = 408,            /* TERMINATE_RAY  */
-  YYSYMBOL_IGNORE_INTERSECTION = 409,      /* IGNORE_INTERSECTION  */
-  YYSYMBOL_UNIFORM = 410,                  /* UNIFORM  */
-  YYSYMBOL_SHARED = 411,                   /* SHARED  */
-  YYSYMBOL_BUFFER = 412,                   /* BUFFER  */
-  YYSYMBOL_FLAT = 413,                     /* FLAT  */
-  YYSYMBOL_SMOOTH = 414,                   /* SMOOTH  */
-  YYSYMBOL_LAYOUT = 415,                   /* LAYOUT  */
-  YYSYMBOL_DOUBLECONSTANT = 416,           /* DOUBLECONSTANT  */
-  YYSYMBOL_INT16CONSTANT = 417,            /* INT16CONSTANT  */
-  YYSYMBOL_UINT16CONSTANT = 418,           /* UINT16CONSTANT  */
-  YYSYMBOL_FLOAT16CONSTANT = 419,          /* FLOAT16CONSTANT  */
-  YYSYMBOL_INT32CONSTANT = 420,            /* INT32CONSTANT  */
-  YYSYMBOL_UINT32CONSTANT = 421,           /* UINT32CONSTANT  */
-  YYSYMBOL_INT64CONSTANT = 422,            /* INT64CONSTANT  */
-  YYSYMBOL_UINT64CONSTANT = 423,           /* UINT64CONSTANT  */
-  YYSYMBOL_SUBROUTINE = 424,               /* SUBROUTINE  */
-  YYSYMBOL_DEMOTE = 425,                   /* DEMOTE  */
-  YYSYMBOL_PAYLOADNV = 426,                /* PAYLOADNV  */
-  YYSYMBOL_PAYLOADINNV = 427,              /* PAYLOADINNV  */
-  YYSYMBOL_HITATTRNV = 428,                /* HITATTRNV  */
-  YYSYMBOL_CALLDATANV = 429,               /* CALLDATANV  */
-  YYSYMBOL_CALLDATAINNV = 430,             /* CALLDATAINNV  */
-  YYSYMBOL_PAYLOADEXT = 431,               /* PAYLOADEXT  */
-  YYSYMBOL_PAYLOADINEXT = 432,             /* PAYLOADINEXT  */
-  YYSYMBOL_HITATTREXT = 433,               /* HITATTREXT  */
-  YYSYMBOL_CALLDATAEXT = 434,              /* CALLDATAEXT  */
-  YYSYMBOL_CALLDATAINEXT = 435,            /* CALLDATAINEXT  */
-  YYSYMBOL_PATCH = 436,                    /* PATCH  */
-  YYSYMBOL_SAMPLE = 437,                   /* SAMPLE  */
-  YYSYMBOL_NONUNIFORM = 438,               /* NONUNIFORM  */
-  YYSYMBOL_COHERENT = 439,                 /* COHERENT  */
-  YYSYMBOL_VOLATILE = 440,                 /* VOLATILE  */
-  YYSYMBOL_RESTRICT = 441,                 /* RESTRICT  */
-  YYSYMBOL_READONLY = 442,                 /* READONLY  */
-  YYSYMBOL_WRITEONLY = 443,                /* WRITEONLY  */
-  YYSYMBOL_DEVICECOHERENT = 444,           /* DEVICECOHERENT  */
-  YYSYMBOL_QUEUEFAMILYCOHERENT = 445,      /* QUEUEFAMILYCOHERENT  */
-  YYSYMBOL_WORKGROUPCOHERENT = 446,        /* WORKGROUPCOHERENT  */
-  YYSYMBOL_SUBGROUPCOHERENT = 447,         /* SUBGROUPCOHERENT  */
-  YYSYMBOL_NONPRIVATE = 448,               /* NONPRIVATE  */
-  YYSYMBOL_SHADERCALLCOHERENT = 449,       /* SHADERCALLCOHERENT  */
-  YYSYMBOL_NOPERSPECTIVE = 450,            /* NOPERSPECTIVE  */
-  YYSYMBOL_EXPLICITINTERPAMD = 451,        /* EXPLICITINTERPAMD  */
-  YYSYMBOL_PERVERTEXEXT = 452,             /* PERVERTEXEXT  */
-  YYSYMBOL_PERVERTEXNV = 453,              /* PERVERTEXNV  */
-  YYSYMBOL_PERPRIMITIVENV = 454,           /* PERPRIMITIVENV  */
-  YYSYMBOL_PERVIEWNV = 455,                /* PERVIEWNV  */
-  YYSYMBOL_PERTASKNV = 456,                /* PERTASKNV  */
-  YYSYMBOL_PERPRIMITIVEEXT = 457,          /* PERPRIMITIVEEXT  */
-  YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 458,  /* TASKPAYLOADWORKGROUPEXT  */
-  YYSYMBOL_PRECISE = 459,                  /* PRECISE  */
-  YYSYMBOL_YYACCEPT = 460,                 /* $accept  */
-  YYSYMBOL_variable_identifier = 461,      /* variable_identifier  */
-  YYSYMBOL_primary_expression = 462,       /* primary_expression  */
-  YYSYMBOL_postfix_expression = 463,       /* postfix_expression  */
-  YYSYMBOL_integer_expression = 464,       /* integer_expression  */
-  YYSYMBOL_function_call = 465,            /* function_call  */
-  YYSYMBOL_function_call_or_method = 466,  /* function_call_or_method  */
-  YYSYMBOL_function_call_generic = 467,    /* function_call_generic  */
-  YYSYMBOL_function_call_header_no_parameters = 468, /* function_call_header_no_parameters  */
-  YYSYMBOL_function_call_header_with_parameters = 469, /* function_call_header_with_parameters  */
-  YYSYMBOL_function_call_header = 470,     /* function_call_header  */
-  YYSYMBOL_function_identifier = 471,      /* function_identifier  */
-  YYSYMBOL_unary_expression = 472,         /* unary_expression  */
-  YYSYMBOL_unary_operator = 473,           /* unary_operator  */
-  YYSYMBOL_multiplicative_expression = 474, /* multiplicative_expression  */
-  YYSYMBOL_additive_expression = 475,      /* additive_expression  */
-  YYSYMBOL_shift_expression = 476,         /* shift_expression  */
-  YYSYMBOL_relational_expression = 477,    /* relational_expression  */
-  YYSYMBOL_equality_expression = 478,      /* equality_expression  */
-  YYSYMBOL_and_expression = 479,           /* and_expression  */
-  YYSYMBOL_exclusive_or_expression = 480,  /* exclusive_or_expression  */
-  YYSYMBOL_inclusive_or_expression = 481,  /* inclusive_or_expression  */
-  YYSYMBOL_logical_and_expression = 482,   /* logical_and_expression  */
-  YYSYMBOL_logical_xor_expression = 483,   /* logical_xor_expression  */
-  YYSYMBOL_logical_or_expression = 484,    /* logical_or_expression  */
-  YYSYMBOL_conditional_expression = 485,   /* conditional_expression  */
-  YYSYMBOL_486_1 = 486,                    /* $@1  */
-  YYSYMBOL_assignment_expression = 487,    /* assignment_expression  */
-  YYSYMBOL_assignment_operator = 488,      /* assignment_operator  */
-  YYSYMBOL_expression = 489,               /* expression  */
-  YYSYMBOL_constant_expression = 490,      /* constant_expression  */
-  YYSYMBOL_declaration = 491,              /* declaration  */
-  YYSYMBOL_block_structure = 492,          /* block_structure  */
-  YYSYMBOL_493_2 = 493,                    /* $@2  */
-  YYSYMBOL_identifier_list = 494,          /* identifier_list  */
-  YYSYMBOL_function_prototype = 495,       /* function_prototype  */
-  YYSYMBOL_function_declarator = 496,      /* function_declarator  */
-  YYSYMBOL_function_header_with_parameters = 497, /* function_header_with_parameters  */
-  YYSYMBOL_function_header = 498,          /* function_header  */
-  YYSYMBOL_parameter_declarator = 499,     /* parameter_declarator  */
-  YYSYMBOL_parameter_declaration = 500,    /* parameter_declaration  */
-  YYSYMBOL_parameter_type_specifier = 501, /* parameter_type_specifier  */
-  YYSYMBOL_init_declarator_list = 502,     /* init_declarator_list  */
-  YYSYMBOL_single_declaration = 503,       /* single_declaration  */
-  YYSYMBOL_fully_specified_type = 504,     /* fully_specified_type  */
-  YYSYMBOL_invariant_qualifier = 505,      /* invariant_qualifier  */
-  YYSYMBOL_interpolation_qualifier = 506,  /* interpolation_qualifier  */
-  YYSYMBOL_layout_qualifier = 507,         /* layout_qualifier  */
-  YYSYMBOL_layout_qualifier_id_list = 508, /* layout_qualifier_id_list  */
-  YYSYMBOL_layout_qualifier_id = 509,      /* layout_qualifier_id  */
-  YYSYMBOL_precise_qualifier = 510,        /* precise_qualifier  */
-  YYSYMBOL_type_qualifier = 511,           /* type_qualifier  */
-  YYSYMBOL_single_type_qualifier = 512,    /* single_type_qualifier  */
-  YYSYMBOL_storage_qualifier = 513,        /* storage_qualifier  */
-  YYSYMBOL_non_uniform_qualifier = 514,    /* non_uniform_qualifier  */
-  YYSYMBOL_type_name_list = 515,           /* type_name_list  */
-  YYSYMBOL_type_specifier = 516,           /* type_specifier  */
-  YYSYMBOL_array_specifier = 517,          /* array_specifier  */
-  YYSYMBOL_type_parameter_specifier_opt = 518, /* type_parameter_specifier_opt  */
-  YYSYMBOL_type_parameter_specifier = 519, /* type_parameter_specifier  */
-  YYSYMBOL_type_parameter_specifier_list = 520, /* type_parameter_specifier_list  */
-  YYSYMBOL_type_specifier_nonarray = 521,  /* type_specifier_nonarray  */
-  YYSYMBOL_precision_qualifier = 522,      /* precision_qualifier  */
-  YYSYMBOL_struct_specifier = 523,         /* struct_specifier  */
-  YYSYMBOL_524_3 = 524,                    /* $@3  */
-  YYSYMBOL_525_4 = 525,                    /* $@4  */
-  YYSYMBOL_struct_declaration_list = 526,  /* struct_declaration_list  */
-  YYSYMBOL_struct_declaration = 527,       /* struct_declaration  */
-  YYSYMBOL_struct_declarator_list = 528,   /* struct_declarator_list  */
-  YYSYMBOL_struct_declarator = 529,        /* struct_declarator  */
-  YYSYMBOL_initializer = 530,              /* initializer  */
-  YYSYMBOL_initializer_list = 531,         /* initializer_list  */
-  YYSYMBOL_declaration_statement = 532,    /* declaration_statement  */
-  YYSYMBOL_statement = 533,                /* statement  */
-  YYSYMBOL_simple_statement = 534,         /* simple_statement  */
-  YYSYMBOL_demote_statement = 535,         /* demote_statement  */
-  YYSYMBOL_compound_statement = 536,       /* compound_statement  */
-  YYSYMBOL_537_5 = 537,                    /* $@5  */
-  YYSYMBOL_538_6 = 538,                    /* $@6  */
-  YYSYMBOL_statement_no_new_scope = 539,   /* statement_no_new_scope  */
-  YYSYMBOL_statement_scoped = 540,         /* statement_scoped  */
-  YYSYMBOL_541_7 = 541,                    /* $@7  */
-  YYSYMBOL_542_8 = 542,                    /* $@8  */
-  YYSYMBOL_compound_statement_no_new_scope = 543, /* compound_statement_no_new_scope  */
-  YYSYMBOL_statement_list = 544,           /* statement_list  */
-  YYSYMBOL_expression_statement = 545,     /* expression_statement  */
-  YYSYMBOL_selection_statement = 546,      /* selection_statement  */
-  YYSYMBOL_selection_statement_nonattributed = 547, /* selection_statement_nonattributed  */
-  YYSYMBOL_selection_rest_statement = 548, /* selection_rest_statement  */
-  YYSYMBOL_condition = 549,                /* condition  */
-  YYSYMBOL_switch_statement = 550,         /* switch_statement  */
-  YYSYMBOL_switch_statement_nonattributed = 551, /* switch_statement_nonattributed  */
-  YYSYMBOL_552_9 = 552,                    /* $@9  */
-  YYSYMBOL_switch_statement_list = 553,    /* switch_statement_list  */
-  YYSYMBOL_case_label = 554,               /* case_label  */
-  YYSYMBOL_iteration_statement = 555,      /* iteration_statement  */
-  YYSYMBOL_iteration_statement_nonattributed = 556, /* iteration_statement_nonattributed  */
-  YYSYMBOL_557_10 = 557,                   /* $@10  */
-  YYSYMBOL_558_11 = 558,                   /* $@11  */
-  YYSYMBOL_559_12 = 559,                   /* $@12  */
-  YYSYMBOL_for_init_statement = 560,       /* for_init_statement  */
-  YYSYMBOL_conditionopt = 561,             /* conditionopt  */
-  YYSYMBOL_for_rest_statement = 562,       /* for_rest_statement  */
-  YYSYMBOL_jump_statement = 563,           /* jump_statement  */
-  YYSYMBOL_translation_unit = 564,         /* translation_unit  */
-  YYSYMBOL_external_declaration = 565,     /* external_declaration  */
-  YYSYMBOL_function_definition = 566,      /* function_definition  */
-  YYSYMBOL_567_13 = 567,                   /* $@13  */
-  YYSYMBOL_attribute = 568,                /* attribute  */
-  YYSYMBOL_attribute_list = 569,           /* attribute_list  */
-  YYSYMBOL_single_attribute = 570,         /* single_attribute  */
-  YYSYMBOL_spirv_requirements_list = 571,  /* spirv_requirements_list  */
-  YYSYMBOL_spirv_requirements_parameter = 572, /* spirv_requirements_parameter  */
-  YYSYMBOL_spirv_extension_list = 573,     /* spirv_extension_list  */
-  YYSYMBOL_spirv_capability_list = 574,    /* spirv_capability_list  */
-  YYSYMBOL_spirv_execution_mode_qualifier = 575, /* spirv_execution_mode_qualifier  */
-  YYSYMBOL_spirv_execution_mode_parameter_list = 576, /* spirv_execution_mode_parameter_list  */
-  YYSYMBOL_spirv_execution_mode_parameter = 577, /* spirv_execution_mode_parameter  */
-  YYSYMBOL_spirv_execution_mode_id_parameter_list = 578, /* spirv_execution_mode_id_parameter_list  */
-  YYSYMBOL_spirv_storage_class_qualifier = 579, /* spirv_storage_class_qualifier  */
-  YYSYMBOL_spirv_decorate_qualifier = 580, /* spirv_decorate_qualifier  */
-  YYSYMBOL_spirv_decorate_parameter_list = 581, /* spirv_decorate_parameter_list  */
-  YYSYMBOL_spirv_decorate_parameter = 582, /* spirv_decorate_parameter  */
-  YYSYMBOL_spirv_decorate_id_parameter_list = 583, /* spirv_decorate_id_parameter_list  */
-  YYSYMBOL_spirv_decorate_string_parameter_list = 584, /* spirv_decorate_string_parameter_list  */
-  YYSYMBOL_spirv_type_specifier = 585,     /* spirv_type_specifier  */
-  YYSYMBOL_spirv_type_parameter_list = 586, /* spirv_type_parameter_list  */
-  YYSYMBOL_spirv_type_parameter = 587,     /* spirv_type_parameter  */
-  YYSYMBOL_spirv_instruction_qualifier = 588, /* spirv_instruction_qualifier  */
-  YYSYMBOL_spirv_instruction_qualifier_list = 589, /* spirv_instruction_qualifier_list  */
-  YYSYMBOL_spirv_instruction_qualifier_id = 590 /* spirv_instruction_qualifier_id  */
+  YYSYMBOL_SAMPLERCUBEARRAY = 166,         /* SAMPLERCUBEARRAY  */
+  YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 167,   /* SAMPLERCUBEARRAYSHADOW  */
+  YYSYMBOL_ISAMPLERCUBEARRAY = 168,        /* ISAMPLERCUBEARRAY  */
+  YYSYMBOL_USAMPLERCUBEARRAY = 169,        /* USAMPLERCUBEARRAY  */
+  YYSYMBOL_SAMPLER1D = 170,                /* SAMPLER1D  */
+  YYSYMBOL_SAMPLER1DARRAY = 171,           /* SAMPLER1DARRAY  */
+  YYSYMBOL_SAMPLER1DARRAYSHADOW = 172,     /* SAMPLER1DARRAYSHADOW  */
+  YYSYMBOL_ISAMPLER1D = 173,               /* ISAMPLER1D  */
+  YYSYMBOL_SAMPLER1DSHADOW = 174,          /* SAMPLER1DSHADOW  */
+  YYSYMBOL_SAMPLER2DRECT = 175,            /* SAMPLER2DRECT  */
+  YYSYMBOL_SAMPLER2DRECTSHADOW = 176,      /* SAMPLER2DRECTSHADOW  */
+  YYSYMBOL_ISAMPLER2DRECT = 177,           /* ISAMPLER2DRECT  */
+  YYSYMBOL_USAMPLER2DRECT = 178,           /* USAMPLER2DRECT  */
+  YYSYMBOL_SAMPLERBUFFER = 179,            /* SAMPLERBUFFER  */
+  YYSYMBOL_ISAMPLERBUFFER = 180,           /* ISAMPLERBUFFER  */
+  YYSYMBOL_USAMPLERBUFFER = 181,           /* USAMPLERBUFFER  */
+  YYSYMBOL_SAMPLER2DMS = 182,              /* SAMPLER2DMS  */
+  YYSYMBOL_ISAMPLER2DMS = 183,             /* ISAMPLER2DMS  */
+  YYSYMBOL_USAMPLER2DMS = 184,             /* USAMPLER2DMS  */
+  YYSYMBOL_SAMPLER2DMSARRAY = 185,         /* SAMPLER2DMSARRAY  */
+  YYSYMBOL_ISAMPLER2DMSARRAY = 186,        /* ISAMPLER2DMSARRAY  */
+  YYSYMBOL_USAMPLER2DMSARRAY = 187,        /* USAMPLER2DMSARRAY  */
+  YYSYMBOL_SAMPLEREXTERNALOES = 188,       /* SAMPLEREXTERNALOES  */
+  YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 189,  /* SAMPLEREXTERNAL2DY2YEXT  */
+  YYSYMBOL_ISAMPLER1DARRAY = 190,          /* ISAMPLER1DARRAY  */
+  YYSYMBOL_USAMPLER1D = 191,               /* USAMPLER1D  */
+  YYSYMBOL_USAMPLER1DARRAY = 192,          /* USAMPLER1DARRAY  */
+  YYSYMBOL_F16SAMPLER1D = 193,             /* F16SAMPLER1D  */
+  YYSYMBOL_F16SAMPLER2D = 194,             /* F16SAMPLER2D  */
+  YYSYMBOL_F16SAMPLER3D = 195,             /* F16SAMPLER3D  */
+  YYSYMBOL_F16SAMPLER2DRECT = 196,         /* F16SAMPLER2DRECT  */
+  YYSYMBOL_F16SAMPLERCUBE = 197,           /* F16SAMPLERCUBE  */
+  YYSYMBOL_F16SAMPLER1DARRAY = 198,        /* F16SAMPLER1DARRAY  */
+  YYSYMBOL_F16SAMPLER2DARRAY = 199,        /* F16SAMPLER2DARRAY  */
+  YYSYMBOL_F16SAMPLERCUBEARRAY = 200,      /* F16SAMPLERCUBEARRAY  */
+  YYSYMBOL_F16SAMPLERBUFFER = 201,         /* F16SAMPLERBUFFER  */
+  YYSYMBOL_F16SAMPLER2DMS = 202,           /* F16SAMPLER2DMS  */
+  YYSYMBOL_F16SAMPLER2DMSARRAY = 203,      /* F16SAMPLER2DMSARRAY  */
+  YYSYMBOL_F16SAMPLER1DSHADOW = 204,       /* F16SAMPLER1DSHADOW  */
+  YYSYMBOL_F16SAMPLER2DSHADOW = 205,       /* F16SAMPLER2DSHADOW  */
+  YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 206,  /* F16SAMPLER1DARRAYSHADOW  */
+  YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 207,  /* F16SAMPLER2DARRAYSHADOW  */
+  YYSYMBOL_F16SAMPLER2DRECTSHADOW = 208,   /* F16SAMPLER2DRECTSHADOW  */
+  YYSYMBOL_F16SAMPLERCUBESHADOW = 209,     /* F16SAMPLERCUBESHADOW  */
+  YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 210, /* F16SAMPLERCUBEARRAYSHADOW  */
+  YYSYMBOL_IMAGE1D = 211,                  /* IMAGE1D  */
+  YYSYMBOL_IIMAGE1D = 212,                 /* IIMAGE1D  */
+  YYSYMBOL_UIMAGE1D = 213,                 /* UIMAGE1D  */
+  YYSYMBOL_IMAGE2D = 214,                  /* IMAGE2D  */
+  YYSYMBOL_IIMAGE2D = 215,                 /* IIMAGE2D  */
+  YYSYMBOL_UIMAGE2D = 216,                 /* UIMAGE2D  */
+  YYSYMBOL_IMAGE3D = 217,                  /* IMAGE3D  */
+  YYSYMBOL_IIMAGE3D = 218,                 /* IIMAGE3D  */
+  YYSYMBOL_UIMAGE3D = 219,                 /* UIMAGE3D  */
+  YYSYMBOL_IMAGE2DRECT = 220,              /* IMAGE2DRECT  */
+  YYSYMBOL_IIMAGE2DRECT = 221,             /* IIMAGE2DRECT  */
+  YYSYMBOL_UIMAGE2DRECT = 222,             /* UIMAGE2DRECT  */
+  YYSYMBOL_IMAGECUBE = 223,                /* IMAGECUBE  */
+  YYSYMBOL_IIMAGECUBE = 224,               /* IIMAGECUBE  */
+  YYSYMBOL_UIMAGECUBE = 225,               /* UIMAGECUBE  */
+  YYSYMBOL_IMAGEBUFFER = 226,              /* IMAGEBUFFER  */
+  YYSYMBOL_IIMAGEBUFFER = 227,             /* IIMAGEBUFFER  */
+  YYSYMBOL_UIMAGEBUFFER = 228,             /* UIMAGEBUFFER  */
+  YYSYMBOL_IMAGE1DARRAY = 229,             /* IMAGE1DARRAY  */
+  YYSYMBOL_IIMAGE1DARRAY = 230,            /* IIMAGE1DARRAY  */
+  YYSYMBOL_UIMAGE1DARRAY = 231,            /* UIMAGE1DARRAY  */
+  YYSYMBOL_IMAGE2DARRAY = 232,             /* IMAGE2DARRAY  */
+  YYSYMBOL_IIMAGE2DARRAY = 233,            /* IIMAGE2DARRAY  */
+  YYSYMBOL_UIMAGE2DARRAY = 234,            /* UIMAGE2DARRAY  */
+  YYSYMBOL_IMAGECUBEARRAY = 235,           /* IMAGECUBEARRAY  */
+  YYSYMBOL_IIMAGECUBEARRAY = 236,          /* IIMAGECUBEARRAY  */
+  YYSYMBOL_UIMAGECUBEARRAY = 237,          /* UIMAGECUBEARRAY  */
+  YYSYMBOL_IMAGE2DMS = 238,                /* IMAGE2DMS  */
+  YYSYMBOL_IIMAGE2DMS = 239,               /* IIMAGE2DMS  */
+  YYSYMBOL_UIMAGE2DMS = 240,               /* UIMAGE2DMS  */
+  YYSYMBOL_IMAGE2DMSARRAY = 241,           /* IMAGE2DMSARRAY  */
+  YYSYMBOL_IIMAGE2DMSARRAY = 242,          /* IIMAGE2DMSARRAY  */
+  YYSYMBOL_UIMAGE2DMSARRAY = 243,          /* UIMAGE2DMSARRAY  */
+  YYSYMBOL_F16IMAGE1D = 244,               /* F16IMAGE1D  */
+  YYSYMBOL_F16IMAGE2D = 245,               /* F16IMAGE2D  */
+  YYSYMBOL_F16IMAGE3D = 246,               /* F16IMAGE3D  */
+  YYSYMBOL_F16IMAGE2DRECT = 247,           /* F16IMAGE2DRECT  */
+  YYSYMBOL_F16IMAGECUBE = 248,             /* F16IMAGECUBE  */
+  YYSYMBOL_F16IMAGE1DARRAY = 249,          /* F16IMAGE1DARRAY  */
+  YYSYMBOL_F16IMAGE2DARRAY = 250,          /* F16IMAGE2DARRAY  */
+  YYSYMBOL_F16IMAGECUBEARRAY = 251,        /* F16IMAGECUBEARRAY  */
+  YYSYMBOL_F16IMAGEBUFFER = 252,           /* F16IMAGEBUFFER  */
+  YYSYMBOL_F16IMAGE2DMS = 253,             /* F16IMAGE2DMS  */
+  YYSYMBOL_F16IMAGE2DMSARRAY = 254,        /* F16IMAGE2DMSARRAY  */
+  YYSYMBOL_I64IMAGE1D = 255,               /* I64IMAGE1D  */
+  YYSYMBOL_U64IMAGE1D = 256,               /* U64IMAGE1D  */
+  YYSYMBOL_I64IMAGE2D = 257,               /* I64IMAGE2D  */
+  YYSYMBOL_U64IMAGE2D = 258,               /* U64IMAGE2D  */
+  YYSYMBOL_I64IMAGE3D = 259,               /* I64IMAGE3D  */
+  YYSYMBOL_U64IMAGE3D = 260,               /* U64IMAGE3D  */
+  YYSYMBOL_I64IMAGE2DRECT = 261,           /* I64IMAGE2DRECT  */
+  YYSYMBOL_U64IMAGE2DRECT = 262,           /* U64IMAGE2DRECT  */
+  YYSYMBOL_I64IMAGECUBE = 263,             /* I64IMAGECUBE  */
+  YYSYMBOL_U64IMAGECUBE = 264,             /* U64IMAGECUBE  */
+  YYSYMBOL_I64IMAGEBUFFER = 265,           /* I64IMAGEBUFFER  */
+  YYSYMBOL_U64IMAGEBUFFER = 266,           /* U64IMAGEBUFFER  */
+  YYSYMBOL_I64IMAGE1DARRAY = 267,          /* I64IMAGE1DARRAY  */
+  YYSYMBOL_U64IMAGE1DARRAY = 268,          /* U64IMAGE1DARRAY  */
+  YYSYMBOL_I64IMAGE2DARRAY = 269,          /* I64IMAGE2DARRAY  */
+  YYSYMBOL_U64IMAGE2DARRAY = 270,          /* U64IMAGE2DARRAY  */
+  YYSYMBOL_I64IMAGECUBEARRAY = 271,        /* I64IMAGECUBEARRAY  */
+  YYSYMBOL_U64IMAGECUBEARRAY = 272,        /* U64IMAGECUBEARRAY  */
+  YYSYMBOL_I64IMAGE2DMS = 273,             /* I64IMAGE2DMS  */
+  YYSYMBOL_U64IMAGE2DMS = 274,             /* U64IMAGE2DMS  */
+  YYSYMBOL_I64IMAGE2DMSARRAY = 275,        /* I64IMAGE2DMSARRAY  */
+  YYSYMBOL_U64IMAGE2DMSARRAY = 276,        /* U64IMAGE2DMSARRAY  */
+  YYSYMBOL_TEXTURECUBEARRAY = 277,         /* TEXTURECUBEARRAY  */
+  YYSYMBOL_ITEXTURECUBEARRAY = 278,        /* ITEXTURECUBEARRAY  */
+  YYSYMBOL_UTEXTURECUBEARRAY = 279,        /* UTEXTURECUBEARRAY  */
+  YYSYMBOL_TEXTURE1D = 280,                /* TEXTURE1D  */
+  YYSYMBOL_ITEXTURE1D = 281,               /* ITEXTURE1D  */
+  YYSYMBOL_UTEXTURE1D = 282,               /* UTEXTURE1D  */
+  YYSYMBOL_TEXTURE1DARRAY = 283,           /* TEXTURE1DARRAY  */
+  YYSYMBOL_ITEXTURE1DARRAY = 284,          /* ITEXTURE1DARRAY  */
+  YYSYMBOL_UTEXTURE1DARRAY = 285,          /* UTEXTURE1DARRAY  */
+  YYSYMBOL_TEXTURE2DRECT = 286,            /* TEXTURE2DRECT  */
+  YYSYMBOL_ITEXTURE2DRECT = 287,           /* ITEXTURE2DRECT  */
+  YYSYMBOL_UTEXTURE2DRECT = 288,           /* UTEXTURE2DRECT  */
+  YYSYMBOL_TEXTUREBUFFER = 289,            /* TEXTUREBUFFER  */
+  YYSYMBOL_ITEXTUREBUFFER = 290,           /* ITEXTUREBUFFER  */
+  YYSYMBOL_UTEXTUREBUFFER = 291,           /* UTEXTUREBUFFER  */
+  YYSYMBOL_TEXTURE2DMS = 292,              /* TEXTURE2DMS  */
+  YYSYMBOL_ITEXTURE2DMS = 293,             /* ITEXTURE2DMS  */
+  YYSYMBOL_UTEXTURE2DMS = 294,             /* UTEXTURE2DMS  */
+  YYSYMBOL_TEXTURE2DMSARRAY = 295,         /* TEXTURE2DMSARRAY  */
+  YYSYMBOL_ITEXTURE2DMSARRAY = 296,        /* ITEXTURE2DMSARRAY  */
+  YYSYMBOL_UTEXTURE2DMSARRAY = 297,        /* UTEXTURE2DMSARRAY  */
+  YYSYMBOL_F16TEXTURE1D = 298,             /* F16TEXTURE1D  */
+  YYSYMBOL_F16TEXTURE2D = 299,             /* F16TEXTURE2D  */
+  YYSYMBOL_F16TEXTURE3D = 300,             /* F16TEXTURE3D  */
+  YYSYMBOL_F16TEXTURE2DRECT = 301,         /* F16TEXTURE2DRECT  */
+  YYSYMBOL_F16TEXTURECUBE = 302,           /* F16TEXTURECUBE  */
+  YYSYMBOL_F16TEXTURE1DARRAY = 303,        /* F16TEXTURE1DARRAY  */
+  YYSYMBOL_F16TEXTURE2DARRAY = 304,        /* F16TEXTURE2DARRAY  */
+  YYSYMBOL_F16TEXTURECUBEARRAY = 305,      /* F16TEXTURECUBEARRAY  */
+  YYSYMBOL_F16TEXTUREBUFFER = 306,         /* F16TEXTUREBUFFER  */
+  YYSYMBOL_F16TEXTURE2DMS = 307,           /* F16TEXTURE2DMS  */
+  YYSYMBOL_F16TEXTURE2DMSARRAY = 308,      /* F16TEXTURE2DMSARRAY  */
+  YYSYMBOL_SUBPASSINPUT = 309,             /* SUBPASSINPUT  */
+  YYSYMBOL_SUBPASSINPUTMS = 310,           /* SUBPASSINPUTMS  */
+  YYSYMBOL_ISUBPASSINPUT = 311,            /* ISUBPASSINPUT  */
+  YYSYMBOL_ISUBPASSINPUTMS = 312,          /* ISUBPASSINPUTMS  */
+  YYSYMBOL_USUBPASSINPUT = 313,            /* USUBPASSINPUT  */
+  YYSYMBOL_USUBPASSINPUTMS = 314,          /* USUBPASSINPUTMS  */
+  YYSYMBOL_F16SUBPASSINPUT = 315,          /* F16SUBPASSINPUT  */
+  YYSYMBOL_F16SUBPASSINPUTMS = 316,        /* F16SUBPASSINPUTMS  */
+  YYSYMBOL_SPIRV_INSTRUCTION = 317,        /* SPIRV_INSTRUCTION  */
+  YYSYMBOL_SPIRV_EXECUTION_MODE = 318,     /* SPIRV_EXECUTION_MODE  */
+  YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 319,  /* SPIRV_EXECUTION_MODE_ID  */
+  YYSYMBOL_SPIRV_DECORATE = 320,           /* SPIRV_DECORATE  */
+  YYSYMBOL_SPIRV_DECORATE_ID = 321,        /* SPIRV_DECORATE_ID  */
+  YYSYMBOL_SPIRV_DECORATE_STRING = 322,    /* SPIRV_DECORATE_STRING  */
+  YYSYMBOL_SPIRV_TYPE = 323,               /* SPIRV_TYPE  */
+  YYSYMBOL_SPIRV_STORAGE_CLASS = 324,      /* SPIRV_STORAGE_CLASS  */
+  YYSYMBOL_SPIRV_BY_REFERENCE = 325,       /* SPIRV_BY_REFERENCE  */
+  YYSYMBOL_SPIRV_LITERAL = 326,            /* SPIRV_LITERAL  */
+  YYSYMBOL_LEFT_OP = 327,                  /* LEFT_OP  */
+  YYSYMBOL_RIGHT_OP = 328,                 /* RIGHT_OP  */
+  YYSYMBOL_INC_OP = 329,                   /* INC_OP  */
+  YYSYMBOL_DEC_OP = 330,                   /* DEC_OP  */
+  YYSYMBOL_LE_OP = 331,                    /* LE_OP  */
+  YYSYMBOL_GE_OP = 332,                    /* GE_OP  */
+  YYSYMBOL_EQ_OP = 333,                    /* EQ_OP  */
+  YYSYMBOL_NE_OP = 334,                    /* NE_OP  */
+  YYSYMBOL_AND_OP = 335,                   /* AND_OP  */
+  YYSYMBOL_OR_OP = 336,                    /* OR_OP  */
+  YYSYMBOL_XOR_OP = 337,                   /* XOR_OP  */
+  YYSYMBOL_MUL_ASSIGN = 338,               /* MUL_ASSIGN  */
+  YYSYMBOL_DIV_ASSIGN = 339,               /* DIV_ASSIGN  */
+  YYSYMBOL_ADD_ASSIGN = 340,               /* ADD_ASSIGN  */
+  YYSYMBOL_MOD_ASSIGN = 341,               /* MOD_ASSIGN  */
+  YYSYMBOL_LEFT_ASSIGN = 342,              /* LEFT_ASSIGN  */
+  YYSYMBOL_RIGHT_ASSIGN = 343,             /* RIGHT_ASSIGN  */
+  YYSYMBOL_AND_ASSIGN = 344,               /* AND_ASSIGN  */
+  YYSYMBOL_XOR_ASSIGN = 345,               /* XOR_ASSIGN  */
+  YYSYMBOL_OR_ASSIGN = 346,                /* OR_ASSIGN  */
+  YYSYMBOL_SUB_ASSIGN = 347,               /* SUB_ASSIGN  */
+  YYSYMBOL_STRING_LITERAL = 348,           /* STRING_LITERAL  */
+  YYSYMBOL_LEFT_PAREN = 349,               /* LEFT_PAREN  */
+  YYSYMBOL_RIGHT_PAREN = 350,              /* RIGHT_PAREN  */
+  YYSYMBOL_LEFT_BRACKET = 351,             /* LEFT_BRACKET  */
+  YYSYMBOL_RIGHT_BRACKET = 352,            /* RIGHT_BRACKET  */
+  YYSYMBOL_LEFT_BRACE = 353,               /* LEFT_BRACE  */
+  YYSYMBOL_RIGHT_BRACE = 354,              /* RIGHT_BRACE  */
+  YYSYMBOL_DOT = 355,                      /* DOT  */
+  YYSYMBOL_COMMA = 356,                    /* COMMA  */
+  YYSYMBOL_COLON = 357,                    /* COLON  */
+  YYSYMBOL_EQUAL = 358,                    /* EQUAL  */
+  YYSYMBOL_SEMICOLON = 359,                /* SEMICOLON  */
+  YYSYMBOL_BANG = 360,                     /* BANG  */
+  YYSYMBOL_DASH = 361,                     /* DASH  */
+  YYSYMBOL_TILDE = 362,                    /* TILDE  */
+  YYSYMBOL_PLUS = 363,                     /* PLUS  */
+  YYSYMBOL_STAR = 364,                     /* STAR  */
+  YYSYMBOL_SLASH = 365,                    /* SLASH  */
+  YYSYMBOL_PERCENT = 366,                  /* PERCENT  */
+  YYSYMBOL_LEFT_ANGLE = 367,               /* LEFT_ANGLE  */
+  YYSYMBOL_RIGHT_ANGLE = 368,              /* RIGHT_ANGLE  */
+  YYSYMBOL_VERTICAL_BAR = 369,             /* VERTICAL_BAR  */
+  YYSYMBOL_CARET = 370,                    /* CARET  */
+  YYSYMBOL_AMPERSAND = 371,                /* AMPERSAND  */
+  YYSYMBOL_QUESTION = 372,                 /* QUESTION  */
+  YYSYMBOL_INVARIANT = 373,                /* INVARIANT  */
+  YYSYMBOL_HIGH_PRECISION = 374,           /* HIGH_PRECISION  */
+  YYSYMBOL_MEDIUM_PRECISION = 375,         /* MEDIUM_PRECISION  */
+  YYSYMBOL_LOW_PRECISION = 376,            /* LOW_PRECISION  */
+  YYSYMBOL_PRECISION = 377,                /* PRECISION  */
+  YYSYMBOL_PACKED = 378,                   /* PACKED  */
+  YYSYMBOL_RESOURCE = 379,                 /* RESOURCE  */
+  YYSYMBOL_SUPERP = 380,                   /* SUPERP  */
+  YYSYMBOL_FLOATCONSTANT = 381,            /* FLOATCONSTANT  */
+  YYSYMBOL_INTCONSTANT = 382,              /* INTCONSTANT  */
+  YYSYMBOL_UINTCONSTANT = 383,             /* UINTCONSTANT  */
+  YYSYMBOL_BOOLCONSTANT = 384,             /* BOOLCONSTANT  */
+  YYSYMBOL_IDENTIFIER = 385,               /* IDENTIFIER  */
+  YYSYMBOL_TYPE_NAME = 386,                /* TYPE_NAME  */
+  YYSYMBOL_CENTROID = 387,                 /* CENTROID  */
+  YYSYMBOL_IN = 388,                       /* IN  */
+  YYSYMBOL_OUT = 389,                      /* OUT  */
+  YYSYMBOL_INOUT = 390,                    /* INOUT  */
+  YYSYMBOL_STRUCT = 391,                   /* STRUCT  */
+  YYSYMBOL_VOID = 392,                     /* VOID  */
+  YYSYMBOL_WHILE = 393,                    /* WHILE  */
+  YYSYMBOL_BREAK = 394,                    /* BREAK  */
+  YYSYMBOL_CONTINUE = 395,                 /* CONTINUE  */
+  YYSYMBOL_DO = 396,                       /* DO  */
+  YYSYMBOL_ELSE = 397,                     /* ELSE  */
+  YYSYMBOL_FOR = 398,                      /* FOR  */
+  YYSYMBOL_IF = 399,                       /* IF  */
+  YYSYMBOL_DISCARD = 400,                  /* DISCARD  */
+  YYSYMBOL_RETURN = 401,                   /* RETURN  */
+  YYSYMBOL_SWITCH = 402,                   /* SWITCH  */
+  YYSYMBOL_CASE = 403,                     /* CASE  */
+  YYSYMBOL_DEFAULT = 404,                  /* DEFAULT  */
+  YYSYMBOL_TERMINATE_INVOCATION = 405,     /* TERMINATE_INVOCATION  */
+  YYSYMBOL_TERMINATE_RAY = 406,            /* TERMINATE_RAY  */
+  YYSYMBOL_IGNORE_INTERSECTION = 407,      /* IGNORE_INTERSECTION  */
+  YYSYMBOL_UNIFORM = 408,                  /* UNIFORM  */
+  YYSYMBOL_SHARED = 409,                   /* SHARED  */
+  YYSYMBOL_BUFFER = 410,                   /* BUFFER  */
+  YYSYMBOL_FLAT = 411,                     /* FLAT  */
+  YYSYMBOL_SMOOTH = 412,                   /* SMOOTH  */
+  YYSYMBOL_LAYOUT = 413,                   /* LAYOUT  */
+  YYSYMBOL_DOUBLECONSTANT = 414,           /* DOUBLECONSTANT  */
+  YYSYMBOL_INT16CONSTANT = 415,            /* INT16CONSTANT  */
+  YYSYMBOL_UINT16CONSTANT = 416,           /* UINT16CONSTANT  */
+  YYSYMBOL_FLOAT16CONSTANT = 417,          /* FLOAT16CONSTANT  */
+  YYSYMBOL_INT32CONSTANT = 418,            /* INT32CONSTANT  */
+  YYSYMBOL_UINT32CONSTANT = 419,           /* UINT32CONSTANT  */
+  YYSYMBOL_INT64CONSTANT = 420,            /* INT64CONSTANT  */
+  YYSYMBOL_UINT64CONSTANT = 421,           /* UINT64CONSTANT  */
+  YYSYMBOL_SUBROUTINE = 422,               /* SUBROUTINE  */
+  YYSYMBOL_DEMOTE = 423,                   /* DEMOTE  */
+  YYSYMBOL_PAYLOADNV = 424,                /* PAYLOADNV  */
+  YYSYMBOL_PAYLOADINNV = 425,              /* PAYLOADINNV  */
+  YYSYMBOL_HITATTRNV = 426,                /* HITATTRNV  */
+  YYSYMBOL_CALLDATANV = 427,               /* CALLDATANV  */
+  YYSYMBOL_CALLDATAINNV = 428,             /* CALLDATAINNV  */
+  YYSYMBOL_PAYLOADEXT = 429,               /* PAYLOADEXT  */
+  YYSYMBOL_PAYLOADINEXT = 430,             /* PAYLOADINEXT  */
+  YYSYMBOL_HITATTREXT = 431,               /* HITATTREXT  */
+  YYSYMBOL_CALLDATAEXT = 432,              /* CALLDATAEXT  */
+  YYSYMBOL_CALLDATAINEXT = 433,            /* CALLDATAINEXT  */
+  YYSYMBOL_PATCH = 434,                    /* PATCH  */
+  YYSYMBOL_SAMPLE = 435,                   /* SAMPLE  */
+  YYSYMBOL_NONUNIFORM = 436,               /* NONUNIFORM  */
+  YYSYMBOL_COHERENT = 437,                 /* COHERENT  */
+  YYSYMBOL_VOLATILE = 438,                 /* VOLATILE  */
+  YYSYMBOL_RESTRICT = 439,                 /* RESTRICT  */
+  YYSYMBOL_READONLY = 440,                 /* READONLY  */
+  YYSYMBOL_WRITEONLY = 441,                /* WRITEONLY  */
+  YYSYMBOL_DEVICECOHERENT = 442,           /* DEVICECOHERENT  */
+  YYSYMBOL_QUEUEFAMILYCOHERENT = 443,      /* QUEUEFAMILYCOHERENT  */
+  YYSYMBOL_WORKGROUPCOHERENT = 444,        /* WORKGROUPCOHERENT  */
+  YYSYMBOL_SUBGROUPCOHERENT = 445,         /* SUBGROUPCOHERENT  */
+  YYSYMBOL_NONPRIVATE = 446,               /* NONPRIVATE  */
+  YYSYMBOL_SHADERCALLCOHERENT = 447,       /* SHADERCALLCOHERENT  */
+  YYSYMBOL_NOPERSPECTIVE = 448,            /* NOPERSPECTIVE  */
+  YYSYMBOL_EXPLICITINTERPAMD = 449,        /* EXPLICITINTERPAMD  */
+  YYSYMBOL_PERVERTEXEXT = 450,             /* PERVERTEXEXT  */
+  YYSYMBOL_PERVERTEXNV = 451,              /* PERVERTEXNV  */
+  YYSYMBOL_PERPRIMITIVENV = 452,           /* PERPRIMITIVENV  */
+  YYSYMBOL_PERVIEWNV = 453,                /* PERVIEWNV  */
+  YYSYMBOL_PERTASKNV = 454,                /* PERTASKNV  */
+  YYSYMBOL_PERPRIMITIVEEXT = 455,          /* PERPRIMITIVEEXT  */
+  YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 456,  /* TASKPAYLOADWORKGROUPEXT  */
+  YYSYMBOL_PRECISE = 457,                  /* PRECISE  */
+  YYSYMBOL_YYACCEPT = 458,                 /* $accept  */
+  YYSYMBOL_variable_identifier = 459,      /* variable_identifier  */
+  YYSYMBOL_primary_expression = 460,       /* primary_expression  */
+  YYSYMBOL_postfix_expression = 461,       /* postfix_expression  */
+  YYSYMBOL_integer_expression = 462,       /* integer_expression  */
+  YYSYMBOL_function_call = 463,            /* function_call  */
+  YYSYMBOL_function_call_or_method = 464,  /* function_call_or_method  */
+  YYSYMBOL_function_call_generic = 465,    /* function_call_generic  */
+  YYSYMBOL_function_call_header_no_parameters = 466, /* function_call_header_no_parameters  */
+  YYSYMBOL_function_call_header_with_parameters = 467, /* function_call_header_with_parameters  */
+  YYSYMBOL_function_call_header = 468,     /* function_call_header  */
+  YYSYMBOL_function_identifier = 469,      /* function_identifier  */
+  YYSYMBOL_unary_expression = 470,         /* unary_expression  */
+  YYSYMBOL_unary_operator = 471,           /* unary_operator  */
+  YYSYMBOL_multiplicative_expression = 472, /* multiplicative_expression  */
+  YYSYMBOL_additive_expression = 473,      /* additive_expression  */
+  YYSYMBOL_shift_expression = 474,         /* shift_expression  */
+  YYSYMBOL_relational_expression = 475,    /* relational_expression  */
+  YYSYMBOL_equality_expression = 476,      /* equality_expression  */
+  YYSYMBOL_and_expression = 477,           /* and_expression  */
+  YYSYMBOL_exclusive_or_expression = 478,  /* exclusive_or_expression  */
+  YYSYMBOL_inclusive_or_expression = 479,  /* inclusive_or_expression  */
+  YYSYMBOL_logical_and_expression = 480,   /* logical_and_expression  */
+  YYSYMBOL_logical_xor_expression = 481,   /* logical_xor_expression  */
+  YYSYMBOL_logical_or_expression = 482,    /* logical_or_expression  */
+  YYSYMBOL_conditional_expression = 483,   /* conditional_expression  */
+  YYSYMBOL_484_1 = 484,                    /* $@1  */
+  YYSYMBOL_assignment_expression = 485,    /* assignment_expression  */
+  YYSYMBOL_assignment_operator = 486,      /* assignment_operator  */
+  YYSYMBOL_expression = 487,               /* expression  */
+  YYSYMBOL_constant_expression = 488,      /* constant_expression  */
+  YYSYMBOL_declaration = 489,              /* declaration  */
+  YYSYMBOL_block_structure = 490,          /* block_structure  */
+  YYSYMBOL_491_2 = 491,                    /* $@2  */
+  YYSYMBOL_identifier_list = 492,          /* identifier_list  */
+  YYSYMBOL_function_prototype = 493,       /* function_prototype  */
+  YYSYMBOL_function_declarator = 494,      /* function_declarator  */
+  YYSYMBOL_function_header_with_parameters = 495, /* function_header_with_parameters  */
+  YYSYMBOL_function_header = 496,          /* function_header  */
+  YYSYMBOL_parameter_declarator = 497,     /* parameter_declarator  */
+  YYSYMBOL_parameter_declaration = 498,    /* parameter_declaration  */
+  YYSYMBOL_parameter_type_specifier = 499, /* parameter_type_specifier  */
+  YYSYMBOL_init_declarator_list = 500,     /* init_declarator_list  */
+  YYSYMBOL_single_declaration = 501,       /* single_declaration  */
+  YYSYMBOL_fully_specified_type = 502,     /* fully_specified_type  */
+  YYSYMBOL_invariant_qualifier = 503,      /* invariant_qualifier  */
+  YYSYMBOL_interpolation_qualifier = 504,  /* interpolation_qualifier  */
+  YYSYMBOL_layout_qualifier = 505,         /* layout_qualifier  */
+  YYSYMBOL_layout_qualifier_id_list = 506, /* layout_qualifier_id_list  */
+  YYSYMBOL_layout_qualifier_id = 507,      /* layout_qualifier_id  */
+  YYSYMBOL_precise_qualifier = 508,        /* precise_qualifier  */
+  YYSYMBOL_type_qualifier = 509,           /* type_qualifier  */
+  YYSYMBOL_single_type_qualifier = 510,    /* single_type_qualifier  */
+  YYSYMBOL_storage_qualifier = 511,        /* storage_qualifier  */
+  YYSYMBOL_non_uniform_qualifier = 512,    /* non_uniform_qualifier  */
+  YYSYMBOL_type_name_list = 513,           /* type_name_list  */
+  YYSYMBOL_type_specifier = 514,           /* type_specifier  */
+  YYSYMBOL_array_specifier = 515,          /* array_specifier  */
+  YYSYMBOL_type_parameter_specifier_opt = 516, /* type_parameter_specifier_opt  */
+  YYSYMBOL_type_parameter_specifier = 517, /* type_parameter_specifier  */
+  YYSYMBOL_type_parameter_specifier_list = 518, /* type_parameter_specifier_list  */
+  YYSYMBOL_type_specifier_nonarray = 519,  /* type_specifier_nonarray  */
+  YYSYMBOL_precision_qualifier = 520,      /* precision_qualifier  */
+  YYSYMBOL_struct_specifier = 521,         /* struct_specifier  */
+  YYSYMBOL_522_3 = 522,                    /* $@3  */
+  YYSYMBOL_523_4 = 523,                    /* $@4  */
+  YYSYMBOL_struct_declaration_list = 524,  /* struct_declaration_list  */
+  YYSYMBOL_struct_declaration = 525,       /* struct_declaration  */
+  YYSYMBOL_struct_declarator_list = 526,   /* struct_declarator_list  */
+  YYSYMBOL_struct_declarator = 527,        /* struct_declarator  */
+  YYSYMBOL_initializer = 528,              /* initializer  */
+  YYSYMBOL_initializer_list = 529,         /* initializer_list  */
+  YYSYMBOL_declaration_statement = 530,    /* declaration_statement  */
+  YYSYMBOL_statement = 531,                /* statement  */
+  YYSYMBOL_simple_statement = 532,         /* simple_statement  */
+  YYSYMBOL_demote_statement = 533,         /* demote_statement  */
+  YYSYMBOL_compound_statement = 534,       /* compound_statement  */
+  YYSYMBOL_535_5 = 535,                    /* $@5  */
+  YYSYMBOL_536_6 = 536,                    /* $@6  */
+  YYSYMBOL_statement_no_new_scope = 537,   /* statement_no_new_scope  */
+  YYSYMBOL_statement_scoped = 538,         /* statement_scoped  */
+  YYSYMBOL_539_7 = 539,                    /* $@7  */
+  YYSYMBOL_540_8 = 540,                    /* $@8  */
+  YYSYMBOL_compound_statement_no_new_scope = 541, /* compound_statement_no_new_scope  */
+  YYSYMBOL_statement_list = 542,           /* statement_list  */
+  YYSYMBOL_expression_statement = 543,     /* expression_statement  */
+  YYSYMBOL_selection_statement = 544,      /* selection_statement  */
+  YYSYMBOL_selection_statement_nonattributed = 545, /* selection_statement_nonattributed  */
+  YYSYMBOL_selection_rest_statement = 546, /* selection_rest_statement  */
+  YYSYMBOL_condition = 547,                /* condition  */
+  YYSYMBOL_switch_statement = 548,         /* switch_statement  */
+  YYSYMBOL_switch_statement_nonattributed = 549, /* switch_statement_nonattributed  */
+  YYSYMBOL_550_9 = 550,                    /* $@9  */
+  YYSYMBOL_switch_statement_list = 551,    /* switch_statement_list  */
+  YYSYMBOL_case_label = 552,               /* case_label  */
+  YYSYMBOL_iteration_statement = 553,      /* iteration_statement  */
+  YYSYMBOL_iteration_statement_nonattributed = 554, /* iteration_statement_nonattributed  */
+  YYSYMBOL_555_10 = 555,                   /* $@10  */
+  YYSYMBOL_556_11 = 556,                   /* $@11  */
+  YYSYMBOL_557_12 = 557,                   /* $@12  */
+  YYSYMBOL_for_init_statement = 558,       /* for_init_statement  */
+  YYSYMBOL_conditionopt = 559,             /* conditionopt  */
+  YYSYMBOL_for_rest_statement = 560,       /* for_rest_statement  */
+  YYSYMBOL_jump_statement = 561,           /* jump_statement  */
+  YYSYMBOL_translation_unit = 562,         /* translation_unit  */
+  YYSYMBOL_external_declaration = 563,     /* external_declaration  */
+  YYSYMBOL_function_definition = 564,      /* function_definition  */
+  YYSYMBOL_565_13 = 565,                   /* $@13  */
+  YYSYMBOL_attribute = 566,                /* attribute  */
+  YYSYMBOL_attribute_list = 567,           /* attribute_list  */
+  YYSYMBOL_single_attribute = 568,         /* single_attribute  */
+  YYSYMBOL_spirv_requirements_list = 569,  /* spirv_requirements_list  */
+  YYSYMBOL_spirv_requirements_parameter = 570, /* spirv_requirements_parameter  */
+  YYSYMBOL_spirv_extension_list = 571,     /* spirv_extension_list  */
+  YYSYMBOL_spirv_capability_list = 572,    /* spirv_capability_list  */
+  YYSYMBOL_spirv_execution_mode_qualifier = 573, /* spirv_execution_mode_qualifier  */
+  YYSYMBOL_spirv_execution_mode_parameter_list = 574, /* spirv_execution_mode_parameter_list  */
+  YYSYMBOL_spirv_execution_mode_parameter = 575, /* spirv_execution_mode_parameter  */
+  YYSYMBOL_spirv_execution_mode_id_parameter_list = 576, /* spirv_execution_mode_id_parameter_list  */
+  YYSYMBOL_spirv_storage_class_qualifier = 577, /* spirv_storage_class_qualifier  */
+  YYSYMBOL_spirv_decorate_qualifier = 578, /* spirv_decorate_qualifier  */
+  YYSYMBOL_spirv_decorate_parameter_list = 579, /* spirv_decorate_parameter_list  */
+  YYSYMBOL_spirv_decorate_parameter = 580, /* spirv_decorate_parameter  */
+  YYSYMBOL_spirv_decorate_id_parameter_list = 581, /* spirv_decorate_id_parameter_list  */
+  YYSYMBOL_spirv_decorate_string_parameter_list = 582, /* spirv_decorate_string_parameter_list  */
+  YYSYMBOL_spirv_type_specifier = 583,     /* spirv_type_specifier  */
+  YYSYMBOL_spirv_type_parameter_list = 584, /* spirv_type_parameter_list  */
+  YYSYMBOL_spirv_type_parameter = 585,     /* spirv_type_parameter  */
+  YYSYMBOL_spirv_instruction_qualifier = 586, /* spirv_instruction_qualifier  */
+  YYSYMBOL_spirv_instruction_qualifier_list = 587, /* spirv_instruction_qualifier_list  */
+  YYSYMBOL_spirv_instruction_qualifier_id = 588 /* spirv_instruction_qualifier_id  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
@@ -733,7 +731,7 @@
 extern int yylex(YYSTYPE*, TParseContext&);
 
 
-#line 737 "MachineIndependent/glslang_tab.cpp"
+#line 735 "MachineIndependent/glslang_tab.cpp"
 
 
 #ifdef short
@@ -1037,21 +1035,21 @@
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  447
+#define YYFINAL  445
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   12557
+#define YYLAST   12503
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  460
+#define YYNTOKENS  458
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  131
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  688
+#define YYNRULES  686
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  934
+#define YYNSTATES  932
 
 /* YYMAXUTOK -- Last valid token kind.  */
-#define YYMAXUTOK   714
+#define YYMAXUTOK   712
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -1136,82 +1134,82 @@
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459
+     455,   456,   457
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
-       0,   393,   393,   399,   402,   407,   410,   413,   417,   421,
-     424,   428,   432,   436,   440,   444,   448,   454,   462,   465,
-     468,   471,   474,   479,   487,   494,   501,   507,   511,   518,
-     521,   527,   534,   544,   552,   557,   585,   594,   600,   604,
-     608,   628,   629,   630,   631,   637,   638,   643,   648,   657,
-     658,   663,   671,   672,   678,   687,   688,   693,   698,   703,
-     711,   712,   721,   733,   734,   743,   744,   753,   754,   763,
-     764,   772,   773,   781,   782,   790,   791,   791,   809,   810,
-     826,   830,   834,   838,   843,   847,   851,   855,   859,   863,
-     867,   874,   877,   888,   895,   901,   908,   914,   919,   926,
-     930,   934,   938,   943,   948,   957,   957,   968,   972,   979,
-     983,   989,   995,  1005,  1008,  1015,  1023,  1043,  1066,  1081,
-    1106,  1117,  1127,  1137,  1147,  1156,  1159,  1163,  1167,  1172,
-    1180,  1187,  1192,  1197,  1202,  1211,  1221,  1248,  1257,  1264,
-    1272,  1279,  1286,  1294,  1302,  1312,  1322,  1329,  1340,  1346,
-    1349,  1356,  1360,  1364,  1373,  1383,  1386,  1397,  1400,  1403,
-    1407,  1411,  1416,  1420,  1423,  1428,  1432,  1437,  1446,  1450,
-    1455,  1461,  1467,  1474,  1479,  1487,  1493,  1505,  1519,  1525,
-    1530,  1538,  1546,  1554,  1562,  1570,  1578,  1586,  1594,  1602,
-    1609,  1616,  1620,  1625,  1630,  1635,  1640,  1645,  1650,  1654,
-    1658,  1662,  1666,  1672,  1678,  1690,  1697,  1700,  1709,  1714,
-    1724,  1729,  1737,  1741,  1751,  1754,  1760,  1766,  1773,  1783,
-    1787,  1791,  1795,  1800,  1804,  1809,  1814,  1819,  1824,  1829,
-    1834,  1839,  1844,  1849,  1855,  1861,  1867,  1872,  1877,  1882,
-    1887,  1892,  1897,  1902,  1907,  1912,  1917,  1922,  1928,  1935,
-    1940,  1945,  1950,  1955,  1960,  1965,  1970,  1975,  1980,  1985,
-    1990,  1998,  2006,  2014,  2020,  2026,  2032,  2038,  2044,  2050,
-    2056,  2062,  2068,  2074,  2080,  2086,  2092,  2098,  2104,  2110,
-    2116,  2122,  2128,  2134,  2140,  2146,  2152,  2158,  2164,  2170,
-    2176,  2182,  2188,  2194,  2200,  2206,  2212,  2220,  2228,  2236,
-    2244,  2252,  2260,  2268,  2276,  2284,  2292,  2300,  2308,  2314,
-    2320,  2326,  2332,  2338,  2344,  2350,  2356,  2362,  2368,  2374,
-    2380,  2386,  2392,  2398,  2404,  2410,  2416,  2422,  2428,  2434,
-    2440,  2446,  2452,  2458,  2464,  2470,  2476,  2482,  2488,  2494,
-    2500,  2506,  2512,  2518,  2524,  2528,  2532,  2536,  2541,  2547,
-    2552,  2557,  2562,  2567,  2572,  2577,  2583,  2588,  2593,  2598,
-    2603,  2608,  2614,  2620,  2626,  2632,  2638,  2644,  2650,  2656,
-    2662,  2668,  2674,  2680,  2686,  2692,  2697,  2702,  2707,  2712,
-    2717,  2722,  2728,  2733,  2738,  2743,  2748,  2753,  2758,  2763,
-    2769,  2774,  2779,  2784,  2789,  2794,  2799,  2804,  2809,  2814,
-    2819,  2824,  2829,  2834,  2839,  2845,  2850,  2855,  2861,  2867,
-    2872,  2877,  2882,  2888,  2893,  2898,  2903,  2909,  2914,  2919,
-    2924,  2930,  2935,  2940,  2945,  2951,  2957,  2963,  2969,  2974,
-    2980,  2986,  2992,  2997,  3002,  3007,  3012,  3017,  3023,  3028,
-    3033,  3038,  3044,  3049,  3054,  3059,  3065,  3070,  3075,  3080,
-    3086,  3091,  3096,  3101,  3107,  3112,  3117,  3122,  3128,  3133,
-    3138,  3143,  3149,  3154,  3159,  3164,  3170,  3175,  3180,  3185,
-    3191,  3196,  3201,  3206,  3212,  3217,  3222,  3227,  3233,  3238,
-    3243,  3248,  3254,  3259,  3264,  3269,  3275,  3280,  3285,  3290,
-    3296,  3301,  3306,  3311,  3317,  3322,  3327,  3332,  3337,  3342,
-    3347,  3352,  3357,  3362,  3367,  3372,  3377,  3382,  3387,  3392,
-    3397,  3402,  3407,  3412,  3417,  3422,  3427,  3432,  3437,  3443,
-    3449,  3455,  3461,  3468,  3475,  3481,  3487,  3493,  3499,  3505,
-    3511,  3517,  3521,  3526,  3531,  3547,  3552,  3557,  3565,  3565,
-    3576,  3576,  3586,  3589,  3602,  3624,  3651,  3655,  3661,  3666,
-    3677,  3681,  3687,  3693,  3704,  3707,  3714,  3718,  3719,  3725,
-    3726,  3727,  3728,  3729,  3730,  3731,  3733,  3739,  3748,  3749,
-    3753,  3749,  3765,  3766,  3770,  3770,  3777,  3777,  3791,  3794,
-    3802,  3810,  3821,  3822,  3826,  3830,  3838,  3845,  3849,  3857,
-    3861,  3874,  3878,  3886,  3886,  3906,  3909,  3915,  3927,  3939,
-    3943,  3951,  3951,  3966,  3966,  3984,  3984,  4005,  4008,  4014,
-    4017,  4023,  4027,  4034,  4039,  4044,  4051,  4054,  4058,  4063,
-    4067,  4077,  4081,  4090,  4093,  4097,  4106,  4106,  4148,  4153,
-    4156,  4161,  4164,  4171,  4174,  4179,  4182,  4187,  4190,  4195,
-    4198,  4203,  4207,  4212,  4216,  4221,  4225,  4232,  4235,  4240,
-    4243,  4246,  4249,  4252,  4257,  4266,  4277,  4282,  4290,  4294,
-    4299,  4303,  4308,  4312,  4317,  4321,  4328,  4331,  4336,  4339,
-    4342,  4345,  4350,  4358,  4368,  4372,  4377,  4381,  4386,  4390,
-    4397,  4400,  4405,  4410,  4413,  4419,  4422,  4427,  4430
+       0,   392,   392,   398,   401,   406,   409,   412,   416,   420,
+     423,   427,   431,   435,   439,   443,   447,   453,   461,   464,
+     467,   470,   473,   478,   486,   493,   500,   506,   510,   517,
+     520,   526,   533,   543,   551,   556,   584,   593,   599,   603,
+     607,   627,   628,   629,   630,   636,   637,   642,   647,   656,
+     657,   662,   670,   671,   677,   686,   687,   692,   697,   702,
+     710,   711,   720,   732,   733,   742,   743,   752,   753,   762,
+     763,   771,   772,   780,   781,   789,   790,   790,   808,   809,
+     825,   829,   833,   837,   842,   846,   850,   854,   858,   862,
+     866,   873,   876,   887,   894,   900,   907,   913,   918,   925,
+     929,   933,   937,   942,   947,   956,   956,   967,   971,   978,
+     982,   988,   994,  1004,  1007,  1014,  1022,  1042,  1065,  1080,
+    1105,  1116,  1126,  1136,  1146,  1155,  1158,  1162,  1166,  1171,
+    1179,  1186,  1191,  1196,  1201,  1210,  1220,  1247,  1256,  1263,
+    1271,  1278,  1285,  1293,  1301,  1311,  1321,  1328,  1339,  1345,
+    1348,  1355,  1359,  1363,  1372,  1382,  1385,  1396,  1399,  1402,
+    1406,  1410,  1415,  1419,  1422,  1427,  1431,  1436,  1445,  1449,
+    1454,  1460,  1466,  1473,  1478,  1486,  1492,  1504,  1518,  1524,
+    1529,  1537,  1545,  1553,  1561,  1569,  1577,  1585,  1593,  1600,
+    1607,  1611,  1616,  1621,  1626,  1631,  1636,  1641,  1645,  1649,
+    1653,  1657,  1663,  1669,  1681,  1688,  1691,  1700,  1705,  1715,
+    1720,  1728,  1732,  1742,  1745,  1751,  1757,  1764,  1774,  1778,
+    1782,  1786,  1791,  1795,  1800,  1805,  1810,  1815,  1820,  1825,
+    1830,  1835,  1840,  1846,  1852,  1858,  1863,  1868,  1873,  1878,
+    1883,  1888,  1893,  1898,  1903,  1908,  1913,  1919,  1926,  1931,
+    1936,  1941,  1946,  1951,  1956,  1961,  1966,  1971,  1976,  1981,
+    1989,  1997,  2005,  2011,  2017,  2023,  2029,  2035,  2041,  2047,
+    2053,  2059,  2065,  2071,  2077,  2083,  2089,  2095,  2101,  2107,
+    2113,  2119,  2125,  2131,  2137,  2143,  2149,  2155,  2161,  2167,
+    2173,  2179,  2185,  2191,  2197,  2203,  2211,  2219,  2227,  2235,
+    2243,  2251,  2259,  2267,  2275,  2283,  2291,  2299,  2305,  2311,
+    2317,  2323,  2329,  2335,  2341,  2347,  2353,  2359,  2365,  2371,
+    2377,  2383,  2389,  2395,  2401,  2407,  2413,  2419,  2425,  2431,
+    2437,  2443,  2449,  2455,  2461,  2467,  2473,  2479,  2485,  2491,
+    2497,  2503,  2509,  2515,  2519,  2523,  2527,  2532,  2538,  2543,
+    2548,  2553,  2558,  2563,  2568,  2574,  2579,  2584,  2589,  2594,
+    2599,  2605,  2611,  2617,  2623,  2629,  2635,  2641,  2647,  2653,
+    2659,  2665,  2671,  2677,  2683,  2688,  2693,  2698,  2703,  2708,
+    2713,  2719,  2724,  2729,  2734,  2739,  2744,  2749,  2754,  2760,
+    2765,  2770,  2775,  2780,  2785,  2790,  2795,  2800,  2805,  2810,
+    2815,  2820,  2825,  2830,  2836,  2841,  2846,  2852,  2858,  2863,
+    2868,  2873,  2879,  2884,  2889,  2894,  2900,  2905,  2910,  2915,
+    2921,  2926,  2931,  2936,  2942,  2948,  2954,  2960,  2965,  2971,
+    2977,  2983,  2988,  2993,  2998,  3003,  3008,  3014,  3019,  3024,
+    3029,  3035,  3040,  3045,  3050,  3056,  3061,  3066,  3071,  3077,
+    3082,  3087,  3092,  3098,  3103,  3108,  3113,  3119,  3124,  3129,
+    3134,  3140,  3145,  3150,  3155,  3161,  3166,  3171,  3176,  3182,
+    3187,  3192,  3197,  3203,  3208,  3213,  3218,  3224,  3229,  3234,
+    3239,  3245,  3250,  3255,  3260,  3266,  3271,  3276,  3281,  3287,
+    3292,  3297,  3302,  3308,  3313,  3318,  3323,  3328,  3333,  3338,
+    3343,  3348,  3353,  3358,  3363,  3368,  3373,  3378,  3383,  3388,
+    3393,  3398,  3403,  3408,  3413,  3418,  3423,  3428,  3434,  3440,
+    3446,  3452,  3459,  3466,  3472,  3478,  3484,  3490,  3496,  3502,
+    3508,  3513,  3518,  3534,  3539,  3544,  3552,  3552,  3563,  3563,
+    3573,  3576,  3589,  3611,  3638,  3642,  3648,  3653,  3664,  3668,
+    3674,  3680,  3691,  3694,  3701,  3705,  3706,  3712,  3713,  3714,
+    3715,  3716,  3717,  3718,  3720,  3726,  3735,  3736,  3740,  3736,
+    3752,  3753,  3757,  3757,  3764,  3764,  3778,  3781,  3789,  3797,
+    3808,  3809,  3813,  3817,  3825,  3832,  3836,  3844,  3848,  3861,
+    3865,  3873,  3873,  3893,  3896,  3902,  3914,  3926,  3930,  3938,
+    3938,  3953,  3953,  3971,  3971,  3992,  3995,  4001,  4004,  4010,
+    4014,  4021,  4026,  4031,  4038,  4041,  4045,  4050,  4054,  4064,
+    4068,  4077,  4080,  4084,  4093,  4093,  4135,  4140,  4143,  4148,
+    4151,  4158,  4161,  4166,  4169,  4174,  4177,  4182,  4185,  4190,
+    4194,  4199,  4203,  4208,  4212,  4219,  4222,  4227,  4230,  4233,
+    4236,  4239,  4244,  4253,  4264,  4269,  4277,  4281,  4286,  4290,
+    4295,  4299,  4304,  4308,  4315,  4318,  4323,  4326,  4329,  4332,
+    4337,  4345,  4355,  4359,  4364,  4368,  4373,  4377,  4384,  4387,
+    4392,  4397,  4400,  4406,  4409,  4414,  4417
 };
 #endif
 
@@ -1256,9 +1254,9 @@
   "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
   "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
   "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
-  "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV", "HITOBJECTNV",
-  "HITOBJECTATTRNV", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
-  "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
+  "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
+  "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
+  "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
   "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
   "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
   "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
@@ -1436,16 +1434,16 @@
      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
      685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
      695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
-     705,   706,   707,   708,   709,   710,   711,   712,   713,   714
+     705,   706,   707,   708,   709,   710,   711,   712
 };
 #endif
 
-#define YYPACT_NINF (-868)
+#define YYPACT_NINF (-813)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-575)
+#define YYTABLE_NINF (-573)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -1454,100 +1452,100 @@
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    4593,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -296,  -250,  -233,
-    -225,  -220,  -203,  -180,  -178,  -868,  -868,  -125,  -868,  -868,
-    -868,  -868,  -868,   -60,  -868,  -868,  -868,  -868,  -868,  -329,
-    -868,  -868,  -868,  -868,  -868,  -868,  -156,  -116,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -331,  -313,  -109,   -94,  7792,  -309,  -868,
-    -106,  -868,  -868,  -868,  -868,  5507,  -868,  -868,  -868,  -868,
-     -98,  -868,  -868,   937,  -868,  -868,  7792,  -124,  -868,  -868,
-    -868,  5964,   -74,  -288,  -234,  -154,  -138,  -137,   -74,  -127,
-     -68, 12163,  -868,   -32,  -345,   -61,  -868,  -307,  -868,   -17,
-     -13,  7792,  -868,  -868,  -868,  7792,   -57,   -38,  -868,  -262,
-    -868,  -223,  -868,  -868, 10858,    -3,  -868,  -868,  -868,     1,
-     -36,  7792,  -868,    -9,    -6,    -2,  -868,  -268,  -868,  -239,
-      -5,     3,     4,     5,  -231,     6,    10,    12,    13,    14,
-      17,  -219,     8,    18,    16,  -291,  -868,    -4,  7792,  -868,
-      19,  -868,  -216,  -868,  -868,  -184,  9118,  -868,  -302,  1394,
-    -868,  -868,  -868,  -868,  -868,    -3,  -260,  -868,  9553,  -258,
-    -868,   -29,  -868,  -218, 10858, 10858,  -868, 10858,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -245,  -868,  -868,
-    -868,    25,  -169, 11293,    27,  -868, 10858,  -868,  -868,  -308,
-      29,   -13,    32,  -868,  -316,   -74,  -868,   -28,  -868,  -303,
-      36,  -126, 10858,  -122,  -868,  -144,  -121, 10858,  -115,    15,
-    -114,   -74,  -868, 11728,  -868,  -108, 10858,    31,   -68,  -868,
-    7792,   -18,  6421,  -868,  7792, 10858,  -868,  -345,  -868,    20,
-    -868,  -868,   -46,  -196,    -1,  -305,  -264,    21,    26,    22,
-      53,    52,  -314,    38,  9988,  -868,    43,  -868,  -868,    49,
-      41,    48,  -868,    66,    68,    62, 10423,    73, 10858,    67,
-      64,    69,    72,    75,  -185,  -868,  -868,   -78,  -868,  -313,
-      76,    77,  -868,  -868,  -868,  -868,  -868,  1851,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  5050,    29,  9553,
-    -249,  8248,  -868,  -868,  9553,  7792,  -868,    42,  -868,  -868,
-    -868,  -168,  -868,  -868, 10858,    47,  -868,  -868, 10858,    85,
-    -868,  -868,  -868, 10858,  -868,  -868,  -868,  -311,  -868,  -868,
-    -167,    78,  -868,  -868,  -868,  -868,  -868,  -868,  -165,  -868,
-    -160,  -868,  -868,  -158,    81,  -868,  -868,  -868,  -868,  -155,
-    -868,  -153,  -868,  -150,    83,  -868,  -148,    84,  -146,    78,
-    -868,  -145,  -868,    91,    93,  -868,  -868,   -18,    -3,   -51,
-    -868,  -868,  -868,  6878,  -868,  -868,  -868, 10858, 10858, 10858,
-   10858, 10858, 10858, 10858, 10858, 10858, 10858, 10858, 10858, 10858,
-   10858, 10858, 10858, 10858, 10858, 10858,  -868,  -868,  -868,    94,
-    -868,  2308,  -868,  -868,  -868,  2308,  -868, 10858,  -868,  -868,
-     -49, 10858,   -25,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868, 10858,
-   10858,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  9553,  -868,
-    -868,   -71,  -868,  7335,  -868,  -868,    95,    89,  -868,  -868,
-    -868,  -868,  -868,  -244,  -213,  -868,  -306,  -868,  -303,  -868,
-    -303,  -868, 10858, 10858,  -868,  -144,  -868,  -144,  -868, 10858,
-   10858,  -868,   100,    15,  -868, 11728,  -868, 10858,  -868,  -868,
-     -47,    29,   -18,  -868,  -868,  -868,  -868,  -868,   -46,   -46,
-    -196,  -196,    -1,    -1,    -1,    -1,  -305,  -305,  -264,    21,
-      26,    22,    53,    52, 10858,  -868,  2308,  4136,    57,  3679,
-    -143,  -868,  -141,  -868,  -868,  -868,  -868,  -868,  8683,  -868,
-    -868,  -868,   103,  -868,    70,  -868,  -136,  -868,  -134,  -868,
-    -133,  -868,  -132,  -868,  -131,  -129,  -868,  -868,  -868,   -23,
-      99,    89,    71,   104,   106,  -868,  -868,  4136,   107,  -868,
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-   10858,  -868,   105,  2765, 10858,  -868,    98,   111,    65,   112,
-    3222,  -868,   113,  -868,  9553,  -868,  -868,  -868,  -120, 10858,
-    2765,   107,  -868,  -868,  2308,  -868,   108,    89,  -868,  -868,
-    2308,   110,  -868,  -868
+    4575,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -300,  -272,  -219,  -123,  -120,
+    -118,  -105,   -87,  -813,  -813,  -317,  -813,  -813,  -813,  -813,
+    -813,   -62,  -813,  -813,  -813,  -813,  -813,  -324,  -813,  -813,
+    -813,  -813,  -813,  -813,   -76,   -64,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -319,  -260,  -133,  -174,  7760,  -191,  -813,  -166,  -813,
+    -813,  -813,  -813,  5485,  -813,  -813,  -813,  -813,   -61,  -813,
+    -813,   935,  -813,  -813,  7760,   -39,  -813,  -813,  -813,  5940,
+     -50,  -335,  -267,  -162,  -152,  -139,   -50,  -137,   -46, 12111,
+    -813,   -29,  -339,   -43,  -813,  -268,  -813,   -27,    -6,  7760,
+    -813,  -813,  -813,  7760,   -37,   -36,  -813,  -298,  -813,  -237,
+    -813,  -813, 10812,    -5,  -813,  -813,  -813,     1,   -33,  7760,
+    -813,    -4,    -2,    -3,  -813,  -236,  -813,  -227,    -1,     3,
+       4,     5,  -225,     6,    10,    12,    13,    14,    17,  -223,
+       8,    18,    16,  -304,  -813,    21,  7760,  -813,    19,  -813,
+    -222,  -813,  -813,  -207,  9080,  -813,  -247,  1390,  -813,  -813,
+    -813,  -813,  -813,    -5,  -270,  -813,  9513,  -250,  -813,   -22,
+    -813,  -132, 10812, 10812,  -813, 10812,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -265,  -813,  -813,  -813,    25,
+    -204, 11245,    27,  -813, 10812,  -813,  -813,  -314,    30,    -6,
+      33,  -813,  -315,   -50,  -813,    15,  -813,  -325,    32,  -130,
+   10812,  -129,  -813,  -146,  -125, 10812,  -124,    39,  -119,   -50,
+    -813, 11678,  -813,  -115, 10812,    36,   -46,  -813,  7760,    20,
+    6395,  -813,  7760, 10812,  -813,  -339,  -813,    29,  -813,  -813,
+     -47,   -83,   -59,  -288,   -18,   -17,    22,    26,    54,    59,
+    -309,    46,  9946,  -813,    37,  -813,  -813,    50,    56,    58,
+    -813,    72,    74,    65, 10379,    76, 10812,    69,    68,    73,
+      75,    77,  -168,  -813,  -813,   -82,  -813,  -260,    79,    82,
+    -813,  -813,  -813,  -813,  -813,  1845,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  5030,    30,  9513,  -241,  8214,
+    -813,  -813,  9513,  7760,  -813,    52,  -813,  -813,  -813,  -202,
+    -813,  -813, 10812,    55,  -813,  -813, 10812,    85,  -813,  -813,
+    -813, 10812,  -813,  -813,  -813,  -310,  -813,  -813,  -197,    81,
+    -813,  -813,  -813,  -813,  -813,  -813,  -195,  -813,  -194,  -813,
+    -813,  -190,    87,  -813,  -813,  -813,  -813,  -169,  -813,  -167,
+    -813,  -165,    89,  -813,  -158,    90,  -157,    81,  -813,  -156,
+    -813,    91,    97,  -813,  -813,    20,    -5,   -77,  -813,  -813,
+    -813,  6850,  -813,  -813,  -813, 10812, 10812, 10812, 10812, 10812,
+   10812, 10812, 10812, 10812, 10812, 10812, 10812, 10812, 10812, 10812,
+   10812, 10812, 10812, 10812,  -813,  -813,  -813,    96,  -813,  2300,
+    -813,  -813,  -813,  2300,  -813, 10812,  -813,  -813,   -49, 10812,
+     -26,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813, 10812, 10812,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  9513,  -813,  -813,   -31,
+    -813,  7305,  -813,  -813,    98,    95,  -813,  -813,  -813,  -813,
+    -813,  -172,  -134,  -813,  -307,  -813,  -325,  -813,  -325,  -813,
+   10812, 10812,  -813,  -146,  -813,  -146,  -813, 10812, 10812,  -813,
+     104,    39,  -813, 11678,  -813, 10812,  -813,  -813,   -48,    30,
+      20,  -813,  -813,  -813,  -813,  -813,   -47,   -47,   -83,   -83,
+     -59,   -59,   -59,   -59,  -288,  -288,   -18,   -17,    22,    26,
+      54,    59, 10812,  -813,  2300,  4120,    60,  3665,  -155,  -813,
+    -154,  -813,  -813,  -813,  -813,  -813,  8647,  -813,  -813,  -813,
+     106,  -813,   -15,  -813,  -147,  -813,  -145,  -813,  -144,  -813,
+    -143,  -813,  -142,  -140,  -813,  -813,  -813,   -24,   101,    95,
+      71,   107,   110,  -813,  -813,  4120,   109,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813, 10812,  -813,
+     102,  2755, 10812,  -813,   105,   113,    70,   112,  3210,  -813,
+     115,  -813,  9513,  -813,  -813,  -813,  -135, 10812,  2755,   109,
+    -813,  -813,  2300,  -813,   111,    95,  -813,  -813,  2300,   117,
+    -813,  -813
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1555,138 +1553,138 @@
      means the default is an error.  */
 static const yytype_int16 yydefact[] =
 {
-       0,   168,   223,   221,   222,   220,   227,   228,   229,   230,
-     231,   232,   233,   234,   235,   224,   225,   226,   236,   237,
-     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
-     349,   350,   351,   352,   353,   354,   355,   375,   376,   377,
-     378,   379,   380,   381,   390,   403,   404,   391,   392,   394,
-     393,   395,   396,   397,   398,   399,   400,   401,   402,   176,
-     177,   249,   250,   248,   251,   258,   259,   256,   257,   254,
-     255,   252,   253,   281,   282,   283,   293,   294,   295,   278,
-     279,   280,   290,   291,   292,   275,   276,   277,   287,   288,
-     289,   272,   273,   274,   284,   285,   286,   260,   261,   262,
-     296,   297,   298,   263,   264,   265,   308,   309,   310,   266,
-     267,   268,   320,   321,   322,   269,   270,   271,   332,   333,
-     334,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     311,   312,   313,   314,   315,   316,   317,   318,   319,   323,
-     324,   325,   326,   327,   328,   329,   330,   331,   335,   336,
-     337,   338,   339,   340,   341,   342,   343,   347,   344,   345,
-     346,   528,   529,   530,   532,   181,   359,   360,   383,   386,
-     348,   357,   358,   374,   356,   405,   406,   409,   410,   411,
-     413,   414,   415,   417,   418,   419,   421,   422,   518,   519,
-     382,   384,   385,   361,   362,   363,   407,   364,   368,   369,
-     372,   412,   416,   420,   365,   366,   370,   371,   408,   367,
-     373,   452,   454,   455,   456,   458,   459,   460,   462,   463,
-     464,   466,   467,   468,   470,   471,   472,   474,   475,   476,
-     478,   479,   480,   482,   483,   484,   486,   487,   488,   490,
-     491,   492,   494,   495,   453,   457,   461,   465,   469,   477,
-     481,   485,   473,   489,   493,   496,   497,   498,   499,   500,
-     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
-     511,   512,   513,   514,   515,   516,   517,   387,   388,   389,
-     423,   432,   434,   428,   433,   435,   436,   438,   439,   440,
-     442,   443,   444,   446,   447,   448,   450,   451,   424,   425,
-     426,   437,   427,   429,   430,   431,   441,   445,   449,   520,
-     521,   524,   525,   526,   527,   522,   523,     0,     0,     0,
-       0,     0,     0,     0,     0,   166,   167,     0,   625,   137,
-     535,   536,   537,     0,   534,   172,   170,   171,   169,     0,
-     219,   173,   174,   175,   139,   138,     0,   202,   183,   185,
-     180,   187,   189,   184,   186,   182,   188,   190,   178,   179,
-     205,   191,   198,   199,   200,   201,   192,   193,   194,   195,
-     196,   197,   140,   141,   143,   142,   144,   146,   147,   145,
-     204,   154,   624,     0,   626,     0,   114,   113,     0,   125,
-     130,   161,   160,   158,   162,     0,   155,   157,   163,   135,
-     215,   159,   533,     0,   621,   623,     0,     0,   164,   165,
-     531,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   540,     0,     0,     0,    99,     0,    94,     0,
-     109,     0,   121,   115,   123,     0,   124,     0,    97,   131,
-     102,     0,   156,   136,     0,   208,   214,     1,   622,     0,
-       0,     0,    96,     0,     0,     0,   633,     0,   685,     0,
+       0,   168,   222,   220,   221,   219,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   223,   224,   225,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     348,   349,   350,   351,   352,   353,   354,   374,   375,   376,
+     377,   378,   379,   380,   389,   402,   403,   390,   391,   393,
+     392,   394,   395,   396,   397,   398,   399,   400,   401,   176,
+     177,   248,   249,   247,   250,   257,   258,   255,   256,   253,
+     254,   251,   252,   280,   281,   282,   292,   293,   294,   277,
+     278,   279,   289,   290,   291,   274,   275,   276,   286,   287,
+     288,   271,   272,   273,   283,   284,   285,   259,   260,   261,
+     295,   296,   297,   262,   263,   264,   307,   308,   309,   265,
+     266,   267,   319,   320,   321,   268,   269,   270,   331,   332,
+     333,   298,   299,   300,   301,   302,   303,   304,   305,   306,
+     310,   311,   312,   313,   314,   315,   316,   317,   318,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   334,   335,
+     336,   337,   338,   339,   340,   341,   342,   346,   343,   344,
+     345,   527,   528,   529,   358,   359,   382,   385,   347,   356,
+     357,   373,   355,   404,   405,   408,   409,   410,   412,   413,
+     414,   416,   417,   418,   420,   421,   517,   518,   381,   383,
+     384,   360,   361,   362,   406,   363,   367,   368,   371,   411,
+     415,   419,   364,   365,   369,   370,   407,   366,   372,   451,
+     453,   454,   455,   457,   458,   459,   461,   462,   463,   465,
+     466,   467,   469,   470,   471,   473,   474,   475,   477,   478,
+     479,   481,   482,   483,   485,   486,   487,   489,   490,   491,
+     493,   494,   452,   456,   460,   464,   468,   476,   480,   484,
+     472,   488,   492,   495,   496,   497,   498,   499,   500,   501,
+     502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
+     512,   513,   514,   515,   516,   386,   387,   388,   422,   431,
+     433,   427,   432,   434,   435,   437,   438,   439,   441,   442,
+     443,   445,   446,   447,   449,   450,   423,   424,   425,   436,
+     426,   428,   429,   430,   440,   444,   448,   519,   520,   523,
+     524,   525,   526,   521,   522,     0,     0,     0,     0,     0,
+       0,     0,     0,   166,   167,     0,   623,   137,   533,   534,
+     535,     0,   532,   172,   170,   171,   169,     0,   218,   173,
+     174,   175,   139,   138,     0,   201,   182,   184,   180,   186,
+     188,   183,   185,   181,   187,   189,   178,   179,   204,   190,
+     197,   198,   199,   200,   191,   192,   193,   194,   195,   196,
+     140,   141,   143,   142,   144,   146,   147,   145,   203,   154,
+     622,     0,   624,     0,   114,   113,     0,   125,   130,   161,
+     160,   158,   162,     0,   155,   157,   163,   135,   214,   159,
+     531,     0,   619,   621,     0,     0,   164,   165,   530,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   631,     0,   629,     0,     0,   538,
-     151,   153,     0,   149,   206,     0,     0,   100,     0,     0,
-     627,   110,   116,   120,   122,   118,   126,   117,     0,   132,
-     105,     0,   103,     0,     0,     0,     9,     0,    43,    42,
-      44,    41,     5,     6,     7,     8,     2,    16,    14,    15,
-      17,    10,    11,    12,    13,     3,    18,    37,    20,    25,
-      26,     0,     0,    30,     0,   217,     0,    36,    34,     0,
-     209,   111,     0,    95,     0,     0,   683,     0,   641,     0,
-       0,     0,     0,     0,   658,     0,     0,     0,     0,     0,
-       0,     0,   678,     0,   656,     0,     0,     0,     0,    98,
-       0,     0,     0,   542,     0,     0,   148,     0,   203,     0,
-     210,    45,    49,    52,    55,    60,    63,    65,    67,    69,
-      71,    73,    75,     0,     0,   101,   569,   578,   582,     0,
-       0,     0,   603,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    45,    78,    91,     0,   556,     0,
-     163,   135,   559,   580,   558,   566,   557,     0,   560,   561,
-     584,   562,   591,   563,   564,   599,   565,     0,   119,     0,
-     127,     0,   550,   134,     0,     0,   107,     0,   104,    38,
-      39,     0,    22,    23,     0,     0,    28,    27,     0,   219,
-      31,    33,    40,     0,   216,   112,   687,     0,   688,   634,
-       0,     0,   686,   653,   649,   650,   651,   652,     0,   647,
-       0,    93,   654,     0,     0,   668,   669,   670,   671,     0,
-     666,     0,   672,     0,     0,   674,     0,     0,     0,     2,
-     682,     0,   680,     0,     0,   628,   630,     0,   548,     0,
-     546,   541,   543,     0,   152,   150,   207,     0,     0,     0,
+     538,     0,     0,     0,    99,     0,    94,     0,   109,     0,
+     121,   115,   123,     0,   124,     0,    97,   131,   102,     0,
+     156,   136,     0,   207,   213,     1,   620,     0,     0,     0,
+      96,     0,     0,     0,   631,     0,   683,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    76,   211,   212,     0,
-     568,     0,   601,   614,   613,     0,   605,     0,   617,   615,
-       0,     0,     0,   598,   618,   619,   620,   567,    81,    82,
-      84,    83,    86,    87,    88,    89,    90,    85,    80,     0,
-       0,   583,   579,   581,   585,   592,   600,   129,     0,   553,
-     554,     0,   133,     0,   108,     4,     0,    24,    21,    32,
-     218,   637,   639,     0,     0,   684,     0,   643,     0,   642,
-       0,   645,     0,     0,   660,     0,   659,     0,   662,     0,
-       0,   664,     0,     0,   679,     0,   676,     0,   657,   632,
-       0,   549,     0,   544,   539,    46,    47,    48,    51,    50,
-      53,    54,    58,    59,    56,    57,    61,    62,    64,    66,
-      68,    70,    72,    74,     0,   213,   570,     0,     0,     0,
-       0,   616,     0,   597,    79,    92,   128,   551,     0,   106,
-      19,   635,     0,   636,     0,   648,     0,   655,     0,   667,
-       0,   673,     0,   675,     0,     0,   681,   545,   547,     0,
-       0,   589,     0,     0,     0,   608,   607,   610,   576,   593,
-     552,   555,   638,   640,   644,   646,   661,   663,   665,   677,
-       0,   571,     0,     0,     0,   609,     0,     0,   588,     0,
-       0,   586,     0,    77,     0,   573,   602,   572,     0,   611,
-       0,   576,   575,   577,   595,   590,     0,   612,   606,   587,
-     596,     0,   604,   594
+       0,     0,   629,     0,   627,     0,     0,   536,   151,   153,
+       0,   149,   205,     0,     0,   100,     0,     0,   625,   110,
+     116,   120,   122,   118,   126,   117,     0,   132,   105,     0,
+     103,     0,     0,     0,     9,     0,    43,    42,    44,    41,
+       5,     6,     7,     8,     2,    16,    14,    15,    17,    10,
+      11,    12,    13,     3,    18,    37,    20,    25,    26,     0,
+       0,    30,     0,   216,     0,    36,    34,     0,   208,   111,
+       0,    95,     0,     0,   681,     0,   639,     0,     0,     0,
+       0,     0,   656,     0,     0,     0,     0,     0,     0,     0,
+     676,     0,   654,     0,     0,     0,     0,    98,     0,     0,
+       0,   540,     0,     0,   148,     0,   202,     0,   209,    45,
+      49,    52,    55,    60,    63,    65,    67,    69,    71,    73,
+      75,     0,     0,   101,   567,   576,   580,     0,     0,     0,
+     601,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    45,    78,    91,     0,   554,     0,   163,   135,
+     557,   578,   556,   564,   555,     0,   558,   559,   582,   560,
+     589,   561,   562,   597,   563,     0,   119,     0,   127,     0,
+     548,   134,     0,     0,   107,     0,   104,    38,    39,     0,
+      22,    23,     0,     0,    28,    27,     0,   218,    31,    33,
+      40,     0,   215,   112,   685,     0,   686,   632,     0,     0,
+     684,   651,   647,   648,   649,   650,     0,   645,     0,    93,
+     652,     0,     0,   666,   667,   668,   669,     0,   664,     0,
+     670,     0,     0,   672,     0,     0,     0,     2,   680,     0,
+     678,     0,     0,   626,   628,     0,   546,     0,   544,   539,
+     541,     0,   152,   150,   206,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    76,   210,   211,     0,   566,     0,
+     599,   612,   611,     0,   603,     0,   615,   613,     0,     0,
+       0,   596,   616,   617,   618,   565,    81,    82,    84,    83,
+      86,    87,    88,    89,    90,    85,    80,     0,     0,   581,
+     577,   579,   583,   590,   598,   129,     0,   551,   552,     0,
+     133,     0,   108,     4,     0,    24,    21,    32,   217,   635,
+     637,     0,     0,   682,     0,   641,     0,   640,     0,   643,
+       0,     0,   658,     0,   657,     0,   660,     0,     0,   662,
+       0,     0,   677,     0,   674,     0,   655,   630,     0,   547,
+       0,   542,   537,    46,    47,    48,    51,    50,    53,    54,
+      58,    59,    56,    57,    61,    62,    64,    66,    68,    70,
+      72,    74,     0,   212,   568,     0,     0,     0,     0,   614,
+       0,   595,    79,    92,   128,   549,     0,   106,    19,   633,
+       0,   634,     0,   646,     0,   653,     0,   665,     0,   671,
+       0,   673,     0,     0,   679,   543,   545,     0,     0,   587,
+       0,     0,     0,   606,   605,   608,   574,   591,   550,   553,
+     636,   638,   642,   644,   659,   661,   663,   675,     0,   569,
+       0,     0,     0,   607,     0,     0,   586,     0,     0,   584,
+       0,    77,     0,   571,   600,   570,     0,   609,     0,   574,
+     573,   575,   593,   588,     0,   610,   604,   585,   594,     0,
+     602,   592
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
-    -868,  -868,  -429,  -868,  -378,  -377,  -471,  -381,  -259,  -261,
-    -257,  -256,  -255,  -263,  -868,  -478,  -868,  -492,  -868,  -503,
-    -535,    11,  -868,  -868,  -868,     7,  -392,  -868,  -868,    39,
-      45,    46,  -868,  -868,  -401,  -868,  -868,  -868,  -868,  -104,
-    -868,  -386,  -374,  -868,     9,  -868,     0,  -426,  -868,  -868,
-    -868,  -868,   147,  -868,  -868,  -868,  -551,  -569,  -224,  -340,
-    -606,  -868,  -365,  -615,  -867,  -868,  -424,  -868,  -868,  -432,
-    -431,  -868,  -868,    63,  -723,  -358,  -868,  -142,  -868,  -394,
-    -868,  -140,  -868,  -868,  -868,  -868,  -135,  -868,  -868,  -868,
-    -868,  -868,  -868,  -868,  -868,    96,  -868,  -868,     2,  -868,
-     -72,  -237,  -436,  -868,  -868,  -868,  -300,  -304,  -299,  -868,
-    -868,  -301,  -298,  -297,  -310,  -868,  -295,  -312,  -868,  -391,
-    -531
+    -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,  -813,
+    -813,  -813,  -429,  -813,  -381,  -380,  -483,  -383,  -262,  -257,
+    -261,  -258,  -255,  -259,  -813,  -479,  -813,  -492,  -813,  -495,
+    -536,    11,  -813,  -813,  -813,     7,  -388,  -813,  -813,    42,
+      49,    47,  -813,  -813,  -401,  -813,  -813,  -813,  -813,   -96,
+    -813,  -384,  -371,  -813,     9,  -813,     0,  -425,  -813,  -813,
+    -813,  -813,   150,  -813,  -813,  -813,  -546,  -553,  -217,  -338,
+    -607,  -813,  -364,  -619,  -812,  -813,  -421,  -813,  -813,  -428,
+    -430,  -813,  -813,    64,  -718,  -355,  -813,  -141,  -813,  -390,
+    -813,  -138,  -813,  -813,  -813,  -813,  -136,  -813,  -813,  -813,
+    -813,  -813,  -813,  -813,  -813,    92,  -813,  -813,     2,  -813,
+     -68,  -275,  -456,  -813,  -813,  -813,  -296,  -293,  -301,  -813,
+    -813,  -299,  -295,  -303,  -302,  -813,  -306,  -311,  -813,  -392,
+    -530
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,   525,   526,   527,   786,   528,   529,   530,   531,   532,
-     533,   534,   614,   536,   582,   583,   584,   585,   586,   587,
-     588,   589,   590,   591,   592,   615,   844,   616,   769,   617,
-     700,   618,   383,   645,   503,   619,   385,   386,   387,   432,
-     433,   434,   388,   389,   390,   391,   392,   393,   482,   483,
-     394,   395,   396,   397,   537,   485,   538,   488,   445,   446,
-     539,   400,   401,   402,   574,   478,   572,   573,   709,   710,
-     643,   781,   622,   623,   624,   625,   626,   741,   880,   916,
-     908,   909,   910,   917,   627,   628,   629,   630,   911,   883,
-     631,   632,   912,   931,   633,   634,   635,   847,   745,   849,
-     887,   906,   907,   636,   403,   404,   405,   429,   637,   475,
-     476,   455,   456,   793,   794,   407,   678,   679,   683,   408,
-     409,   689,   690,   693,   696,   410,   701,   702,   411,   457,
-     458
+      -1,   523,   524,   525,   784,   526,   527,   528,   529,   530,
+     531,   532,   612,   534,   580,   581,   582,   583,   584,   585,
+     586,   587,   588,   589,   590,   613,   842,   614,   767,   615,
+     698,   616,   381,   643,   501,   617,   383,   384,   385,   430,
+     431,   432,   386,   387,   388,   389,   390,   391,   480,   481,
+     392,   393,   394,   395,   535,   483,   536,   486,   443,   444,
+     537,   398,   399,   400,   572,   476,   570,   571,   707,   708,
+     641,   779,   620,   621,   622,   623,   624,   739,   878,   914,
+     906,   907,   908,   915,   625,   626,   627,   628,   909,   881,
+     629,   630,   910,   929,   631,   632,   633,   845,   743,   847,
+     885,   904,   905,   634,   401,   402,   403,   427,   635,   473,
+     474,   453,   454,   791,   792,   405,   676,   677,   681,   406,
+     407,   687,   688,   691,   694,   408,   699,   700,   409,   455,
+     456
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1694,152 +1692,834 @@
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     399,   435,   406,   712,   651,   450,   642,   384,   593,   398,
-     450,   382,   773,   499,   449,   535,   672,   682,   846,   540,
-     451,   442,   692,   713,   735,   451,   422,   471,   724,   725,
-     426,   704,   672,   777,   666,   780,   915,   667,   782,   791,
-     714,   660,   480,   923,   666,   435,   486,   673,   428,   437,
-     663,   594,   438,   915,   487,   412,   427,   581,   423,   595,
-     736,   442,   664,   567,   726,   727,   481,   568,   668,   638,
-     640,   728,   729,   792,   681,   649,   650,   442,   668,   681,
-     674,   675,   676,   677,   546,   681,   652,   653,   681,   497,
-     547,   486,   570,   486,   783,   594,   459,   681,   498,   460,
-     639,   413,   644,   750,   594,   752,   -35,   662,   654,   669,
-     861,   778,   655,   548,   862,   669,   739,   669,   414,   549,
-     669,   554,   669,   581,   669,   669,   415,   555,   581,   669,
-     848,   416,   500,   562,   581,   501,   576,   581,   502,   563,
-     647,   863,   577,   648,   712,   864,   581,   642,   417,   642,
-     462,   787,   642,   460,   670,   758,   759,   760,   761,   762,
-     763,   764,   765,   766,   767,   581,   789,   720,   578,   721,
-     698,   418,   856,   419,   579,   768,   461,   463,   465,   467,
-     469,   470,   473,   657,   785,   795,   570,   797,   570,   658,
-     770,   547,   799,   798,   801,   424,   442,   804,   800,   806,
-     802,   930,   808,   805,   811,   807,   814,   816,   809,   888,
-     812,   889,   815,   817,   712,   770,   894,   770,   895,   896,
-     897,   898,   798,   899,   802,   805,   809,   812,   420,   817,
-     464,   773,   926,   460,   790,   425,   450,   452,   770,   685,
-     686,   687,   688,   430,   850,   449,   466,   468,   852,   460,
-     460,   451,   891,   832,   833,   834,   835,   472,   680,   570,
-     460,   460,   684,   691,   431,   460,   460,   867,   682,   694,
-     697,   444,   460,   460,   871,   692,   703,   854,   855,   460,
-     770,   439,   821,   771,   672,   857,   642,   858,   825,   826,
-     827,   581,   581,   581,   581,   581,   581,   581,   581,   581,
-     581,   581,   581,   581,   581,   581,   581,   822,   925,   770,
-     823,   822,   851,   454,   877,   773,   330,   331,   332,   474,
-     717,   718,   719,   479,   681,   681,   484,   570,   722,   723,
-     495,   681,   681,   770,   853,   770,   900,   681,   489,   681,
-     327,   879,   828,   829,   881,   830,   831,   836,   837,   496,
-     486,   542,   543,   541,   544,   550,   545,   569,   646,   671,
-     564,   551,   552,   553,   556,   695,   642,   566,   557,   708,
-     558,   559,   560,   581,   581,   561,   565,   656,   661,   575,
-     581,   581,   594,   497,   881,   705,   581,   436,   581,   667,
-     733,   734,   737,   732,   730,   443,   398,   570,   731,   740,
-     742,   918,   743,   399,   398,   406,   399,   716,   913,   744,
-     384,   399,   398,   406,   382,   398,   927,   746,   453,   747,
-     398,   477,   642,   748,   751,   754,   753,   -36,   -34,   784,
-     755,   436,   491,   756,   788,   436,   757,   -29,   796,   803,
-     398,   810,   813,   818,   398,   819,   882,   770,   845,   860,
-     873,   443,   884,   892,   893,   901,   903,   904,   902,   919,
-     398,   451,  -574,   920,   921,   914,   933,   596,   924,   932,
-     839,   838,   843,   715,   493,   840,   492,   841,   571,   842,
-     421,   494,   878,   820,   885,   922,   882,   398,   928,   621,
-     929,   886,   490,   905,   865,   774,   706,   775,   620,   448,
-     866,   451,   776,   874,   868,   876,   870,   869,     0,     0,
-       0,     0,     0,   872,     0,     0,     0,     0,     0,     0,
-     875,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   665,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     707,     0,   571,     0,   571,     0,     0,     0,     0,   398,
-       0,   398,     0,   398,     0,     0,     0,     0,     0,     0,
+     397,   433,   404,   448,   640,   591,   771,   382,   448,   396,
+     649,   380,   497,   533,   680,   670,   447,   710,   538,   690,
+     449,   844,   440,   671,   469,   449,   711,   733,   702,   420,
+     775,   670,   778,   664,   418,   780,   665,   712,   789,   658,
+     424,   664,   661,   722,   723,   433,   478,   457,   565,   410,
+     458,   495,   566,   484,   662,   579,   672,   673,   674,   675,
+     496,   421,   440,   734,   650,   651,   425,   666,   636,   638,
+     479,   679,   790,   647,   648,   666,   679,   411,   440,   724,
+     725,   484,   679,   484,   -35,   679,   652,   667,   637,   913,
+     653,   485,   568,   667,   679,   667,   921,   781,   667,   426,
+     667,   592,   667,   667,   592,   660,   913,   667,   642,   748,
+     592,   750,   593,   737,   544,   460,   498,   776,   458,   499,
+     545,   579,   500,   546,   846,   552,   579,   560,   574,   547,
+     412,   553,   579,   561,   575,   579,   459,   461,   463,   465,
+     467,   468,   471,   576,   579,   640,   655,   640,   783,   577,
+     640,   668,   656,   793,   768,   795,   797,   785,   710,   545,
+     799,   796,   798,   579,   787,   435,   800,   696,   436,   854,
+     756,   757,   758,   759,   760,   761,   762,   763,   764,   765,
+     859,   802,   429,   804,   860,   806,   568,   803,   568,   805,
+     766,   807,   809,   812,   814,   886,   887,   440,   810,   813,
+     815,   768,   768,   892,   928,   893,   894,   895,   896,   796,
+     897,   800,   803,   807,   810,   924,   815,   428,   861,   437,
+     462,   768,   862,   458,   645,   771,   413,   646,   710,   414,
+     464,   415,   788,   458,   448,   683,   684,   685,   686,   830,
+     831,   832,   833,   466,   416,   470,   458,   447,   458,   889,
+     848,   449,   678,   682,   850,   458,   458,   689,   692,   568,
+     458,   458,   417,   695,   865,   680,   458,   701,   720,   721,
+     458,   869,   690,   422,   768,   852,   853,   769,   718,   820,
+     719,   819,   821,   670,   640,   423,   823,   824,   825,   579,
+     579,   579,   579,   579,   579,   579,   579,   579,   579,   579,
+     579,   579,   579,   579,   579,   923,   442,   768,   820,   771,
+     849,   875,   328,   329,   330,   726,   727,   715,   716,   717,
+     450,   679,   679,   855,   477,   856,   487,   568,   679,   679,
+     768,   851,   768,   898,   679,   452,   679,   826,   827,   472,
+     828,   829,   482,   834,   835,   325,   484,   877,   493,   494,
+     879,   539,   540,   543,   728,   541,   542,   548,   562,   549,
+     550,   551,   554,   644,   640,   564,   555,   891,   556,   557,
+     558,   579,   579,   559,   563,   654,   659,   573,   579,   579,
+     567,   592,   495,   665,   579,   434,   579,   693,   703,   731,
+     879,   738,   729,   441,   396,   730,   732,   568,   735,   740,
+     669,   397,   396,   404,   397,   706,   911,   916,   382,   397,
+     396,   404,   380,   396,   714,   741,   451,   742,   396,   475,
+     640,   744,   925,   745,   746,   749,   751,   752,   -36,   434,
+     489,   -34,   753,   434,   754,   -29,   755,   782,   396,   794,
+     786,   816,   396,   801,   880,   808,   811,   817,   843,   441,
+     858,   768,   871,   882,   890,   899,   900,   901,   396,   902,
+     912,   449,  -572,   918,   917,   594,   836,   919,   922,   838,
+     930,   931,   837,   839,   841,   491,   569,   840,   490,   713,
+     492,   419,   876,   883,   880,   396,   920,   619,   818,   927,
+     926,   488,   884,   446,   772,   903,   618,   773,   704,   774,
+     866,   449,   864,   863,   874,   870,   868,   873,   867,   872,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   621,     0,     0,
-       0,     0,     0,     0,     0,     0,   620,   399,     0,     0,
-       0,     0,     0,     0,     0,   571,   398,     0,     0,     0,
-       0,     0,     0,     0,   398,     0,     0,     0,     0,     0,
+       0,   663,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   705,     0,
+     569,     0,   569,     0,     0,     0,     0,   396,     0,   396,
+       0,   396,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   619,     0,     0,     0,     0,
+       0,     0,     0,     0,   618,   397,     0,     0,     0,     0,
+       0,     0,     0,   569,   396,     0,     0,     0,     0,     0,
+       0,     0,   396,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   571,     0,     0,     0,     0,     0,     0,
-       0,     0,   398,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   621,     0,     0,     0,   621,     0,     0,     0,     0,
-     620,     0,     0,     0,   620,     0,     0,     0,     0,     0,
+       0,   569,     0,     0,     0,     0,     0,     0,     0,     0,
+     396,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   619,
+       0,     0,     0,   619,     0,     0,     0,     0,   618,     0,
+       0,     0,   618,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   571,     0,     0,     0,     0,     0,     0,
-       0,     0,   398,     0,     0,     0,     0,     0,     0,     0,
+       0,   569,     0,     0,     0,     0,     0,     0,     0,     0,
+     396,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   621,   621,     0,   621,
-       0,   406,     0,     0,     0,   620,   620,     0,   620,     0,
+       0,     0,     0,     0,   619,   619,     0,   619,     0,   404,
+       0,     0,     0,   618,   618,     0,   618,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   621,     0,     0,
-       0,     0,     0,     0,     0,     0,   620,     0,     0,     0,
-       0,     0,     0,   621,     0,     0,     0,     0,     0,     0,
-     621,     0,   620,     0,     0,     0,     0,     0,     0,   620,
-     621,     0,     0,     0,   621,     0,     0,     0,     0,   620,
-     621,     0,     0,   620,     0,     0,     0,   447,     0,   620,
-       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
-     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
-     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
-     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
-     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
-     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
-     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   619,     0,     0,     0,     0,
+       0,     0,     0,     0,   618,     0,     0,     0,     0,     0,
+       0,   619,     0,     0,     0,     0,     0,     0,   619,     0,
+     618,     0,     0,     0,     0,     0,     0,   618,   619,     0,
+       0,     0,   619,     0,     0,     0,     0,   618,   619,     0,
+       0,   618,     0,     0,     0,   445,     0,   618,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   325,     0,     0,     0,
+       0,     0,     0,     0,   326,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,   331,     0,     0,     0,     0,     0,     0,     0,
+       0,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,   502,
+     503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   504,   505,
+       0,   325,     0,   594,   595,     0,     0,     0,     0,   596,
+     506,   507,   508,   509,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,   331,     0,     0,
+       0,   510,   511,   512,   513,   514,   332,   333,   334,   335,
+     336,   337,   338,   597,   598,   599,   600,     0,   601,   602,
+     603,   604,   605,   606,   607,   608,   609,   610,   339,   340,
+     341,   342,   343,   344,   515,   516,   517,   518,   519,   520,
+     521,   522,   345,   611,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,   502,   503,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   504,   505,     0,   325,     0,   594,   770,
+       0,     0,     0,     0,   596,   506,   507,   508,   509,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,   331,     0,     0,     0,   510,   511,   512,   513,
+     514,   332,   333,   334,   335,   336,   337,   338,   597,   598,
+     599,   600,     0,   601,   602,   603,   604,   605,   606,   607,
+     608,   609,   610,   339,   340,   341,   342,   343,   344,   515,
+     516,   517,   518,   519,   520,   521,   522,   345,   611,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,   502,
+     503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   504,   505,
+       0,   325,     0,   594,     0,     0,     0,     0,     0,   596,
+     506,   507,   508,   509,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,   331,     0,     0,
+       0,   510,   511,   512,   513,   514,   332,   333,   334,   335,
+     336,   337,   338,   597,   598,   599,   600,     0,   601,   602,
+     603,   604,   605,   606,   607,   608,   609,   610,   339,   340,
+     341,   342,   343,   344,   515,   516,   517,   518,   519,   520,
+     521,   522,   345,   611,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,   502,   503,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   504,   505,     0,   325,     0,   487,     0,
+       0,     0,     0,     0,   596,   506,   507,   508,   509,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,   331,     0,     0,     0,   510,   511,   512,   513,
+     514,   332,   333,   334,   335,   336,   337,   338,   597,   598,
+     599,   600,     0,   601,   602,   603,   604,   605,   606,   607,
+     608,   609,   610,   339,   340,   341,   342,   343,   344,   515,
+     516,   517,   518,   519,   520,   521,   522,   345,   611,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,   502,
+     503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   504,   505,
+       0,   325,     0,     0,     0,     0,     0,     0,     0,   596,
+     506,   507,   508,   509,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,   331,     0,     0,
+       0,   510,   511,   512,   513,   514,   332,   333,   334,   335,
+     336,   337,   338,   597,   598,   599,   600,     0,   601,   602,
+     603,   604,   605,   606,   607,   608,   609,   610,   339,   340,
+     341,   342,   343,   344,   515,   516,   517,   518,   519,   520,
+     521,   522,   345,   611,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,   502,   503,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   504,   505,     0,   325,     0,     0,     0,
+       0,     0,     0,     0,   596,   506,   507,   508,   509,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,   331,     0,     0,     0,   510,   511,   512,   513,
+     514,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,   515,
+     516,   517,   518,   519,   520,   521,   522,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,   502,
+     503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   504,   505,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     506,   507,   508,   509,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,     0,     0,     0,
+       0,   510,   511,   512,   513,   514,   332,   333,   334,   335,
+     336,   337,   338,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   339,   340,
+     341,   342,   343,   344,   515,   516,   517,   518,   519,   520,
+     521,   522,   345,     0,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   325,     0,     0,     0,
+       0,     0,     0,     0,   326,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,   331,     0,     0,     0,     0,     0,     0,     0,
+       0,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     327,     0,     0,     0,     0,     0,     0,     0,   328,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   329,   330,   331,   332,   333,     0,     0,     0,
-       0,     0,     0,     0,     0,   334,   335,   336,   337,   338,
-     339,   340,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   341,   342,   343,
-     344,   345,   346,     0,     0,     0,     0,     0,     0,     0,
-       0,   347,     0,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,     1,     2,     3,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
+     336,   337,   338,   597,     0,     0,   600,     0,   601,   602,
+       0,     0,   605,     0,     0,     0,     0,     0,   339,   340,
+     341,   342,   343,   344,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,     0,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,     0,     0,     0,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   438,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,     0,     0,     0,     0,     0,     0,     0,     0,
+     439,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   325,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
+     336,   337,   338,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   339,   340,
+     341,   342,   343,   344,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,     0,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,     0,     0,     0,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   709,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   822,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
+     336,   337,   338,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   339,   340,
+     341,   342,   343,   344,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,     0,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     1,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,     0,     0,     0,   318,   319,   320,   321,   322,
+     323,   324,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   857,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   327,   328,
+     329,   330,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   332,   333,   334,   335,   336,   337,   338,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   339,   340,   341,   342,   343,   344,     0,
+       0,     0,     0,     0,     0,     0,     0,   345,     0,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
+     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
+     377,   378,   379,     1,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+     318,   319,   320,   321,   322,   323,   324,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   327,   328,   329,   330,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   332,   333,   334,   335,
+     336,   337,   338,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   339,   340,
+     341,   342,   343,   344,     0,     0,     0,     0,     0,     0,
+       0,     0,   345,     0,   346,   347,   348,   349,   350,   351,
+     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+     372,   373,   374,   375,   376,   377,   378,   379,     2,     3,
        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
+      54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
@@ -1865,27 +2545,371 @@
      284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
      304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
-     324,   325,   326,     0,     0,   504,   505,     0,     0,     0,
+     314,     0,     0,     0,     0,     0,     0,   321,     0,     0,
+       0,     0,     0,   502,   503,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   506,   507,     0,   327,     0,   596,
-     597,     0,     0,     0,     0,   598,   508,   509,   510,   511,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   329,
-     330,   331,   332,   333,     0,     0,     0,   512,   513,   514,
-     515,   516,   334,   335,   336,   337,   338,   339,   340,   599,
-     600,   601,   602,     0,   603,   604,   605,   606,   607,   608,
-     609,   610,   611,   612,   341,   342,   343,   344,   345,   346,
-     517,   518,   519,   520,   521,   522,   523,   524,   347,   613,
-     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
-     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
-     378,   379,   380,   381,     1,     2,     3,     4,     5,     6,
+       0,     0,   504,   505,     0,     0,     0,   639,   777,     0,
+       0,     0,     0,     0,   506,   507,   508,   509,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   510,   511,   512,   513,   514,
+     332,     0,     0,     0,     0,   337,   338,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   515,   516,
+     517,   518,   519,   520,   521,   522,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     358,     2,     3,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,     0,     0,
+      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
+     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
+     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
+     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
+     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
+     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,   313,   314,     0,     0,     0,     0,     0,     0,
+     321,     0,     0,     0,     0,     0,   502,   503,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   504,   505,     0,     0,     0,
+     639,   888,     0,     0,     0,     0,     0,   506,   507,   508,
+     509,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   510,   511,
+     512,   513,   514,   332,     0,     0,     0,     0,   337,   338,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   515,   516,   517,   518,   519,   520,   521,   522,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   358,     2,     3,     4,     5,     6,     7,
+       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,     0,     0,    61,    62,    63,    64,    65,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
+     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
+     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
+     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
+     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
+     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
+     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
+     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
+     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
+     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
+       0,     0,     0,   321,     0,     0,     0,     0,     0,   502,
+     503,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   504,   505,
+       0,     0,   578,     0,     0,     0,     0,     0,     0,     0,
+     506,   507,   508,   509,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   510,   511,   512,   513,   514,   332,     0,     0,     0,
+       0,   337,   338,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   515,   516,   517,   518,   519,   520,
+     521,   522,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   358,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+       0,     0,     0,     0,     0,     0,   321,     0,     0,     0,
+       0,     0,   502,   503,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   504,   505,     0,     0,     0,   639,     0,     0,     0,
+       0,     0,     0,   506,   507,   508,   509,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   510,   511,   512,   513,   514,   332,
+       0,     0,     0,     0,   337,   338,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   515,   516,   517,
+     518,   519,   520,   521,   522,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   358,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
+      52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
+      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
+      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
+     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
+     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
+     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
+     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
+     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
+     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
+     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
+     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
+     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
+     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
+     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
+     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
+     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
+     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,   313,   314,     0,     0,     0,     0,     0,     0,   321,
+       0,     0,     0,     0,     0,   502,   503,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   504,   505,     0,     0,   736,     0,
+       0,     0,     0,     0,     0,     0,   506,   507,   508,   509,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   510,   511,   512,
+     513,   514,   332,     0,     0,     0,     0,   337,   338,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     515,   516,   517,   518,   519,   520,   521,   522,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   358,     2,     3,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+       0,     0,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
+     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
+     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
+     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
+     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
+     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
+     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
+       0,     0,   321,     0,     0,     0,     0,     0,   502,   503,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   504,   505,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   747,   506,
+     507,   508,   509,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     510,   511,   512,   513,   514,   332,     0,     0,     0,     0,
+     337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   515,   516,   517,   518,   519,   520,   521,
+     522,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   358,     2,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,     0,     0,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
+     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
+     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
+     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
+     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
+     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
+     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
+     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
+     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
+       0,     0,     0,     0,     0,   321,     0,     0,     0,     0,
+       0,   502,   503,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     504,   505,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   506,   507,   508,   509,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   510,   511,   512,   513,   514,   332,     0,
+       0,     0,     0,   337,   338,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   515,   516,   517,   518,
+     519,   520,   521,   522,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   358,     2,
+       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,     0,     0,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,     0,     0,     0,     0,     0,     0,   321,     0,
+       0,     0,     0,     0,   502,   503,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   504,   505,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   506,   507,   508,   509,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   510,   511,   512,   513,
+     514,   332,     0,     0,     0,     0,   337,   657,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   515,
+     516,   517,   518,   519,   520,   521,   522,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   358,     2,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
+       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
+       0,   321,     0,     0,     0,     0,     0,   502,   503,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   504,   505,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
+     508,   509,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   510,
+     511,   512,   513,   697,   332,     0,     0,     0,     0,   337,
+     338,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   515,   516,   517,   518,   519,   520,   521,   522,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   358,     2,     3,     4,     5,     6,
        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+      57,    58,     0,     0,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
@@ -1910,22 +2934,159 @@
      277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
      287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
-       0,     0,   504,   505,     0,     0,     0,     0,     0,     0,
+     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
+       0,     0,     0,     0,   321,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   506,   507,     0,   327,     0,   596,   772,     0,     0,
-       0,     0,   598,   508,   509,   510,   511,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   329,   330,   331,   332,
-     333,     0,     0,     0,   512,   513,   514,   515,   516,   334,
-     335,   336,   337,   338,   339,   340,   599,   600,   601,   602,
-       0,   603,   604,   605,   606,   607,   608,   609,   610,   611,
-     612,   341,   342,   343,   344,   345,   346,   517,   518,   519,
-     520,   521,   522,   523,   524,   347,   613,   348,   349,   350,
-     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
-     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
-     381,     1,     2,     3,     4,     5,     6,     7,     8,     9,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   332,     0,     0,
+       0,     0,   337,   338
+};
+
+static const yytype_int16 yycheck[] =
+{
+       0,   385,     0,   404,   496,   484,   625,     0,   409,     0,
+     505,     0,   437,   442,   550,   545,   404,   570,   443,   555,
+     404,   739,   393,   348,   416,   409,   572,   336,   564,   353,
+     637,   561,   639,   348,   351,   642,   351,   573,   348,   531,
+     359,   348,   356,   331,   332,   429,   385,   382,   352,   349,
+     385,   349,   356,   351,   368,   484,   381,   382,   383,   384,
+     358,   385,   433,   372,   329,   330,   385,   382,   493,   494,
+     409,   550,   382,   502,   503,   382,   555,   349,   449,   367,
+     368,   351,   561,   351,   349,   564,   351,   543,   358,   901,
+     355,   359,   476,   549,   573,   551,   908,   643,   554,   359,
+     556,   351,   558,   559,   351,   534,   918,   563,   358,   604,
+     351,   606,   359,   592,   350,   382,   353,   358,   385,   356,
+     356,   550,   359,   350,   743,   350,   555,   350,   350,   356,
+     349,   356,   561,   356,   356,   564,   411,   412,   413,   414,
+     415,   416,   417,   350,   573,   637,   350,   639,   350,   356,
+     642,   543,   356,   350,   356,   350,   350,   652,   711,   356,
+     350,   356,   356,   592,   656,   356,   356,   559,   359,   776,
+     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
+     352,   350,   356,   350,   356,   350,   570,   356,   572,   356,
+     358,   356,   350,   350,   350,   350,   350,   568,   356,   356,
+     356,   356,   356,   350,   922,   350,   350,   350,   350,   356,
+     350,   356,   356,   356,   356,   350,   356,   350,   352,   385,
+     382,   356,   356,   385,   356,   844,   349,   359,   781,   349,
+     382,   349,   661,   385,   635,   381,   382,   383,   384,   722,
+     723,   724,   725,   382,   349,   382,   385,   635,   385,   856,
+     745,   635,   382,   382,   749,   385,   385,   382,   382,   643,
+     385,   385,   349,   382,   800,   801,   385,   382,   327,   328,
+     385,   807,   808,   349,   356,   767,   768,   359,   361,   356,
+     363,   706,   359,   813,   776,   349,   715,   716,   717,   718,
+     719,   720,   721,   722,   723,   724,   725,   726,   727,   728,
+     729,   730,   731,   732,   733,   912,   367,   356,   356,   928,
+     359,   359,   374,   375,   376,   333,   334,   364,   365,   366,
+     359,   800,   801,   354,   353,   356,   353,   711,   807,   808,
+     356,   357,   356,   357,   813,   385,   815,   718,   719,   385,
+     720,   721,   385,   726,   727,   351,   351,   842,   385,   385,
+     845,   350,   385,   356,   371,   359,   358,   358,   350,   356,
+     356,   356,   356,   385,   856,   349,   356,   382,   356,   356,
+     356,   800,   801,   356,   356,   350,   349,   358,   807,   808,
+     359,   351,   349,   351,   813,   385,   815,   348,   352,   335,
+     885,   354,   370,   393,   385,   369,   337,   781,   352,   349,
+     385,   401,   393,   401,   404,   385,   898,   902,   401,   409,
+     401,   409,   401,   404,   385,   359,   409,   359,   409,   419,
+     912,   349,   917,   349,   359,   349,   357,   359,   349,   429,
+     428,   349,   359,   433,   359,   350,   359,   385,   429,   358,
+     385,   350,   433,   356,   845,   356,   356,   350,   352,   449,
+     352,   356,   348,   393,   348,   354,   385,   350,   449,   349,
+     358,   845,   353,   350,   359,   353,   728,   397,   353,   730,
+     359,   354,   729,   731,   733,   433,   476,   732,   429,   575,
+     433,   331,   820,   847,   885,   476,   907,   487,   705,   919,
+     918,   427,   847,   401,   635,   885,   487,   635,   566,   635,
+     801,   885,   798,   796,   815,   808,   805,   813,   803,   811,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   539,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   568,    -1,
+     570,    -1,   572,    -1,    -1,    -1,    -1,   568,    -1,   570,
+      -1,   572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   625,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   625,   635,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   643,   635,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   643,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   739,
+      -1,    -1,    -1,   743,    -1,    -1,    -1,    -1,   739,    -1,
+      -1,    -1,   743,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   781,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     781,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   844,   845,    -1,   847,    -1,   847,
+      -1,    -1,    -1,   844,   845,    -1,   847,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   885,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   885,    -1,    -1,    -1,    -1,    -1,
+      -1,   901,    -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,
+     901,    -1,    -1,    -1,    -1,    -1,    -1,   908,   918,    -1,
+      -1,    -1,   922,    -1,    -1,    -1,    -1,   918,   928,    -1,
+      -1,   922,    -1,    -1,    -1,     0,    -1,   928,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,   377,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
@@ -1957,203 +3118,20 @@
      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
      310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
-     320,   321,   322,   323,   324,   325,   326,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,   327,     0,   596,     0,     0,     0,     0,     0,   598,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   329,   330,   331,   332,   333,     0,     0,
-       0,   512,   513,   514,   515,   516,   334,   335,   336,   337,
-     338,   339,   340,   599,   600,   601,   602,     0,   603,   604,
-     605,   606,   607,   608,   609,   610,   611,   612,   341,   342,
-     343,   344,   345,   346,   517,   518,   519,   520,   521,   522,
-     523,   524,   347,   613,   348,   349,   350,   351,   352,   353,
-     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
-     374,   375,   376,   377,   378,   379,   380,   381,     1,     2,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,     0,     0,   504,   505,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   506,   507,     0,   327,     0,
-     489,     0,     0,     0,     0,     0,   598,   508,   509,   510,
-     511,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     329,   330,   331,   332,   333,     0,     0,     0,   512,   513,
-     514,   515,   516,   334,   335,   336,   337,   338,   339,   340,
-     599,   600,   601,   602,     0,   603,   604,   605,   606,   607,
-     608,   609,   610,   611,   612,   341,   342,   343,   344,   345,
-     346,   517,   518,   519,   520,   521,   522,   523,   524,   347,
-     613,   348,   349,   350,   351,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
-     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
-     377,   378,   379,   380,   381,     1,     2,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
-     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
-     326,     0,     0,   504,   505,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   506,   507,     0,   327,     0,     0,     0,     0,
-       0,     0,     0,   598,   508,   509,   510,   511,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   329,   330,   331,
-     332,   333,     0,     0,     0,   512,   513,   514,   515,   516,
-     334,   335,   336,   337,   338,   339,   340,   599,   600,   601,
-     602,     0,   603,   604,   605,   606,   607,   608,   609,   610,
-     611,   612,   341,   342,   343,   344,   345,   346,   517,   518,
-     519,   520,   521,   522,   523,   524,   347,   613,   348,   349,
-     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
-     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
-     380,   381,     1,     2,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
-     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
-     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
-     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
-     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
-     319,   320,   321,   322,   323,   324,   325,   326,     0,     0,
-     504,   505,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   506,
-     507,     0,   327,     0,     0,     0,     0,     0,     0,     0,
-     598,   508,   509,   510,   511,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   329,   330,   331,   332,   333,     0,
-       0,     0,   512,   513,   514,   515,   516,   334,   335,   336,
-     337,   338,   339,   340,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   341,
-     342,   343,   344,   345,   346,   517,   518,   519,   520,   521,
-     522,   523,   524,   347,     0,   348,   349,   350,   351,   352,
-     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
-     363,   364,   365,   366,   367,   368,   369,   370,   371,   372,
-     373,   374,   375,   376,   377,   378,   379,   380,   381,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,     0,     0,     0,   320,   321,
-     322,   323,   324,   325,   326,     0,     0,   504,   505,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   506,   507,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   508,   509,
-     510,   511,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   329,   330,   331,   332,     0,     0,     0,     0,   512,
-     513,   514,   515,   516,   334,   335,   336,   337,   338,   339,
-     340,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   341,   342,   343,   344,
-     345,   346,   517,   518,   519,   520,   521,   522,   523,   524,
-     347,     0,   348,   349,   350,   351,   352,   353,   354,   355,
-     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
-     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
-     376,   377,   378,   379,   380,   381,     1,     2,     3,     4,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,   329,
+     330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
+      -1,   351,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,
+     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,   377,    -1,    -1,
+      -1,   381,   382,   383,   384,   385,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,    -1,   398,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
+     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
@@ -2186,1280 +3164,20 @@
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   327,     0,     0,     0,
-       0,     0,     0,     0,   328,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   329,   330,
-     331,   332,   333,     0,     0,     0,     0,     0,     0,     0,
-       0,   334,   335,   336,   337,   338,   339,   340,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   341,   342,   343,   344,   345,   346,     0,
-       0,     0,     0,     0,     0,     0,     0,   347,     0,   348,
-     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
-     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
-     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
-     379,   380,   381,     1,     2,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
-     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
-     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
-     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
-     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
-     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
-     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
-     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   315,   316,     0,
-       0,     0,   320,   321,   322,   323,   324,   325,   326,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   329,   330,   331,   332,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   334,   335,
-     336,   337,   338,   339,   340,   599,     0,     0,   602,     0,
-     603,   604,     0,     0,   607,     0,     0,     0,     0,     0,
-     341,   342,   343,   344,   345,   346,     0,     0,     0,     0,
-       0,     0,     0,     0,   347,     0,   348,   349,   350,   351,
-     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
-     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
-     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
-       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
-     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
-     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
-     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
-     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
-     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,   315,   316,     0,     0,     0,   320,
-     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   440,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   329,   330,   331,   332,     0,     0,     0,     0,
-       0,     0,     0,     0,   441,   334,   335,   336,   337,   338,
-     339,   340,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   341,   342,   343,
-     344,   345,   346,     0,     0,     0,     0,     0,     0,     0,
-       0,   347,     0,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,     1,     2,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
-     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
-     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
-     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
-     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
-     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
-     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
-     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,   315,   316,     0,     0,     0,   320,   321,   322,   323,
-     324,   325,   326,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   327,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   329,
-     330,   331,   332,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   334,   335,   336,   337,   338,   339,   340,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   341,   342,   343,   344,   345,   346,
-       0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
-     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
-     358,   359,   360,   361,   362,   363,   364,   365,   366,   367,
-     368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
-     378,   379,   380,   381,     1,     2,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-       0,     0,     0,   320,   321,   322,   323,   324,   325,   326,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   711,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   329,   330,   331,   332,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   334,
-     335,   336,   337,   338,   339,   340,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   341,   342,   343,   344,   345,   346,     0,     0,     0,
-       0,     0,     0,     0,     0,   347,     0,   348,   349,   350,
-     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
-     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,
-     381,     1,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-     320,   321,   322,   323,   324,   325,   326,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   824,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   329,   330,   331,   332,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   334,   335,   336,   337,
-     338,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   341,   342,
-     343,   344,   345,   346,     0,     0,     0,     0,     0,     0,
-       0,     0,   347,     0,   348,   349,   350,   351,   352,   353,
-     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
-     374,   375,   376,   377,   378,   379,   380,   381,     1,     2,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   315,   316,     0,     0,     0,   320,   321,   322,
-     323,   324,   325,   326,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   859,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     329,   330,   331,   332,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   334,   335,   336,   337,   338,   339,   340,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   341,   342,   343,   344,   345,
-     346,     0,     0,     0,     0,     0,     0,     0,     0,   347,
-       0,   348,   349,   350,   351,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
-     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
-     377,   378,   379,   380,   381,     1,     2,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
-     316,     0,     0,     0,   320,   321,   322,   323,   324,   325,
-     326,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   329,   330,   331,
-     332,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     334,   335,   336,   337,   338,   339,   340,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   341,   342,   343,   344,   345,   346,     0,     0,
-       0,     0,     0,     0,     0,     0,   347,     0,   348,   349,
-     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
-     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
-     380,   381,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
-       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,     0,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-       0,     0,     0,   323,     0,     0,     0,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,     0,     0,   641,   779,     0,     0,     0,     0,     0,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,   516,   334,     0,     0,     0,
-       0,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   517,   518,   519,   520,   521,   522,
-     523,   524,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   360,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-       0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,     0,     0,     0,     0,     0,     0,   323,     0,
-       0,     0,     0,     0,   504,   505,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   506,   507,     0,     0,     0,   641,   890,
-       0,     0,     0,     0,     0,   508,   509,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   512,   513,   514,   515,
-     516,   334,     0,     0,     0,     0,   339,   340,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   517,
-     518,   519,   520,   521,   522,   523,   524,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   360,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
-       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,     0,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-       0,     0,     0,   323,     0,     0,     0,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,   516,   334,     0,     0,     0,
-       0,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   517,   518,   519,   520,   521,   522,
-     523,   524,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   360,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-       0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,     0,     0,     0,     0,     0,     0,   323,     0,
-       0,     0,     0,     0,   504,   505,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   506,   507,     0,     0,     0,   641,     0,
-       0,     0,     0,     0,     0,   508,   509,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   512,   513,   514,   515,
-     516,   334,     0,     0,     0,     0,   339,   340,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   517,
-     518,   519,   520,   521,   522,   523,   524,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   360,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
-       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,     0,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-       0,     0,     0,   323,     0,     0,     0,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,     0,   738,     0,     0,     0,     0,     0,     0,     0,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,   516,   334,     0,     0,     0,
-       0,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   517,   518,   519,   520,   521,   522,
-     523,   524,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   360,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-       0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,     0,     0,     0,     0,     0,     0,   323,     0,
-       0,     0,     0,     0,   504,   505,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   506,   507,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   749,   508,   509,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   512,   513,   514,   515,
-     516,   334,     0,     0,     0,     0,   339,   340,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   517,
-     518,   519,   520,   521,   522,   523,   524,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   360,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
-       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,     0,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-       0,     0,     0,   323,     0,     0,     0,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,   516,   334,     0,     0,     0,
-       0,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   517,   518,   519,   520,   521,   522,
-     523,   524,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   360,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-       0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,     0,     0,     0,     0,     0,     0,   323,     0,
-       0,     0,     0,     0,   504,   505,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   506,   507,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   508,   509,   510,   511,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   512,   513,   514,   515,
-     516,   334,     0,     0,     0,     0,   339,   659,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   517,
-     518,   519,   520,   521,   522,   523,   524,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   360,     2,     3,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
-      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
-       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
-      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
-      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
-     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
-     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
-     160,   161,   162,   163,   164,     0,   166,   167,   168,   169,
-     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
-     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
-     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
-     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
-     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
-     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
-     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
-     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,     0,     0,     0,
-       0,     0,     0,   323,     0,     0,     0,     0,     0,   504,
-     505,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   506,   507,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     508,   509,   510,   511,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   512,   513,   514,   515,   699,   334,     0,     0,     0,
-       0,   339,   340,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   517,   518,   519,   520,   521,   522,
-     523,   524,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   360,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-       0,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,     0,     0,     0,     0,     0,     0,   323,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   334,     0,     0,     0,     0,   339,   340
-};
-
-static const yytype_int16 yycheck[] =
-{
-       0,   387,     0,   572,   507,   406,   498,     0,   486,     0,
-     411,     0,   627,   439,   406,   444,   547,   552,   741,   445,
-     406,   395,   557,   574,   338,   411,   355,   418,   333,   334,
-     361,   566,   563,   639,   350,   641,   903,   353,   644,   350,
-     575,   533,   387,   910,   350,   431,   353,   350,   361,   358,
-     358,   353,   361,   920,   361,   351,   387,   486,   387,   361,
-     374,   435,   370,   354,   369,   370,   411,   358,   384,   495,
-     496,   335,   336,   384,   552,   504,   505,   451,   384,   557,
-     383,   384,   385,   386,   352,   563,   331,   332,   566,   351,
-     358,   353,   478,   353,   645,   353,   384,   575,   360,   387,
-     360,   351,   360,   606,   353,   608,   351,   536,   353,   545,
-     354,   360,   357,   352,   358,   551,   594,   553,   351,   358,
-     556,   352,   558,   552,   560,   561,   351,   358,   557,   565,
-     745,   351,   355,   352,   563,   358,   352,   566,   361,   358,
-     358,   354,   358,   361,   713,   358,   575,   639,   351,   641,
-     384,   654,   644,   387,   545,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   594,   658,   363,   352,   365,
-     561,   351,   778,   351,   358,   360,   413,   414,   415,   416,
-     417,   418,   419,   352,   352,   352,   572,   352,   574,   358,
-     358,   358,   352,   358,   352,   351,   570,   352,   358,   352,
-     358,   924,   352,   358,   352,   358,   352,   352,   358,   352,
-     358,   352,   358,   358,   783,   358,   352,   358,   352,   352,
-     352,   352,   358,   352,   358,   358,   358,   358,   353,   358,
-     384,   846,   352,   387,   663,   351,   637,   361,   358,   383,
-     384,   385,   386,   352,   747,   637,   384,   384,   751,   387,
-     387,   637,   858,   724,   725,   726,   727,   384,   384,   645,
-     387,   387,   384,   384,   358,   387,   387,   802,   803,   384,
-     384,   369,   387,   387,   809,   810,   384,   769,   770,   387,
-     358,   387,   708,   361,   815,   356,   778,   358,   717,   718,
-     719,   720,   721,   722,   723,   724,   725,   726,   727,   728,
-     729,   730,   731,   732,   733,   734,   735,   358,   914,   358,
-     361,   358,   361,   387,   361,   930,   376,   377,   378,   387,
-     366,   367,   368,   355,   802,   803,   387,   713,   329,   330,
-     387,   809,   810,   358,   359,   358,   359,   815,   355,   817,
-     353,   844,   720,   721,   847,   722,   723,   728,   729,   387,
-     353,   387,   361,   352,   360,   360,   358,   361,   387,   387,
-     352,   358,   358,   358,   358,   350,   858,   351,   358,   387,
-     358,   358,   358,   802,   803,   358,   358,   352,   351,   360,
-     809,   810,   353,   351,   887,   354,   815,   387,   817,   353,
-     337,   339,   354,   371,   373,   395,   387,   783,   372,   356,
-     351,   904,   361,   403,   395,   403,   406,   387,   900,   361,
-     403,   411,   403,   411,   403,   406,   919,   351,   411,   351,
-     411,   421,   914,   361,   351,   361,   359,   351,   351,   387,
-     361,   431,   430,   361,   387,   435,   361,   352,   360,   358,
-     431,   358,   358,   352,   435,   352,   847,   358,   354,   354,
-     350,   451,   395,   350,   384,   356,   352,   351,   387,   361,
-     451,   847,   355,   352,   399,   360,   356,   355,   355,   361,
-     731,   730,   735,   577,   435,   732,   431,   733,   478,   734,
-     333,   435,   822,   707,   849,   909,   887,   478,   920,   489,
-     921,   849,   429,   887,   798,   637,   568,   637,   489,   403,
-     800,   887,   637,   813,   803,   817,   807,   805,    -1,    -1,
-      -1,    -1,    -1,   810,    -1,    -1,    -1,    -1,    -1,    -1,
-     815,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     325,   326,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   541,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     570,    -1,   572,    -1,   574,    -1,    -1,    -1,    -1,   570,
-      -1,   572,    -1,   574,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   627,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   627,   637,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   645,   637,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   645,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   741,    -1,    -1,    -1,   745,    -1,    -1,    -1,    -1,
-     741,    -1,    -1,    -1,   745,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   783,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   846,   847,    -1,   849,
-      -1,   849,    -1,    -1,    -1,   846,   847,    -1,   849,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   887,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   887,    -1,    -1,    -1,
-      -1,    -1,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,
-     910,    -1,   903,    -1,    -1,    -1,    -1,    -1,    -1,   910,
-     920,    -1,    -1,    -1,   924,    -1,    -1,    -1,    -1,   920,
-     930,    -1,    -1,   924,    -1,    -1,    -1,     0,    -1,   930,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   328,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   361,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   375,   376,   377,   378,   379,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   388,   389,   390,   391,   392,
-     393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,   412,
-     413,   414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   424,    -1,   426,   427,   428,   429,   430,   431,   432,
-     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
-     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
-     453,   454,   455,   456,   457,   458,   459,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
-     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
-     326,   327,   328,    -1,    -1,   331,   332,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   350,   351,    -1,   353,    -1,   355,
-     356,    -1,    -1,    -1,    -1,   361,   362,   363,   364,   365,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,
-     376,   377,   378,   379,    -1,    -1,    -1,   383,   384,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,   398,    -1,   400,   401,   402,   403,   404,   405,
-     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
-     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
-     426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
-     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
-     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
-     456,   457,   458,   459,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
-     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
-     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
-     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
-     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
-     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
-      -1,    -1,   331,   332,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   350,   351,    -1,   353,    -1,   355,   356,    -1,    -1,
-      -1,    -1,   361,   362,   363,   364,   365,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   375,   376,   377,   378,
-     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,   388,
-     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
-      -1,   400,   401,   402,   403,   404,   405,   406,   407,   408,
-     409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
-     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
-     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
-     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
-     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
-     459,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
-     322,   323,   324,   325,   326,   327,   328,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,   353,    -1,   355,    -1,    -1,    -1,    -1,    -1,   361,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   375,   376,   377,   378,   379,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,   397,   398,    -1,   400,   401,
-     402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
-     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
-     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
-     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
-     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
-     452,   453,   454,   455,   456,   457,   458,   459,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
-     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
-     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
-     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
-     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
-     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,    -1,    -1,   331,   332,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   350,   351,    -1,   353,    -1,
-     355,    -1,    -1,    -1,    -1,    -1,   361,   362,   363,   364,
-     365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     375,   376,   377,   378,   379,    -1,    -1,    -1,   383,   384,
+      -1,    -1,    -1,   348,   349,    -1,   351,    -1,   353,   354,
+      -1,    -1,    -1,    -1,   359,   360,   361,   362,   363,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,   377,    -1,    -1,    -1,   381,   382,   383,   384,
      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,    -1,   400,   401,   402,   403,   404,
+     395,   396,    -1,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
-      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
-      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
-      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
-      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
-     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
-     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
-     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
-     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
-     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
-     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
-     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
-     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
-     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
-     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
-     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
-     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
-     328,    -1,    -1,   331,   332,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   350,   351,    -1,   353,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   361,   362,   363,   364,   365,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,   376,   377,
-     378,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-     398,    -1,   400,   401,   402,   403,   404,   405,   406,   407,
-     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
-     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
-     428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
-     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
-     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
-     458,   459,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
-     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
-     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
-     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
-     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
-     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
-     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
-     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
-     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
-     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
-     321,   322,   323,   324,   325,   326,   327,   328,    -1,    -1,
-     331,   332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,
-     351,    -1,   353,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     361,   362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   375,   376,   377,   378,   379,    -1,
-      -1,    -1,   383,   384,   385,   386,   387,   388,   389,   390,
-     391,   392,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,
-     411,   412,   413,   414,   415,   416,   417,   418,   419,   420,
-     421,   422,   423,   424,    -1,   426,   427,   428,   429,   430,
-     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
-     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
-     451,   452,   453,   454,   455,   456,   457,   458,   459,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
-     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
-     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
-     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
-     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
-     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
-     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
-     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
-     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
-     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
-     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
-     324,   325,   326,   327,   328,    -1,    -1,   331,   332,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   350,   351,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   362,   363,
-     364,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   375,   376,   377,   378,    -1,    -1,    -1,    -1,   383,
-     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   410,   411,   412,   413,
-     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
-     424,    -1,   426,   427,   428,   429,   430,   431,   432,   433,
-     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
-     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
-     454,   455,   456,   457,   458,   459,     3,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
-     327,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   353,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,   376,
-     377,   378,   379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   388,   389,   390,   391,   392,   393,   394,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   410,   411,   412,   413,   414,   415,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,   426,
-     427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
-     437,   438,   439,   440,   441,   442,   443,   444,   445,   446,
-     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
-     457,   458,   459,     3,     4,     5,     6,     7,     8,     9,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
@@ -3490,204 +3208,21 @@
      280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
      290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
      300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   315,   316,   317,   318,    -1,
-      -1,    -1,   322,   323,   324,   325,   326,   327,   328,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   375,   376,   377,   378,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,   389,
-     390,   391,   392,   393,   394,   395,    -1,    -1,   398,    -1,
-     400,   401,    -1,    -1,   404,    -1,    -1,    -1,    -1,    -1,
-     410,   411,   412,   413,   414,   415,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   424,    -1,   426,   427,   428,   429,
+     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,   329,
+     330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
+      -1,   351,    -1,   353,    -1,    -1,    -1,    -1,    -1,   359,
+     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,   377,    -1,    -1,
+      -1,   381,   382,   383,   384,   385,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,    -1,   398,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
+     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
      430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
      440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
-     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
-      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
-     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
-     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
-     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
-     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
-     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
-     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   315,   316,   317,   318,    -1,    -1,    -1,   322,
-     323,   324,   325,   326,   327,   328,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   361,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   375,   376,   377,   378,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   387,   388,   389,   390,   391,   392,
-     393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,   412,
-     413,   414,   415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   424,    -1,   426,   427,   428,   429,   430,   431,   432,
-     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
-     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
-     453,   454,   455,   456,   457,   458,   459,     3,     4,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
-     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
-     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
-     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
-     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
-     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
-     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,   325,
-     326,   327,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   353,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,
-     376,   377,   378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   388,   389,   390,   391,   392,   393,   394,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   410,   411,   412,   413,   414,   415,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,
-     426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
-     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
-     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
-     456,   457,   458,   459,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
-      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
-     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
-     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
-     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
-     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
-     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
-     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
-     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
-     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
-      -1,    -1,    -1,   322,   323,   324,   325,   326,   327,   328,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   375,   376,   377,   378,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   388,
-     389,   390,   391,   392,   393,   394,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   410,   411,   412,   413,   414,   415,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   424,    -1,   426,   427,   428,
-     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
-     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
-     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
-     459,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-     322,   323,   324,   325,   326,   327,   328,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   375,   376,   377,   378,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   388,   389,   390,   391,
-     392,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   410,   411,
-     412,   413,   414,   415,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   424,    -1,   426,   427,   428,   429,   430,   431,
-     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
-     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
-     452,   453,   454,   455,   456,   457,   458,   459,     3,     4,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
@@ -3719,27 +3254,787 @@
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,    -1,    -1,    -1,   322,   323,   324,
-     325,   326,   327,   328,    -1,    -1,    -1,    -1,    -1,    -1,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   356,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     375,   376,   377,   378,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   388,   389,   390,   391,   392,   393,   394,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   410,   411,   412,   413,   414,
-     415,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   424,
-      -1,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+      -1,    -1,    -1,   348,   349,    -1,   351,    -1,   353,    -1,
+      -1,    -1,    -1,    -1,   359,   360,   361,   362,   363,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,   377,    -1,    -1,    -1,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,    -1,   398,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
+     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459,     3,     4,     5,     6,     7,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,   329,
+     330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
+      -1,   351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,
+     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,   377,    -1,    -1,
+      -1,   381,   382,   383,   384,   385,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,    -1,   398,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
+     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   348,   349,    -1,   351,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   359,   360,   361,   362,   363,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,   377,    -1,    -1,    -1,   381,   382,   383,   384,
+     385,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,   414,
+     415,   416,   417,   418,   419,   420,   421,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,   329,
+     330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,
+      -1,   381,   382,   383,   384,   385,   386,   387,   388,   389,
+     390,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,
+     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
+     420,   421,   422,    -1,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   351,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,   377,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,    -1,    -1,   396,    -1,   398,   399,
+      -1,    -1,   402,    -1,    -1,    -1,    -1,    -1,   408,   409,
+     410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   422,    -1,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,    -1,    -1,    -1,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   359,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     385,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
+     390,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,
+     410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   422,    -1,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,    -1,    -1,    -1,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   354,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
+     390,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,
+     410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   422,    -1,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,    -1,    -1,    -1,   320,   321,   322,   323,   324,
+     325,   326,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   354,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,   374,
+     375,   376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   386,   387,   388,   389,   390,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   408,   409,   410,   411,   412,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,   424,
+     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
+     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
+     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,     3,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+     320,   321,   322,   323,   324,   325,   326,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   373,   374,   375,   376,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   386,   387,   388,   389,
+     390,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   408,   409,
+     410,   411,   412,   413,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   422,    -1,   424,   425,   426,   427,   428,   429,
+     430,   431,   432,   433,   434,   435,   436,   437,   438,   439,
+     440,   441,   442,   443,   444,   445,   446,   447,   448,   449,
+     450,   451,   452,   453,   454,   455,   456,   457,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
+     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
+     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
+     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
+     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
+     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
+     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
+     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
+     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
+     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
+     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
+     316,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,
+      -1,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
+      -1,    -1,    -1,    -1,   360,   361,   362,   363,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,
+     386,    -1,    -1,    -1,    -1,   391,   392,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,
+     416,   417,   418,   419,   420,   421,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     436,     4,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+      53,    54,    55,    56,    57,    58,    59,    60,    -1,    -1,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
+     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
+     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
+     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
+     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
+     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
+     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,    -1,
+     323,    -1,    -1,    -1,    -1,    -1,   329,   330,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,    -1,
+     353,   354,    -1,    -1,    -1,    -1,    -1,   360,   361,   362,
+     363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,
+     383,   384,   385,   386,    -1,    -1,    -1,    -1,   391,   392,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   414,   415,   416,   417,   418,   419,   420,   421,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   436,     4,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
+      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
+      60,    -1,    -1,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
+      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
+     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
+     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
+     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
+     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
+     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   313,   314,   315,   316,    -1,    -1,    -1,
+      -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,   329,
+     330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
+      -1,    -1,   352,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     360,   361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   381,   382,   383,   384,   385,   386,    -1,    -1,    -1,
+      -1,   391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   414,   415,   416,   417,   418,   419,
+     420,   421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   436,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
+      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
+     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
+     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
+     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
+     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
+     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
+     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
+     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
+     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
+     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
+     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
+     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
+      -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,
+      -1,    -1,   329,   330,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   348,   349,    -1,    -1,    -1,   353,    -1,    -1,    -1,
+      -1,    -1,    -1,   360,   361,   362,   363,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   381,   382,   383,   384,   385,   386,
+      -1,    -1,    -1,    -1,   391,   392,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,
+     417,   418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,
+       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
+      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
+      54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
+      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
+     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
+     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
+     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
+     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
+     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
+     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
+     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
+     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
+     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
+     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
+     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
+     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
+     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
+     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
+     314,   315,   316,    -1,    -1,    -1,    -1,    -1,    -1,   323,
+      -1,    -1,    -1,    -1,    -1,   329,   330,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   348,   349,    -1,    -1,   352,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   360,   361,   362,   363,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,
+     384,   385,   386,    -1,    -1,    -1,    -1,   391,   392,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     414,   415,   416,   417,   418,   419,   420,   421,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   436,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      -1,    -1,    63,    64,    65,    66,    67,    68,    69,    70,
+      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
+      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
+     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
+     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
+     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
+     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
+     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
+     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,
+      -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,   329,   330,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,   360,
+     361,   362,   363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     381,   382,   383,   384,   385,   386,    -1,    -1,    -1,    -1,
+     391,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   414,   415,   416,   417,   418,   419,   420,
+     421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   436,     4,     5,     6,     7,
        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
       38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
+      58,    59,    60,    -1,    -1,    63,    64,    65,    66,    67,
       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
@@ -3764,22 +4059,63 @@
      278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
      288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
      298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
-     318,    -1,    -1,    -1,   322,   323,   324,   325,   326,   327,
-     328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     308,   309,   310,   311,   312,   313,   314,   315,   316,    -1,
+      -1,    -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,
+      -1,   329,   330,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     348,   349,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   360,   361,   362,   363,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   381,   382,   383,   384,   385,   386,    -1,
+      -1,    -1,    -1,   391,   392,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   375,   376,   377,
-     378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     388,   389,   390,   391,   392,   393,   394,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   414,   415,   416,   417,
+     418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   436,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    -1,    -1,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
+     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
+     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,    -1,    -1,    -1,    -1,    -1,    -1,   323,    -1,
+      -1,    -1,    -1,    -1,   329,   330,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   410,   411,   412,   413,   414,   415,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   424,    -1,   426,   427,
-     428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
-     438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
-     448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
-     458,   459,     4,     5,     6,     7,     8,     9,    10,    11,
+      -1,    -1,    -1,   348,   349,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   360,   361,   362,   363,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   381,   382,   383,   384,
+     385,   386,    -1,    -1,    -1,    -1,   391,   392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   414,
+     415,   416,   417,   418,   419,   420,   421,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   436,     4,     5,     6,     7,     8,     9,    10,    11,
       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
       22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
       32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
@@ -3795,7 +4131,7 @@
      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
      142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,    -1,   168,   169,   170,   171,
+     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
@@ -3810,406 +4146,58 @@
      282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,    -1,    -1,   355,   356,    -1,    -1,    -1,    -1,    -1,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
+     312,   313,   314,   315,   316,    -1,    -1,    -1,    -1,    -1,
+      -1,   323,    -1,    -1,    -1,    -1,    -1,   329,   330,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,    -1,    -1,    -1,
-      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,   361,
+     362,   363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   381,
+     382,   383,   384,   385,   386,    -1,    -1,    -1,    -1,   391,
+     392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   416,   417,   418,   419,   420,   421,
-     422,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   438,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-      -1,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
-      -1,    -1,    -1,    -1,   331,   332,    -1,    -1,    -1,    -1,
+      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   350,   351,    -1,    -1,    -1,   355,   356,
-      -1,    -1,    -1,    -1,    -1,   362,   363,   364,   365,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,
-     387,   388,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,
-     417,   418,   419,   420,   421,   422,   423,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   438,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,    -1,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,    -1,   354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,    -1,    -1,    -1,
-      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   416,   417,   418,   419,   420,   421,
-     422,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   438,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-      -1,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
-      -1,    -1,    -1,    -1,   331,   332,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   350,   351,    -1,    -1,    -1,   355,    -1,
-      -1,    -1,    -1,    -1,    -1,   362,   363,   364,   365,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,
-     387,   388,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,
-     417,   418,   419,   420,   421,   422,   423,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   438,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,    -1,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,    -1,   354,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,    -1,    -1,    -1,
-      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   416,   417,   418,   419,   420,   421,
-     422,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   438,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-      -1,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
-      -1,    -1,    -1,    -1,   331,   332,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   361,   362,   363,   364,   365,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,
-     387,   388,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,
-     417,   418,   419,   420,   421,   422,   423,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   438,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,    -1,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,    -1,    -1,    -1,
-      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   416,   417,   418,   419,   420,   421,
-     422,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   438,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-      -1,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
-      -1,    -1,    -1,    -1,   331,   332,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   362,   363,   364,   365,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,
-     387,   388,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   416,
-     417,   418,   419,   420,   421,   422,   423,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   438,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
-      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
-      52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
-      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
-      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,   166,    -1,   168,   169,   170,   171,
-     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
-     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
-     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
-     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
-     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
-     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   315,   316,   317,   318,    -1,    -1,    -1,
-      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,   331,
-     332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   350,   351,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     362,   363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   383,   384,   385,   386,   387,   388,    -1,    -1,    -1,
-      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   416,   417,   418,   419,   420,   421,
-     422,   423,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   438,     4,     5,     6,
-       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
-      -1,   168,   169,   170,   171,   172,   173,   174,   175,   176,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
-     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
-     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
-     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
-     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
-     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
-     317,   318,    -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,
+      -1,    -1,    -1,    -1,   436,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
+      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,    60,    -1,    -1,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
+     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
+     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
+     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
+     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
+     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
+     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
+     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
+     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,   313,   314,   315,   316,    -1,    -1,
+      -1,    -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   388,    -1,    -1,    -1,    -1,   393,   394
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   386,    -1,    -1,
+      -1,    -1,   391,   392
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -4248,142 +4236,142 @@
      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
      302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
      312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
-     322,   323,   324,   325,   326,   327,   328,   353,   361,   375,
-     376,   377,   378,   379,   388,   389,   390,   391,   392,   393,
-     394,   410,   411,   412,   413,   414,   415,   424,   426,   427,
+     322,   323,   324,   325,   326,   351,   359,   373,   374,   375,
+     376,   377,   386,   387,   388,   389,   390,   391,   392,   408,
+     409,   410,   411,   412,   413,   422,   424,   425,   426,   427,
      428,   429,   430,   431,   432,   433,   434,   435,   436,   437,
      438,   439,   440,   441,   442,   443,   444,   445,   446,   447,
      448,   449,   450,   451,   452,   453,   454,   455,   456,   457,
-     458,   459,   491,   492,   495,   496,   497,   498,   502,   503,
-     504,   505,   506,   507,   510,   511,   512,   513,   514,   516,
-     521,   522,   523,   564,   565,   566,   568,   575,   579,   580,
-     585,   588,   351,   351,   351,   351,   351,   351,   351,   351,
-     353,   522,   355,   387,   351,   351,   361,   387,   361,   567,
-     352,   358,   499,   500,   501,   511,   516,   358,   361,   387,
-     361,   387,   512,   516,   369,   518,   519,     0,   565,   496,
-     504,   511,   361,   495,   387,   571,   572,   589,   590,   384,
-     387,   571,   384,   571,   384,   571,   384,   571,   384,   571,
-     571,   589,   384,   571,   387,   569,   570,   516,   525,   355,
-     387,   411,   508,   509,   387,   515,   353,   361,   517,   355,
-     543,   568,   500,   499,   501,   387,   387,   351,   360,   517,
-     355,   358,   361,   494,   331,   332,   350,   351,   362,   363,
-     364,   365,   383,   384,   385,   386,   387,   416,   417,   418,
-     419,   420,   421,   422,   423,   461,   462,   463,   465,   466,
-     467,   468,   469,   470,   471,   472,   473,   514,   516,   520,
-     517,   352,   387,   361,   360,   358,   352,   358,   352,   358,
-     360,   358,   358,   358,   352,   358,   358,   358,   358,   358,
-     358,   358,   352,   358,   352,   358,   351,   354,   358,   361,
-     511,   516,   526,   527,   524,   360,   352,   358,   352,   358,
-     354,   472,   474,   475,   476,   477,   478,   479,   480,   481,
-     482,   483,   484,   485,   353,   361,   355,   356,   361,   395,
-     396,   397,   398,   400,   401,   402,   403,   404,   405,   406,
-     407,   408,   409,   425,   472,   485,   487,   489,   491,   495,
-     514,   516,   532,   533,   534,   535,   536,   544,   545,   546,
-     547,   550,   551,   554,   555,   556,   563,   568,   517,   360,
-     517,   355,   487,   530,   360,   493,   387,   358,   361,   472,
-     472,   489,   331,   332,   353,   357,   352,   352,   358,   394,
-     487,   351,   472,   358,   370,   568,   350,   353,   384,   572,
-     589,   387,   590,   350,   383,   384,   385,   386,   576,   577,
-     384,   485,   490,   578,   384,   383,   384,   385,   386,   581,
-     582,   384,   490,   583,   384,   350,   584,   384,   589,   387,
-     490,   586,   587,   384,   490,   354,   570,   516,   387,   528,
-     529,   356,   527,   526,   490,   509,   387,   366,   367,   368,
-     363,   365,   329,   330,   333,   334,   369,   370,   335,   336,
-     373,   372,   371,   337,   339,   338,   374,   354,   354,   485,
-     356,   537,   351,   361,   361,   558,   351,   351,   361,   361,
-     489,   351,   489,   359,   361,   361,   361,   361,   340,   341,
-     342,   343,   344,   345,   346,   347,   348,   349,   360,   488,
-     358,   361,   356,   533,   547,   551,   556,   530,   360,   356,
-     530,   531,   530,   526,   387,   352,   464,   489,   387,   487,
-     472,   350,   384,   573,   574,   352,   360,   352,   358,   352,
-     358,   352,   358,   358,   352,   358,   352,   358,   352,   358,
-     358,   352,   358,   358,   352,   358,   352,   358,   352,   352,
-     528,   517,   358,   361,   356,   472,   472,   472,   474,   474,
-     475,   475,   476,   476,   476,   476,   477,   477,   478,   479,
-     480,   481,   482,   483,   486,   354,   544,   557,   533,   559,
-     489,   361,   489,   359,   487,   487,   530,   356,   358,   356,
-     354,   354,   358,   354,   358,   577,   576,   490,   578,   582,
-     581,   490,   583,   350,   584,   586,   587,   361,   529,   489,
-     538,   489,   504,   549,   395,   532,   545,   560,   352,   352,
-     356,   530,   350,   384,   352,   352,   352,   352,   352,   352,
-     359,   356,   387,   352,   351,   549,   561,   562,   540,   541,
-     542,   548,   552,   487,   360,   534,   539,   543,   489,   361,
-     352,   399,   536,   534,   355,   530,   352,   489,   539,   540,
-     544,   553,   361,   356
+     489,   490,   493,   494,   495,   496,   500,   501,   502,   503,
+     504,   505,   508,   509,   510,   511,   512,   514,   519,   520,
+     521,   562,   563,   564,   566,   573,   577,   578,   583,   586,
+     349,   349,   349,   349,   349,   349,   349,   349,   351,   520,
+     353,   385,   349,   349,   359,   385,   359,   565,   350,   356,
+     497,   498,   499,   509,   514,   356,   359,   385,   359,   385,
+     510,   514,   367,   516,   517,     0,   563,   494,   502,   509,
+     359,   493,   385,   569,   570,   587,   588,   382,   385,   569,
+     382,   569,   382,   569,   382,   569,   382,   569,   569,   587,
+     382,   569,   385,   567,   568,   514,   523,   353,   385,   409,
+     506,   507,   385,   513,   351,   359,   515,   353,   541,   566,
+     498,   497,   499,   385,   385,   349,   358,   515,   353,   356,
+     359,   492,   329,   330,   348,   349,   360,   361,   362,   363,
+     381,   382,   383,   384,   385,   414,   415,   416,   417,   418,
+     419,   420,   421,   459,   460,   461,   463,   464,   465,   466,
+     467,   468,   469,   470,   471,   512,   514,   518,   515,   350,
+     385,   359,   358,   356,   350,   356,   350,   356,   358,   356,
+     356,   356,   350,   356,   356,   356,   356,   356,   356,   356,
+     350,   356,   350,   356,   349,   352,   356,   359,   509,   514,
+     524,   525,   522,   358,   350,   356,   350,   356,   352,   470,
+     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
+     482,   483,   351,   359,   353,   354,   359,   393,   394,   395,
+     396,   398,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   423,   470,   483,   485,   487,   489,   493,   512,   514,
+     530,   531,   532,   533,   534,   542,   543,   544,   545,   548,
+     549,   552,   553,   554,   561,   566,   515,   358,   515,   353,
+     485,   528,   358,   491,   385,   356,   359,   470,   470,   487,
+     329,   330,   351,   355,   350,   350,   356,   392,   485,   349,
+     470,   356,   368,   566,   348,   351,   382,   570,   587,   385,
+     588,   348,   381,   382,   383,   384,   574,   575,   382,   483,
+     488,   576,   382,   381,   382,   383,   384,   579,   580,   382,
+     488,   581,   382,   348,   582,   382,   587,   385,   488,   584,
+     585,   382,   488,   352,   568,   514,   385,   526,   527,   354,
+     525,   524,   488,   507,   385,   364,   365,   366,   361,   363,
+     327,   328,   331,   332,   367,   368,   333,   334,   371,   370,
+     369,   335,   337,   336,   372,   352,   352,   483,   354,   535,
+     349,   359,   359,   556,   349,   349,   359,   359,   487,   349,
+     487,   357,   359,   359,   359,   359,   338,   339,   340,   341,
+     342,   343,   344,   345,   346,   347,   358,   486,   356,   359,
+     354,   531,   545,   549,   554,   528,   358,   354,   528,   529,
+     528,   524,   385,   350,   462,   487,   385,   485,   470,   348,
+     382,   571,   572,   350,   358,   350,   356,   350,   356,   350,
+     356,   356,   350,   356,   350,   356,   350,   356,   356,   350,
+     356,   356,   350,   356,   350,   356,   350,   350,   526,   515,
+     356,   359,   354,   470,   470,   470,   472,   472,   473,   473,
+     474,   474,   474,   474,   475,   475,   476,   477,   478,   479,
+     480,   481,   484,   352,   542,   555,   531,   557,   487,   359,
+     487,   357,   485,   485,   528,   354,   356,   354,   352,   352,
+     356,   352,   356,   575,   574,   488,   576,   580,   579,   488,
+     581,   348,   582,   584,   585,   359,   527,   487,   536,   487,
+     502,   547,   393,   530,   543,   558,   350,   350,   354,   528,
+     348,   382,   350,   350,   350,   350,   350,   350,   357,   354,
+     385,   350,   349,   547,   559,   560,   538,   539,   540,   546,
+     550,   485,   358,   532,   537,   541,   487,   359,   350,   397,
+     534,   532,   353,   528,   350,   487,   537,   538,   542,   551,
+     359,   354
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_int16 yyr1[] =
 {
-       0,   460,   461,   462,   462,   462,   462,   462,   462,   462,
-     462,   462,   462,   462,   462,   462,   462,   462,   463,   463,
-     463,   463,   463,   463,   464,   465,   466,   467,   467,   468,
-     468,   469,   469,   470,   471,   471,   471,   472,   472,   472,
-     472,   473,   473,   473,   473,   474,   474,   474,   474,   475,
-     475,   475,   476,   476,   476,   477,   477,   477,   477,   477,
-     478,   478,   478,   479,   479,   480,   480,   481,   481,   482,
-     482,   483,   483,   484,   484,   485,   486,   485,   487,   487,
-     488,   488,   488,   488,   488,   488,   488,   488,   488,   488,
-     488,   489,   489,   490,   491,   491,   491,   491,   491,   491,
-     491,   491,   491,   491,   491,   493,   492,   494,   494,   495,
-     495,   495,   495,   496,   496,   497,   497,   498,   499,   499,
-     500,   500,   500,   500,   501,   502,   502,   502,   502,   502,
-     503,   503,   503,   503,   503,   504,   504,   505,   506,   506,
-     506,   506,   506,   506,   506,   506,   506,   506,   507,   508,
-     508,   509,   509,   509,   510,   511,   511,   512,   512,   512,
-     512,   512,   512,   512,   512,   512,   512,   512,   513,   513,
-     513,   513,   513,   513,   513,   513,   513,   513,   513,   513,
-     513,   513,   513,   513,   513,   513,   513,   513,   513,   513,
-     513,   513,   513,   513,   513,   513,   513,   513,   513,   513,
-     513,   513,   513,   513,   513,   514,   515,   515,   516,   516,
-     517,   517,   517,   517,   518,   518,   519,   520,   520,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   521,   521,   521,   521,   521,
-     521,   521,   521,   521,   521,   522,   522,   522,   524,   523,
-     525,   523,   526,   526,   527,   527,   528,   528,   529,   529,
-     530,   530,   530,   530,   531,   531,   532,   533,   533,   534,
-     534,   534,   534,   534,   534,   534,   534,   535,   536,   537,
-     538,   536,   539,   539,   541,   540,   542,   540,   543,   543,
-     544,   544,   545,   545,   546,   546,   547,   548,   548,   549,
-     549,   550,   550,   552,   551,   553,   553,   554,   554,   555,
-     555,   557,   556,   558,   556,   559,   556,   560,   560,   561,
-     561,   562,   562,   563,   563,   563,   563,   563,   563,   563,
-     563,   564,   564,   565,   565,   565,   567,   566,   568,   569,
-     569,   570,   570,   571,   571,   572,   572,   573,   573,   574,
-     574,   575,   575,   575,   575,   575,   575,   576,   576,   577,
-     577,   577,   577,   577,   578,   578,   579,   579,   580,   580,
-     580,   580,   580,   580,   580,   580,   581,   581,   582,   582,
-     582,   582,   583,   583,   584,   584,   585,   585,   585,   585,
-     586,   586,   587,   588,   588,   589,   589,   590,   590
+       0,   458,   459,   460,   460,   460,   460,   460,   460,   460,
+     460,   460,   460,   460,   460,   460,   460,   460,   461,   461,
+     461,   461,   461,   461,   462,   463,   464,   465,   465,   466,
+     466,   467,   467,   468,   469,   469,   469,   470,   470,   470,
+     470,   471,   471,   471,   471,   472,   472,   472,   472,   473,
+     473,   473,   474,   474,   474,   475,   475,   475,   475,   475,
+     476,   476,   476,   477,   477,   478,   478,   479,   479,   480,
+     480,   481,   481,   482,   482,   483,   484,   483,   485,   485,
+     486,   486,   486,   486,   486,   486,   486,   486,   486,   486,
+     486,   487,   487,   488,   489,   489,   489,   489,   489,   489,
+     489,   489,   489,   489,   489,   491,   490,   492,   492,   493,
+     493,   493,   493,   494,   494,   495,   495,   496,   497,   497,
+     498,   498,   498,   498,   499,   500,   500,   500,   500,   500,
+     501,   501,   501,   501,   501,   502,   502,   503,   504,   504,
+     504,   504,   504,   504,   504,   504,   504,   504,   505,   506,
+     506,   507,   507,   507,   508,   509,   509,   510,   510,   510,
+     510,   510,   510,   510,   510,   510,   510,   510,   511,   511,
+     511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
+     511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
+     511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
+     511,   511,   511,   511,   512,   513,   513,   514,   514,   515,
+     515,   515,   515,   516,   516,   517,   518,   518,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   519,   519,   519,   519,   519,   519,   519,
+     519,   519,   519,   520,   520,   520,   522,   521,   523,   521,
+     524,   524,   525,   525,   526,   526,   527,   527,   528,   528,
+     528,   528,   529,   529,   530,   531,   531,   532,   532,   532,
+     532,   532,   532,   532,   532,   533,   534,   535,   536,   534,
+     537,   537,   539,   538,   540,   538,   541,   541,   542,   542,
+     543,   543,   544,   544,   545,   546,   546,   547,   547,   548,
+     548,   550,   549,   551,   551,   552,   552,   553,   553,   555,
+     554,   556,   554,   557,   554,   558,   558,   559,   559,   560,
+     560,   561,   561,   561,   561,   561,   561,   561,   561,   562,
+     562,   563,   563,   563,   565,   564,   566,   567,   567,   568,
+     568,   569,   569,   570,   570,   571,   571,   572,   572,   573,
+     573,   573,   573,   573,   573,   574,   574,   575,   575,   575,
+     575,   575,   576,   576,   577,   577,   578,   578,   578,   578,
+     578,   578,   578,   578,   579,   579,   580,   580,   580,   580,
+     581,   581,   582,   582,   583,   583,   583,   583,   584,   584,
+     585,   586,   586,   587,   587,   588,   588
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -4409,8 +4397,8 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     4,     1,     1,     1,     3,     2,     3,
-       2,     3,     3,     4,     1,     0,     3,     1,     3,     1,
+       1,     1,     4,     1,     1,     1,     3,     2,     3,     2,
+       3,     3,     4,     1,     0,     3,     1,     3,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
@@ -4442,22 +4430,22 @@
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
-       0,     5,     1,     2,     3,     4,     1,     3,     1,     2,
-       1,     3,     4,     2,     1,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     2,     2,     0,
-       0,     5,     1,     1,     0,     2,     0,     2,     2,     3,
-       1,     2,     1,     2,     1,     2,     5,     3,     1,     1,
-       4,     1,     2,     0,     8,     0,     1,     3,     2,     1,
-       2,     0,     6,     0,     8,     0,     7,     1,     1,     1,
-       0,     2,     3,     2,     2,     2,     3,     2,     2,     2,
-       2,     1,     2,     1,     1,     1,     0,     3,     5,     1,
-       3,     1,     4,     1,     3,     5,     5,     1,     3,     1,
-       3,     4,     6,     6,     8,     6,     8,     1,     3,     1,
-       1,     1,     1,     1,     1,     3,     4,     6,     4,     6,
-       6,     8,     6,     8,     6,     8,     1,     3,     1,     1,
-       1,     1,     1,     3,     1,     3,     6,     8,     4,     6,
-       1,     3,     1,     4,     6,     1,     3,     3,     3
+       1,     1,     1,     1,     1,     1,     0,     6,     0,     5,
+       1,     2,     3,     4,     1,     3,     1,     2,     1,     3,
+       4,     2,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     2,     2,     0,     0,     5,
+       1,     1,     0,     2,     0,     2,     2,     3,     1,     2,
+       1,     2,     1,     2,     5,     3,     1,     1,     4,     1,
+       2,     0,     8,     0,     1,     3,     2,     1,     2,     0,
+       6,     0,     8,     0,     7,     1,     1,     1,     0,     2,
+       3,     2,     2,     2,     3,     2,     2,     2,     2,     1,
+       2,     1,     1,     1,     0,     3,     5,     1,     3,     1,
+       4,     1,     3,     5,     5,     1,     3,     1,     3,     4,
+       6,     6,     8,     6,     8,     1,     3,     1,     1,     1,
+       1,     1,     1,     3,     4,     6,     4,     6,     6,     8,
+       6,     8,     6,     8,     1,     3,     1,     1,     1,     1,
+       1,     3,     1,     3,     6,     8,     4,     6,     1,     3,
+       1,     4,     6,     1,     3,     3,     3
 };
 
 
@@ -5203,260 +5191,260 @@
   switch (yyn)
     {
   case 2: /* variable_identifier: IDENTIFIER  */
-#line 393 "MachineIndependent/glslang.y"
+#line 392 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
     }
-#line 5211 "MachineIndependent/glslang_tab.cpp"
+#line 5199 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 3: /* primary_expression: variable_identifier  */
-#line 399 "MachineIndependent/glslang.y"
+#line 398 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5219 "MachineIndependent/glslang_tab.cpp"
+#line 5207 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN  */
-#line 402 "MachineIndependent/glslang.y"
+#line 401 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
         if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
             (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
     }
-#line 5229 "MachineIndependent/glslang_tab.cpp"
+#line 5217 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 5: /* primary_expression: FLOATCONSTANT  */
-#line 407 "MachineIndependent/glslang.y"
+#line 406 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 5237 "MachineIndependent/glslang_tab.cpp"
+#line 5225 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 6: /* primary_expression: INTCONSTANT  */
-#line 410 "MachineIndependent/glslang.y"
+#line 409 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 5245 "MachineIndependent/glslang_tab.cpp"
+#line 5233 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 7: /* primary_expression: UINTCONSTANT  */
-#line 413 "MachineIndependent/glslang.y"
+#line 412 "MachineIndependent/glslang.y"
                    {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 5254 "MachineIndependent/glslang_tab.cpp"
+#line 5242 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 8: /* primary_expression: BOOLCONSTANT  */
-#line 417 "MachineIndependent/glslang.y"
+#line 416 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 5262 "MachineIndependent/glslang_tab.cpp"
+#line 5250 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 9: /* primary_expression: STRING_LITERAL  */
-#line 421 "MachineIndependent/glslang.y"
+#line 420 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
     }
-#line 5270 "MachineIndependent/glslang_tab.cpp"
+#line 5258 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 10: /* primary_expression: INT32CONSTANT  */
-#line 424 "MachineIndependent/glslang.y"
+#line 423 "MachineIndependent/glslang.y"
                     {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 5279 "MachineIndependent/glslang_tab.cpp"
+#line 5267 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 11: /* primary_expression: UINT32CONSTANT  */
-#line 428 "MachineIndependent/glslang.y"
+#line 427 "MachineIndependent/glslang.y"
                      {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 5288 "MachineIndependent/glslang_tab.cpp"
+#line 5276 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 12: /* primary_expression: INT64CONSTANT  */
-#line 432 "MachineIndependent/glslang.y"
+#line 431 "MachineIndependent/glslang.y"
                     {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
     }
-#line 5297 "MachineIndependent/glslang_tab.cpp"
+#line 5285 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 13: /* primary_expression: UINT64CONSTANT  */
-#line 436 "MachineIndependent/glslang.y"
+#line 435 "MachineIndependent/glslang.y"
                      {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
     }
-#line 5306 "MachineIndependent/glslang_tab.cpp"
+#line 5294 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 14: /* primary_expression: INT16CONSTANT  */
-#line 440 "MachineIndependent/glslang.y"
+#line 439 "MachineIndependent/glslang.y"
                     {
         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 5315 "MachineIndependent/glslang_tab.cpp"
+#line 5303 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 15: /* primary_expression: UINT16CONSTANT  */
-#line 444 "MachineIndependent/glslang.y"
+#line 443 "MachineIndependent/glslang.y"
                      {
         parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 5324 "MachineIndependent/glslang_tab.cpp"
+#line 5312 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 16: /* primary_expression: DOUBLECONSTANT  */
-#line 448 "MachineIndependent/glslang.y"
+#line 447 "MachineIndependent/glslang.y"
                      {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
         if (! parseContext.symbolTable.atBuiltInLevel())
             parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
     }
-#line 5335 "MachineIndependent/glslang_tab.cpp"
+#line 5323 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 17: /* primary_expression: FLOAT16CONSTANT  */
-#line 454 "MachineIndependent/glslang.y"
+#line 453 "MachineIndependent/glslang.y"
                       {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
     }
-#line 5344 "MachineIndependent/glslang_tab.cpp"
+#line 5332 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 18: /* postfix_expression: primary_expression  */
-#line 462 "MachineIndependent/glslang.y"
+#line 461 "MachineIndependent/glslang.y"
                          {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5352 "MachineIndependent/glslang_tab.cpp"
+#line 5340 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET  */
-#line 465 "MachineIndependent/glslang.y"
+#line 464 "MachineIndependent/glslang.y"
                                                                        {
         (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
     }
-#line 5360 "MachineIndependent/glslang_tab.cpp"
+#line 5348 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 20: /* postfix_expression: function_call  */
-#line 468 "MachineIndependent/glslang.y"
+#line 467 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5368 "MachineIndependent/glslang_tab.cpp"
+#line 5356 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER  */
-#line 471 "MachineIndependent/glslang.y"
+#line 470 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
     }
-#line 5376 "MachineIndependent/glslang_tab.cpp"
+#line 5364 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 22: /* postfix_expression: postfix_expression INC_OP  */
-#line 474 "MachineIndependent/glslang.y"
+#line 473 "MachineIndependent/glslang.y"
                                 {
         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 5386 "MachineIndependent/glslang_tab.cpp"
+#line 5374 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 23: /* postfix_expression: postfix_expression DEC_OP  */
-#line 479 "MachineIndependent/glslang.y"
+#line 478 "MachineIndependent/glslang.y"
                                 {
         parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
         parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 5396 "MachineIndependent/glslang_tab.cpp"
+#line 5384 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 24: /* integer_expression: expression  */
-#line 487 "MachineIndependent/glslang.y"
+#line 486 "MachineIndependent/glslang.y"
                  {
         parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5405 "MachineIndependent/glslang_tab.cpp"
+#line 5393 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 25: /* function_call: function_call_or_method  */
-#line 494 "MachineIndependent/glslang.y"
+#line 493 "MachineIndependent/glslang.y"
                               {
         (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
         delete (yyvsp[0].interm).function;
     }
-#line 5414 "MachineIndependent/glslang_tab.cpp"
+#line 5402 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 26: /* function_call_or_method: function_call_generic  */
-#line 501 "MachineIndependent/glslang.y"
+#line 500 "MachineIndependent/glslang.y"
                             {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 5422 "MachineIndependent/glslang_tab.cpp"
+#line 5410 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN  */
-#line 507 "MachineIndependent/glslang.y"
+#line 506 "MachineIndependent/glslang.y"
                                                        {
         (yyval.interm) = (yyvsp[-1].interm);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
-#line 5431 "MachineIndependent/glslang_tab.cpp"
+#line 5419 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN  */
-#line 511 "MachineIndependent/glslang.y"
+#line 510 "MachineIndependent/glslang.y"
                                                      {
         (yyval.interm) = (yyvsp[-1].interm);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
-#line 5440 "MachineIndependent/glslang_tab.cpp"
+#line 5428 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 29: /* function_call_header_no_parameters: function_call_header VOID  */
-#line 518 "MachineIndependent/glslang.y"
+#line 517 "MachineIndependent/glslang.y"
                                 {
         (yyval.interm) = (yyvsp[-1].interm);
     }
-#line 5448 "MachineIndependent/glslang_tab.cpp"
+#line 5436 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 30: /* function_call_header_no_parameters: function_call_header  */
-#line 521 "MachineIndependent/glslang.y"
+#line 520 "MachineIndependent/glslang.y"
                            {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 5456 "MachineIndependent/glslang_tab.cpp"
+#line 5444 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 31: /* function_call_header_with_parameters: function_call_header assignment_expression  */
-#line 527 "MachineIndependent/glslang.y"
+#line 526 "MachineIndependent/glslang.y"
                                                  {
         TParameter param = { 0, new TType };
         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
@@ -5464,11 +5452,11 @@
         (yyval.interm).function = (yyvsp[-1].interm).function;
         (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
     }
-#line 5468 "MachineIndependent/glslang_tab.cpp"
+#line 5456 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression  */
-#line 534 "MachineIndependent/glslang.y"
+#line 533 "MachineIndependent/glslang.y"
                                                                        {
         TParameter param = { 0, new TType };
         param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
@@ -5476,29 +5464,29 @@
         (yyval.interm).function = (yyvsp[-2].interm).function;
         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
     }
-#line 5480 "MachineIndependent/glslang_tab.cpp"
+#line 5468 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 33: /* function_call_header: function_identifier LEFT_PAREN  */
-#line 544 "MachineIndependent/glslang.y"
+#line 543 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm) = (yyvsp[-1].interm);
     }
-#line 5488 "MachineIndependent/glslang_tab.cpp"
+#line 5476 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 34: /* function_identifier: type_specifier  */
-#line 552 "MachineIndependent/glslang.y"
+#line 551 "MachineIndependent/glslang.y"
                      {
         // Constructor
         (yyval.interm).intermNode = 0;
         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
     }
-#line 5498 "MachineIndependent/glslang_tab.cpp"
+#line 5486 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 35: /* function_identifier: postfix_expression  */
-#line 557 "MachineIndependent/glslang.y"
+#line 556 "MachineIndependent/glslang.y"
                          {
         //
         // Should be a method or subroutine call, but we haven't recognized the arguments yet.
@@ -5526,50 +5514,50 @@
             (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
         }
     }
-#line 5530 "MachineIndependent/glslang_tab.cpp"
+#line 5518 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 36: /* function_identifier: non_uniform_qualifier  */
-#line 585 "MachineIndependent/glslang.y"
+#line 584 "MachineIndependent/glslang.y"
                             {
         // Constructor
         (yyval.interm).intermNode = 0;
         (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
     }
-#line 5540 "MachineIndependent/glslang_tab.cpp"
+#line 5528 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 37: /* unary_expression: postfix_expression  */
-#line 594 "MachineIndependent/glslang.y"
+#line 593 "MachineIndependent/glslang.y"
                          {
         parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
     }
-#line 5551 "MachineIndependent/glslang_tab.cpp"
+#line 5539 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 38: /* unary_expression: INC_OP unary_expression  */
-#line 600 "MachineIndependent/glslang.y"
+#line 599 "MachineIndependent/glslang.y"
                               {
         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
     }
-#line 5560 "MachineIndependent/glslang_tab.cpp"
+#line 5548 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 39: /* unary_expression: DEC_OP unary_expression  */
-#line 604 "MachineIndependent/glslang.y"
+#line 603 "MachineIndependent/glslang.y"
                               {
         parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
     }
-#line 5569 "MachineIndependent/glslang_tab.cpp"
+#line 5557 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 40: /* unary_expression: unary_operator unary_expression  */
-#line 608 "MachineIndependent/glslang.y"
+#line 607 "MachineIndependent/glslang.y"
                                       {
         if ((yyvsp[-1].interm).op != EOpNull) {
             char errorOp[2] = {0, 0};
@@ -5586,179 +5574,179 @@
                 (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
         }
     }
-#line 5590 "MachineIndependent/glslang_tab.cpp"
+#line 5578 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 41: /* unary_operator: PLUS  */
-#line 628 "MachineIndependent/glslang.y"
+#line 627 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 5596 "MachineIndependent/glslang_tab.cpp"
+#line 5584 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 42: /* unary_operator: DASH  */
-#line 629 "MachineIndependent/glslang.y"
+#line 628 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 5602 "MachineIndependent/glslang_tab.cpp"
+#line 5590 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 43: /* unary_operator: BANG  */
-#line 630 "MachineIndependent/glslang.y"
+#line 629 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 5608 "MachineIndependent/glslang_tab.cpp"
+#line 5596 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 44: /* unary_operator: TILDE  */
-#line 631 "MachineIndependent/glslang.y"
+#line 630 "MachineIndependent/glslang.y"
             { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
               parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 5615 "MachineIndependent/glslang_tab.cpp"
+#line 5603 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 45: /* multiplicative_expression: unary_expression  */
-#line 637 "MachineIndependent/glslang.y"
+#line 636 "MachineIndependent/glslang.y"
                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5621 "MachineIndependent/glslang_tab.cpp"
+#line 5609 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression  */
-#line 638 "MachineIndependent/glslang.y"
+#line 637 "MachineIndependent/glslang.y"
                                                       {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5631 "MachineIndependent/glslang_tab.cpp"
+#line 5619 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression  */
-#line 643 "MachineIndependent/glslang.y"
+#line 642 "MachineIndependent/glslang.y"
                                                        {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5641 "MachineIndependent/glslang_tab.cpp"
+#line 5629 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression  */
-#line 648 "MachineIndependent/glslang.y"
+#line 647 "MachineIndependent/glslang.y"
                                                          {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5652 "MachineIndependent/glslang_tab.cpp"
+#line 5640 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 49: /* additive_expression: multiplicative_expression  */
-#line 657 "MachineIndependent/glslang.y"
+#line 656 "MachineIndependent/glslang.y"
                                 { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5658 "MachineIndependent/glslang_tab.cpp"
+#line 5646 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 50: /* additive_expression: additive_expression PLUS multiplicative_expression  */
-#line 658 "MachineIndependent/glslang.y"
+#line 657 "MachineIndependent/glslang.y"
                                                          {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5668 "MachineIndependent/glslang_tab.cpp"
+#line 5656 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 51: /* additive_expression: additive_expression DASH multiplicative_expression  */
-#line 663 "MachineIndependent/glslang.y"
+#line 662 "MachineIndependent/glslang.y"
                                                          {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5678 "MachineIndependent/glslang_tab.cpp"
+#line 5666 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 52: /* shift_expression: additive_expression  */
-#line 671 "MachineIndependent/glslang.y"
+#line 670 "MachineIndependent/glslang.y"
                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5684 "MachineIndependent/glslang_tab.cpp"
+#line 5672 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 53: /* shift_expression: shift_expression LEFT_OP additive_expression  */
-#line 672 "MachineIndependent/glslang.y"
+#line 671 "MachineIndependent/glslang.y"
                                                    {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5695 "MachineIndependent/glslang_tab.cpp"
+#line 5683 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression  */
-#line 678 "MachineIndependent/glslang.y"
+#line 677 "MachineIndependent/glslang.y"
                                                     {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5706 "MachineIndependent/glslang_tab.cpp"
+#line 5694 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 55: /* relational_expression: shift_expression  */
-#line 687 "MachineIndependent/glslang.y"
+#line 686 "MachineIndependent/glslang.y"
                        { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5712 "MachineIndependent/glslang_tab.cpp"
+#line 5700 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression  */
-#line 688 "MachineIndependent/glslang.y"
+#line 687 "MachineIndependent/glslang.y"
                                                         {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5722 "MachineIndependent/glslang_tab.cpp"
+#line 5710 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression  */
-#line 693 "MachineIndependent/glslang.y"
+#line 692 "MachineIndependent/glslang.y"
                                                           {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5732 "MachineIndependent/glslang_tab.cpp"
+#line 5720 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 58: /* relational_expression: relational_expression LE_OP shift_expression  */
-#line 698 "MachineIndependent/glslang.y"
+#line 697 "MachineIndependent/glslang.y"
                                                     {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5742 "MachineIndependent/glslang_tab.cpp"
+#line 5730 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 59: /* relational_expression: relational_expression GE_OP shift_expression  */
-#line 703 "MachineIndependent/glslang.y"
+#line 702 "MachineIndependent/glslang.y"
                                                     {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5752 "MachineIndependent/glslang_tab.cpp"
+#line 5740 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 60: /* equality_expression: relational_expression  */
-#line 711 "MachineIndependent/glslang.y"
+#line 710 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5758 "MachineIndependent/glslang_tab.cpp"
+#line 5746 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 61: /* equality_expression: equality_expression EQ_OP relational_expression  */
-#line 712 "MachineIndependent/glslang.y"
+#line 711 "MachineIndependent/glslang.y"
                                                        {
         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
@@ -5768,11 +5756,11 @@
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5772 "MachineIndependent/glslang_tab.cpp"
+#line 5760 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 62: /* equality_expression: equality_expression NE_OP relational_expression  */
-#line 721 "MachineIndependent/glslang.y"
+#line 720 "MachineIndependent/glslang.y"
                                                       {
         parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
         parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
@@ -5782,124 +5770,124 @@
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5786 "MachineIndependent/glslang_tab.cpp"
+#line 5774 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 63: /* and_expression: equality_expression  */
-#line 733 "MachineIndependent/glslang.y"
+#line 732 "MachineIndependent/glslang.y"
                           { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5792 "MachineIndependent/glslang_tab.cpp"
+#line 5780 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 64: /* and_expression: and_expression AMPERSAND equality_expression  */
-#line 734 "MachineIndependent/glslang.y"
+#line 733 "MachineIndependent/glslang.y"
                                                    {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5803 "MachineIndependent/glslang_tab.cpp"
+#line 5791 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 65: /* exclusive_or_expression: and_expression  */
-#line 743 "MachineIndependent/glslang.y"
+#line 742 "MachineIndependent/glslang.y"
                      { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5809 "MachineIndependent/glslang_tab.cpp"
+#line 5797 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression  */
-#line 744 "MachineIndependent/glslang.y"
+#line 743 "MachineIndependent/glslang.y"
                                                    {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5820 "MachineIndependent/glslang_tab.cpp"
+#line 5808 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 67: /* inclusive_or_expression: exclusive_or_expression  */
-#line 753 "MachineIndependent/glslang.y"
+#line 752 "MachineIndependent/glslang.y"
                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5826 "MachineIndependent/glslang_tab.cpp"
+#line 5814 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression  */
-#line 754 "MachineIndependent/glslang.y"
+#line 753 "MachineIndependent/glslang.y"
                                                                    {
         parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 5837 "MachineIndependent/glslang_tab.cpp"
+#line 5825 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 69: /* logical_and_expression: inclusive_or_expression  */
-#line 763 "MachineIndependent/glslang.y"
+#line 762 "MachineIndependent/glslang.y"
                               { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5843 "MachineIndependent/glslang_tab.cpp"
+#line 5831 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression  */
-#line 764 "MachineIndependent/glslang.y"
+#line 763 "MachineIndependent/glslang.y"
                                                             {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5853 "MachineIndependent/glslang_tab.cpp"
+#line 5841 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 71: /* logical_xor_expression: logical_and_expression  */
-#line 772 "MachineIndependent/glslang.y"
+#line 771 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5859 "MachineIndependent/glslang_tab.cpp"
+#line 5847 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression  */
-#line 773 "MachineIndependent/glslang.y"
+#line 772 "MachineIndependent/glslang.y"
                                                             {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5869 "MachineIndependent/glslang_tab.cpp"
+#line 5857 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 73: /* logical_or_expression: logical_xor_expression  */
-#line 781 "MachineIndependent/glslang.y"
+#line 780 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5875 "MachineIndependent/glslang_tab.cpp"
+#line 5863 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression  */
-#line 782 "MachineIndependent/glslang.y"
+#line 781 "MachineIndependent/glslang.y"
                                                           {
         (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
         if ((yyval.interm.intermTypedNode) == 0)
             (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
     }
-#line 5885 "MachineIndependent/glslang_tab.cpp"
+#line 5873 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 75: /* conditional_expression: logical_or_expression  */
-#line 790 "MachineIndependent/glslang.y"
+#line 789 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5891 "MachineIndependent/glslang_tab.cpp"
+#line 5879 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 76: /* $@1: %empty  */
-#line 791 "MachineIndependent/glslang.y"
+#line 790 "MachineIndependent/glslang.y"
                                      {
         ++parseContext.controlFlowNestingLevel;
     }
-#line 5899 "MachineIndependent/glslang_tab.cpp"
+#line 5887 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression  */
-#line 794 "MachineIndependent/glslang.y"
+#line 793 "MachineIndependent/glslang.y"
                                              {
         --parseContext.controlFlowNestingLevel;
         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
@@ -5912,17 +5900,17 @@
             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         }
     }
-#line 5916 "MachineIndependent/glslang_tab.cpp"
+#line 5904 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 78: /* assignment_expression: conditional_expression  */
-#line 809 "MachineIndependent/glslang.y"
+#line 808 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 5922 "MachineIndependent/glslang_tab.cpp"
+#line 5910 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression  */
-#line 810 "MachineIndependent/glslang.y"
+#line 809 "MachineIndependent/glslang.y"
                                                                  {
         parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
         parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
@@ -5936,119 +5924,119 @@
             (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
         }
     }
-#line 5940 "MachineIndependent/glslang_tab.cpp"
+#line 5928 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 80: /* assignment_operator: EQUAL  */
-#line 826 "MachineIndependent/glslang.y"
+#line 825 "MachineIndependent/glslang.y"
             {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpAssign;
     }
-#line 5949 "MachineIndependent/glslang_tab.cpp"
+#line 5937 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 81: /* assignment_operator: MUL_ASSIGN  */
-#line 830 "MachineIndependent/glslang.y"
+#line 829 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpMulAssign;
     }
-#line 5958 "MachineIndependent/glslang_tab.cpp"
+#line 5946 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 82: /* assignment_operator: DIV_ASSIGN  */
-#line 834 "MachineIndependent/glslang.y"
+#line 833 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpDivAssign;
     }
-#line 5967 "MachineIndependent/glslang_tab.cpp"
+#line 5955 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 83: /* assignment_operator: MOD_ASSIGN  */
-#line 838 "MachineIndependent/glslang.y"
+#line 837 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpModAssign;
     }
-#line 5977 "MachineIndependent/glslang_tab.cpp"
+#line 5965 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 84: /* assignment_operator: ADD_ASSIGN  */
-#line 843 "MachineIndependent/glslang.y"
+#line 842 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpAddAssign;
     }
-#line 5986 "MachineIndependent/glslang_tab.cpp"
+#line 5974 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 85: /* assignment_operator: SUB_ASSIGN  */
-#line 847 "MachineIndependent/glslang.y"
+#line 846 "MachineIndependent/glslang.y"
                  {
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).op = EOpSubAssign;
     }
-#line 5995 "MachineIndependent/glslang_tab.cpp"
+#line 5983 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 86: /* assignment_operator: LEFT_ASSIGN  */
-#line 851 "MachineIndependent/glslang.y"
+#line 850 "MachineIndependent/glslang.y"
                   {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
     }
-#line 6004 "MachineIndependent/glslang_tab.cpp"
+#line 5992 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 87: /* assignment_operator: RIGHT_ASSIGN  */
-#line 855 "MachineIndependent/glslang.y"
+#line 854 "MachineIndependent/glslang.y"
                    {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
     }
-#line 6013 "MachineIndependent/glslang_tab.cpp"
+#line 6001 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 88: /* assignment_operator: AND_ASSIGN  */
-#line 859 "MachineIndependent/glslang.y"
+#line 858 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
     }
-#line 6022 "MachineIndependent/glslang_tab.cpp"
+#line 6010 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 89: /* assignment_operator: XOR_ASSIGN  */
-#line 863 "MachineIndependent/glslang.y"
+#line 862 "MachineIndependent/glslang.y"
                  {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
     }
-#line 6031 "MachineIndependent/glslang_tab.cpp"
+#line 6019 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 90: /* assignment_operator: OR_ASSIGN  */
-#line 867 "MachineIndependent/glslang.y"
+#line 866 "MachineIndependent/glslang.y"
                 {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
         (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
     }
-#line 6040 "MachineIndependent/glslang_tab.cpp"
+#line 6028 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 91: /* expression: assignment_expression  */
-#line 874 "MachineIndependent/glslang.y"
+#line 873 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 6048 "MachineIndependent/glslang_tab.cpp"
+#line 6036 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 92: /* expression: expression COMMA assignment_expression  */
-#line 877 "MachineIndependent/glslang.y"
+#line 876 "MachineIndependent/glslang.y"
                                              {
         parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
         (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
@@ -6057,30 +6045,30 @@
             (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         }
     }
-#line 6061 "MachineIndependent/glslang_tab.cpp"
+#line 6049 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 93: /* constant_expression: conditional_expression  */
-#line 888 "MachineIndependent/glslang.y"
+#line 887 "MachineIndependent/glslang.y"
                              {
         parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 6070 "MachineIndependent/glslang_tab.cpp"
+#line 6058 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 94: /* declaration: function_prototype SEMICOLON  */
-#line 895 "MachineIndependent/glslang.y"
+#line 894 "MachineIndependent/glslang.y"
                                    {
         parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
         (yyval.interm.intermNode) = 0;
         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
     }
-#line 6080 "MachineIndependent/glslang_tab.cpp"
+#line 6068 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 95: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON  */
-#line 901 "MachineIndependent/glslang.y"
+#line 900 "MachineIndependent/glslang.y"
                                                                {
         parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
         (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
@@ -6088,31 +6076,31 @@
         (yyval.interm.intermNode) = 0;
         // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
     }
-#line 6092 "MachineIndependent/glslang_tab.cpp"
+#line 6080 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 96: /* declaration: spirv_execution_mode_qualifier SEMICOLON  */
-#line 908 "MachineIndependent/glslang.y"
+#line 907 "MachineIndependent/glslang.y"
                                                {
         parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
         (yyval.interm.intermNode) = 0;
     }
-#line 6102 "MachineIndependent/glslang_tab.cpp"
+#line 6090 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 97: /* declaration: init_declarator_list SEMICOLON  */
-#line 914 "MachineIndependent/glslang.y"
+#line 913 "MachineIndependent/glslang.y"
                                      {
         if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
             (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
         (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
     }
-#line 6112 "MachineIndependent/glslang_tab.cpp"
+#line 6100 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 98: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON  */
-#line 919 "MachineIndependent/glslang.y"
+#line 918 "MachineIndependent/glslang.y"
                                                              {
         parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
         // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
@@ -6120,75 +6108,75 @@
         parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
         (yyval.interm.intermNode) = 0;
     }
-#line 6124 "MachineIndependent/glslang_tab.cpp"
+#line 6112 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 99: /* declaration: block_structure SEMICOLON  */
-#line 926 "MachineIndependent/glslang.y"
+#line 925 "MachineIndependent/glslang.y"
                                 {
         parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
         (yyval.interm.intermNode) = 0;
     }
-#line 6133 "MachineIndependent/glslang_tab.cpp"
+#line 6121 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 100: /* declaration: block_structure IDENTIFIER SEMICOLON  */
-#line 930 "MachineIndependent/glslang.y"
+#line 929 "MachineIndependent/glslang.y"
                                            {
         parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
         (yyval.interm.intermNode) = 0;
     }
-#line 6142 "MachineIndependent/glslang_tab.cpp"
+#line 6130 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 101: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON  */
-#line 934 "MachineIndependent/glslang.y"
+#line 933 "MachineIndependent/glslang.y"
                                                            {
         parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
         (yyval.interm.intermNode) = 0;
     }
-#line 6151 "MachineIndependent/glslang_tab.cpp"
+#line 6139 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 102: /* declaration: type_qualifier SEMICOLON  */
-#line 938 "MachineIndependent/glslang.y"
+#line 937 "MachineIndependent/glslang.y"
                                {
         parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
         parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
         (yyval.interm.intermNode) = 0;
     }
-#line 6161 "MachineIndependent/glslang_tab.cpp"
+#line 6149 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 103: /* declaration: type_qualifier IDENTIFIER SEMICOLON  */
-#line 943 "MachineIndependent/glslang.y"
+#line 942 "MachineIndependent/glslang.y"
                                           {
         parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
         parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
         (yyval.interm.intermNode) = 0;
     }
-#line 6171 "MachineIndependent/glslang_tab.cpp"
+#line 6159 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 104: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON  */
-#line 948 "MachineIndependent/glslang.y"
+#line 947 "MachineIndependent/glslang.y"
                                                           {
         parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
         (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
         parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
         (yyval.interm.intermNode) = 0;
     }
-#line 6182 "MachineIndependent/glslang_tab.cpp"
+#line 6170 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 105: /* $@2: %empty  */
-#line 957 "MachineIndependent/glslang.y"
+#line 956 "MachineIndependent/glslang.y"
                                            { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 6188 "MachineIndependent/glslang_tab.cpp"
+#line 6176 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 106: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE  */
-#line 957 "MachineIndependent/glslang.y"
+#line 956 "MachineIndependent/glslang.y"
                                                                                                                           {
         --parseContext.blockNestingLevel;
         parseContext.blockName = (yyvsp[-4].lex).string;
@@ -6198,60 +6186,60 @@
         (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
         (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
     }
-#line 6202 "MachineIndependent/glslang_tab.cpp"
+#line 6190 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 107: /* identifier_list: COMMA IDENTIFIER  */
-#line 968 "MachineIndependent/glslang.y"
+#line 967 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.identifierList) = new TIdentifierList;
         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
     }
-#line 6211 "MachineIndependent/glslang_tab.cpp"
+#line 6199 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 108: /* identifier_list: identifier_list COMMA IDENTIFIER  */
-#line 972 "MachineIndependent/glslang.y"
+#line 971 "MachineIndependent/glslang.y"
                                        {
         (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
         (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
     }
-#line 6220 "MachineIndependent/glslang_tab.cpp"
+#line 6208 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 109: /* function_prototype: function_declarator RIGHT_PAREN  */
-#line 979 "MachineIndependent/glslang.y"
+#line 978 "MachineIndependent/glslang.y"
                                        {
         (yyval.interm).function = (yyvsp[-1].interm.function);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
     }
-#line 6229 "MachineIndependent/glslang_tab.cpp"
+#line 6217 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 110: /* function_prototype: function_declarator RIGHT_PAREN attribute  */
-#line 983 "MachineIndependent/glslang.y"
+#line 982 "MachineIndependent/glslang.y"
                                                 {
         (yyval.interm).function = (yyvsp[-2].interm.function);
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
     }
-#line 6240 "MachineIndependent/glslang_tab.cpp"
+#line 6228 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 111: /* function_prototype: attribute function_declarator RIGHT_PAREN  */
-#line 989 "MachineIndependent/glslang.y"
+#line 988 "MachineIndependent/glslang.y"
                                                 {
         (yyval.interm).function = (yyvsp[-1].interm.function);
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
         parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyvsp[-2].interm.attributes));
     }
-#line 6251 "MachineIndependent/glslang_tab.cpp"
+#line 6239 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 112: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute  */
-#line 995 "MachineIndependent/glslang.y"
+#line 994 "MachineIndependent/glslang.y"
                                                           {
         (yyval.interm).function = (yyvsp[-2].interm.function);
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
@@ -6259,27 +6247,27 @@
         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[-3].interm.attributes));
         parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyvsp[0].interm.attributes));
     }
-#line 6263 "MachineIndependent/glslang_tab.cpp"
+#line 6251 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 113: /* function_declarator: function_header  */
-#line 1005 "MachineIndependent/glslang.y"
+#line 1004 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.function) = (yyvsp[0].interm.function);
     }
-#line 6271 "MachineIndependent/glslang_tab.cpp"
+#line 6259 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 114: /* function_declarator: function_header_with_parameters  */
-#line 1008 "MachineIndependent/glslang.y"
+#line 1007 "MachineIndependent/glslang.y"
                                       {
         (yyval.interm.function) = (yyvsp[0].interm.function);
     }
-#line 6279 "MachineIndependent/glslang_tab.cpp"
+#line 6267 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 115: /* function_header_with_parameters: function_header parameter_declaration  */
-#line 1015 "MachineIndependent/glslang.y"
+#line 1014 "MachineIndependent/glslang.y"
                                             {
         // Add the parameter
         (yyval.interm.function) = (yyvsp[-1].interm.function);
@@ -6288,11 +6276,11 @@
         else
             delete (yyvsp[0].interm).param.type;
     }
-#line 6292 "MachineIndependent/glslang_tab.cpp"
+#line 6280 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 116: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration  */
-#line 1023 "MachineIndependent/glslang.y"
+#line 1022 "MachineIndependent/glslang.y"
                                                                   {
         //
         // Only first parameter of one-parameter functions can be void
@@ -6310,11 +6298,11 @@
             (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
         }
     }
-#line 6314 "MachineIndependent/glslang_tab.cpp"
+#line 6302 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 117: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN  */
-#line 1043 "MachineIndependent/glslang.y"
+#line 1042 "MachineIndependent/glslang.y"
                                                  {
         if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
             parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
@@ -6334,11 +6322,11 @@
         function = new TFunction((yyvsp[-1].lex).string, type);
         (yyval.interm.function) = function;
     }
-#line 6338 "MachineIndependent/glslang_tab.cpp"
+#line 6326 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 118: /* parameter_declarator: type_specifier IDENTIFIER  */
-#line 1066 "MachineIndependent/glslang.y"
+#line 1065 "MachineIndependent/glslang.y"
                                 {
         if ((yyvsp[-1].interm.type).arraySizes) {
             parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -6354,11 +6342,11 @@
         (yyval.interm).loc = (yyvsp[0].lex).loc;
         (yyval.interm).param = param;
     }
-#line 6358 "MachineIndependent/glslang_tab.cpp"
+#line 6346 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 119: /* parameter_declarator: type_specifier IDENTIFIER array_specifier  */
-#line 1081 "MachineIndependent/glslang.y"
+#line 1080 "MachineIndependent/glslang.y"
                                                 {
         if ((yyvsp[-2].interm.type).arraySizes) {
             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -6378,11 +6366,11 @@
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
         (yyval.interm).param = param;
     }
-#line 6382 "MachineIndependent/glslang_tab.cpp"
+#line 6370 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 120: /* parameter_declaration: type_qualifier parameter_declarator  */
-#line 1106 "MachineIndependent/glslang.y"
+#line 1105 "MachineIndependent/glslang.y"
                                           {
         (yyval.interm) = (yyvsp[0].interm);
         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -6394,11 +6382,11 @@
         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
 
     }
-#line 6398 "MachineIndependent/glslang_tab.cpp"
+#line 6386 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 121: /* parameter_declaration: parameter_declarator  */
-#line 1117 "MachineIndependent/glslang.y"
+#line 1116 "MachineIndependent/glslang.y"
                            {
         (yyval.interm) = (yyvsp[0].interm);
 
@@ -6406,11 +6394,11 @@
         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
     }
-#line 6410 "MachineIndependent/glslang_tab.cpp"
+#line 6398 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 122: /* parameter_declaration: type_qualifier parameter_type_specifier  */
-#line 1127 "MachineIndependent/glslang.y"
+#line 1126 "MachineIndependent/glslang.y"
                                               {
         (yyval.interm) = (yyvsp[0].interm);
         if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -6421,11 +6409,11 @@
         parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
         parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
     }
-#line 6425 "MachineIndependent/glslang_tab.cpp"
+#line 6413 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 123: /* parameter_declaration: parameter_type_specifier  */
-#line 1137 "MachineIndependent/glslang.y"
+#line 1136 "MachineIndependent/glslang.y"
                                {
         (yyval.interm) = (yyvsp[0].interm);
 
@@ -6433,68 +6421,68 @@
         parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
         parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
     }
-#line 6437 "MachineIndependent/glslang_tab.cpp"
+#line 6425 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 124: /* parameter_type_specifier: type_specifier  */
-#line 1147 "MachineIndependent/glslang.y"
+#line 1146 "MachineIndependent/glslang.y"
                      {
         TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
         (yyval.interm).param = param;
         if ((yyvsp[0].interm.type).arraySizes)
             parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
     }
-#line 6448 "MachineIndependent/glslang_tab.cpp"
+#line 6436 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 125: /* init_declarator_list: single_declaration  */
-#line 1156 "MachineIndependent/glslang.y"
+#line 1155 "MachineIndependent/glslang.y"
                          {
         (yyval.interm) = (yyvsp[0].interm);
     }
-#line 6456 "MachineIndependent/glslang_tab.cpp"
+#line 6444 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 126: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER  */
-#line 1159 "MachineIndependent/glslang.y"
+#line 1158 "MachineIndependent/glslang.y"
                                             {
         (yyval.interm) = (yyvsp[-2].interm);
         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
     }
-#line 6465 "MachineIndependent/glslang_tab.cpp"
+#line 6453 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 127: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier  */
-#line 1163 "MachineIndependent/glslang.y"
+#line 1162 "MachineIndependent/glslang.y"
                                                             {
         (yyval.interm) = (yyvsp[-3].interm);
         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
     }
-#line 6474 "MachineIndependent/glslang_tab.cpp"
+#line 6462 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 128: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer  */
-#line 1167 "MachineIndependent/glslang.y"
+#line 1166 "MachineIndependent/glslang.y"
                                                                               {
         (yyval.interm).type = (yyvsp[-5].interm).type;
         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
     }
-#line 6484 "MachineIndependent/glslang_tab.cpp"
+#line 6472 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 129: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer  */
-#line 1172 "MachineIndependent/glslang.y"
+#line 1171 "MachineIndependent/glslang.y"
                                                               {
         (yyval.interm).type = (yyvsp[-4].interm).type;
         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
         (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
     }
-#line 6494 "MachineIndependent/glslang_tab.cpp"
+#line 6482 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 130: /* single_declaration: fully_specified_type  */
-#line 1180 "MachineIndependent/glslang.y"
+#line 1179 "MachineIndependent/glslang.y"
                            {
         (yyval.interm).type = (yyvsp[0].interm.type);
         (yyval.interm).intermNode = 0;
@@ -6502,51 +6490,51 @@
         parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
 
     }
-#line 6506 "MachineIndependent/glslang_tab.cpp"
+#line 6494 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 131: /* single_declaration: fully_specified_type IDENTIFIER  */
-#line 1187 "MachineIndependent/glslang.y"
+#line 1186 "MachineIndependent/glslang.y"
                                       {
         (yyval.interm).type = (yyvsp[-1].interm.type);
         (yyval.interm).intermNode = 0;
         parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
     }
-#line 6516 "MachineIndependent/glslang_tab.cpp"
+#line 6504 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 132: /* single_declaration: fully_specified_type IDENTIFIER array_specifier  */
-#line 1192 "MachineIndependent/glslang.y"
+#line 1191 "MachineIndependent/glslang.y"
                                                       {
         (yyval.interm).type = (yyvsp[-2].interm.type);
         (yyval.interm).intermNode = 0;
         parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
     }
-#line 6526 "MachineIndependent/glslang_tab.cpp"
+#line 6514 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 133: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer  */
-#line 1197 "MachineIndependent/glslang.y"
+#line 1196 "MachineIndependent/glslang.y"
                                                                         {
         (yyval.interm).type = (yyvsp[-4].interm.type);
         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
     }
-#line 6536 "MachineIndependent/glslang_tab.cpp"
+#line 6524 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 134: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer  */
-#line 1202 "MachineIndependent/glslang.y"
+#line 1201 "MachineIndependent/glslang.y"
                                                         {
         (yyval.interm).type = (yyvsp[-3].interm.type);
         TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
         (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
     }
-#line 6546 "MachineIndependent/glslang_tab.cpp"
+#line 6534 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 135: /* fully_specified_type: type_specifier  */
-#line 1211 "MachineIndependent/glslang.y"
+#line 1210 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type) = (yyvsp[0].interm.type);
 
@@ -6557,13 +6545,13 @@
         }
         parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
     }
-#line 6561 "MachineIndependent/glslang_tab.cpp"
+#line 6549 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 136: /* fully_specified_type: type_qualifier type_specifier  */
-#line 1221 "MachineIndependent/glslang.y"
+#line 1220 "MachineIndependent/glslang.y"
                                      {
-        parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, false, &(yyvsp[0].interm.type));
+        parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
         parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
 
         if ((yyvsp[0].interm.type).arraySizes) {
@@ -6586,22 +6574,22 @@
              (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
             (yyval.interm.type).qualifier.smooth = true;
     }
-#line 6590 "MachineIndependent/glslang_tab.cpp"
+#line 6578 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 137: /* invariant_qualifier: INVARIANT  */
-#line 1248 "MachineIndependent/glslang.y"
+#line 1247 "MachineIndependent/glslang.y"
                 {
         parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
         parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.invariant = true;
     }
-#line 6601 "MachineIndependent/glslang_tab.cpp"
+#line 6589 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 138: /* interpolation_qualifier: SMOOTH  */
-#line 1257 "MachineIndependent/glslang.y"
+#line 1256 "MachineIndependent/glslang.y"
              {
         parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
@@ -6609,11 +6597,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.smooth = true;
     }
-#line 6613 "MachineIndependent/glslang_tab.cpp"
+#line 6601 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 139: /* interpolation_qualifier: FLAT  */
-#line 1264 "MachineIndependent/glslang.y"
+#line 1263 "MachineIndependent/glslang.y"
            {
         parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
@@ -6621,11 +6609,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.flat = true;
     }
-#line 6625 "MachineIndependent/glslang_tab.cpp"
+#line 6613 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 140: /* interpolation_qualifier: NOPERSPECTIVE  */
-#line 1272 "MachineIndependent/glslang.y"
+#line 1271 "MachineIndependent/glslang.y"
                     {
         parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
@@ -6633,11 +6621,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.nopersp = true;
     }
-#line 6637 "MachineIndependent/glslang_tab.cpp"
+#line 6625 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 141: /* interpolation_qualifier: EXPLICITINTERPAMD  */
-#line 1279 "MachineIndependent/glslang.y"
+#line 1278 "MachineIndependent/glslang.y"
                         {
         parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
@@ -6645,11 +6633,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.explicitInterp = true;
     }
-#line 6649 "MachineIndependent/glslang_tab.cpp"
+#line 6637 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 142: /* interpolation_qualifier: PERVERTEXNV  */
-#line 1286 "MachineIndependent/glslang.y"
+#line 1285 "MachineIndependent/glslang.y"
                   {
         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
@@ -6658,11 +6646,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.pervertexNV = true;
     }
-#line 6662 "MachineIndependent/glslang_tab.cpp"
+#line 6650 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 143: /* interpolation_qualifier: PERVERTEXEXT  */
-#line 1294 "MachineIndependent/glslang.y"
+#line 1293 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexEXT");
         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
@@ -6671,11 +6659,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.pervertexEXT = true;
     }
-#line 6675 "MachineIndependent/glslang_tab.cpp"
+#line 6663 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 144: /* interpolation_qualifier: PERPRIMITIVENV  */
-#line 1302 "MachineIndependent/glslang.y"
+#line 1301 "MachineIndependent/glslang.y"
                      {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
@@ -6686,11 +6674,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perPrimitiveNV = true;
     }
-#line 6690 "MachineIndependent/glslang_tab.cpp"
+#line 6678 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 145: /* interpolation_qualifier: PERPRIMITIVEEXT  */
-#line 1312 "MachineIndependent/glslang.y"
+#line 1311 "MachineIndependent/glslang.y"
                       {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveEXT");
@@ -6701,11 +6689,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perPrimitiveNV = true;
     }
-#line 6705 "MachineIndependent/glslang_tab.cpp"
+#line 6693 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 146: /* interpolation_qualifier: PERVIEWNV  */
-#line 1322 "MachineIndependent/glslang.y"
+#line 1321 "MachineIndependent/glslang.y"
                 {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
@@ -6713,11 +6701,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perViewNV = true;
     }
-#line 6717 "MachineIndependent/glslang_tab.cpp"
+#line 6705 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 147: /* interpolation_qualifier: PERTASKNV  */
-#line 1329 "MachineIndependent/glslang.y"
+#line 1328 "MachineIndependent/glslang.y"
                 {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
@@ -6725,84 +6713,84 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.perTaskNV = true;
     }
-#line 6729 "MachineIndependent/glslang_tab.cpp"
+#line 6717 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 148: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN  */
-#line 1340 "MachineIndependent/glslang.y"
+#line 1339 "MachineIndependent/glslang.y"
                                                              {
         (yyval.interm.type) = (yyvsp[-1].interm.type);
     }
-#line 6737 "MachineIndependent/glslang_tab.cpp"
+#line 6725 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 149: /* layout_qualifier_id_list: layout_qualifier_id  */
-#line 1346 "MachineIndependent/glslang.y"
+#line 1345 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6745 "MachineIndependent/glslang_tab.cpp"
+#line 6733 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 150: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id  */
-#line 1349 "MachineIndependent/glslang.y"
+#line 1348 "MachineIndependent/glslang.y"
                                                          {
         (yyval.interm.type) = (yyvsp[-2].interm.type);
         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
         parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
     }
-#line 6755 "MachineIndependent/glslang_tab.cpp"
+#line 6743 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 151: /* layout_qualifier_id: IDENTIFIER  */
-#line 1356 "MachineIndependent/glslang.y"
+#line 1355 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
     }
-#line 6764 "MachineIndependent/glslang_tab.cpp"
+#line 6752 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 152: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression  */
-#line 1360 "MachineIndependent/glslang.y"
+#line 1359 "MachineIndependent/glslang.y"
                                            {
         (yyval.interm.type).init((yyvsp[-2].lex).loc);
         parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
     }
-#line 6773 "MachineIndependent/glslang_tab.cpp"
+#line 6761 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 153: /* layout_qualifier_id: SHARED  */
-#line 1364 "MachineIndependent/glslang.y"
+#line 1363 "MachineIndependent/glslang.y"
              { // because "shared" is both an identifier and a keyword
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         TString strShared("shared");
         parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
     }
-#line 6783 "MachineIndependent/glslang_tab.cpp"
+#line 6771 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 154: /* precise_qualifier: PRECISE  */
-#line 1373 "MachineIndependent/glslang.y"
+#line 1372 "MachineIndependent/glslang.y"
               {
         parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.noContraction = true;
     }
-#line 6794 "MachineIndependent/glslang_tab.cpp"
+#line 6782 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 155: /* type_qualifier: single_type_qualifier  */
-#line 1383 "MachineIndependent/glslang.y"
+#line 1382 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6802 "MachineIndependent/glslang_tab.cpp"
+#line 6790 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 156: /* type_qualifier: type_qualifier single_type_qualifier  */
-#line 1386 "MachineIndependent/glslang.y"
+#line 1385 "MachineIndependent/glslang.y"
                                            {
         (yyval.interm.type) = (yyvsp[-1].interm.type);
         if ((yyval.interm.type).basicType == EbtVoid)
@@ -6811,151 +6799,151 @@
         (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
         parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
     }
-#line 6815 "MachineIndependent/glslang_tab.cpp"
+#line 6803 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 157: /* single_type_qualifier: storage_qualifier  */
-#line 1397 "MachineIndependent/glslang.y"
+#line 1396 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6823 "MachineIndependent/glslang_tab.cpp"
+#line 6811 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 158: /* single_type_qualifier: layout_qualifier  */
-#line 1400 "MachineIndependent/glslang.y"
+#line 1399 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6831 "MachineIndependent/glslang_tab.cpp"
+#line 6819 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 159: /* single_type_qualifier: precision_qualifier  */
-#line 1403 "MachineIndependent/glslang.y"
+#line 1402 "MachineIndependent/glslang.y"
                           {
         parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6840 "MachineIndependent/glslang_tab.cpp"
+#line 6828 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 160: /* single_type_qualifier: interpolation_qualifier  */
-#line 1407 "MachineIndependent/glslang.y"
+#line 1406 "MachineIndependent/glslang.y"
                               {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6849 "MachineIndependent/glslang_tab.cpp"
+#line 6837 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 161: /* single_type_qualifier: invariant_qualifier  */
-#line 1411 "MachineIndependent/glslang.y"
+#line 1410 "MachineIndependent/glslang.y"
                           {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6858 "MachineIndependent/glslang_tab.cpp"
+#line 6846 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 162: /* single_type_qualifier: precise_qualifier  */
-#line 1416 "MachineIndependent/glslang.y"
+#line 1415 "MachineIndependent/glslang.y"
                         {
         // allow inheritance of storage qualifier from block declaration
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6867 "MachineIndependent/glslang_tab.cpp"
+#line 6855 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 163: /* single_type_qualifier: non_uniform_qualifier  */
-#line 1420 "MachineIndependent/glslang.y"
+#line 1419 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6875 "MachineIndependent/glslang_tab.cpp"
+#line 6863 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 164: /* single_type_qualifier: spirv_storage_class_qualifier  */
-#line 1423 "MachineIndependent/glslang.y"
+#line 1422 "MachineIndependent/glslang.y"
                                     {
         parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6885 "MachineIndependent/glslang_tab.cpp"
+#line 6873 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 165: /* single_type_qualifier: spirv_decorate_qualifier  */
-#line 1428 "MachineIndependent/glslang.y"
+#line 1427 "MachineIndependent/glslang.y"
                                {
         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 6894 "MachineIndependent/glslang_tab.cpp"
+#line 6882 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 166: /* single_type_qualifier: SPIRV_BY_REFERENCE  */
-#line 1432 "MachineIndependent/glslang.y"
+#line 1431 "MachineIndependent/glslang.y"
                          {
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.setSpirvByReference();
     }
-#line 6904 "MachineIndependent/glslang_tab.cpp"
+#line 6892 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 167: /* single_type_qualifier: SPIRV_LITERAL  */
-#line 1437 "MachineIndependent/glslang.y"
+#line 1436 "MachineIndependent/glslang.y"
                     {
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.setSpirvLiteral();
     }
-#line 6914 "MachineIndependent/glslang_tab.cpp"
+#line 6902 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 168: /* storage_qualifier: CONST  */
-#line 1446 "MachineIndependent/glslang.y"
+#line 1445 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
     }
-#line 6923 "MachineIndependent/glslang_tab.cpp"
+#line 6911 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 169: /* storage_qualifier: INOUT  */
-#line 1450 "MachineIndependent/glslang.y"
+#line 1449 "MachineIndependent/glslang.y"
             {
         parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqInOut;
     }
-#line 6933 "MachineIndependent/glslang_tab.cpp"
+#line 6921 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 170: /* storage_qualifier: IN  */
-#line 1455 "MachineIndependent/glslang.y"
+#line 1454 "MachineIndependent/glslang.y"
          {
         parseContext.globalCheck((yyvsp[0].lex).loc, "in");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
         (yyval.interm.type).qualifier.storage = EvqIn;
     }
-#line 6944 "MachineIndependent/glslang_tab.cpp"
+#line 6932 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 171: /* storage_qualifier: OUT  */
-#line 1461 "MachineIndependent/glslang.y"
+#line 1460 "MachineIndependent/glslang.y"
           {
         parseContext.globalCheck((yyvsp[0].lex).loc, "out");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
         (yyval.interm.type).qualifier.storage = EvqOut;
     }
-#line 6955 "MachineIndependent/glslang_tab.cpp"
+#line 6943 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 172: /* storage_qualifier: CENTROID  */
-#line 1467 "MachineIndependent/glslang.y"
+#line 1466 "MachineIndependent/glslang.y"
                {
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
         parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
@@ -6963,21 +6951,21 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.centroid = true;
     }
-#line 6967 "MachineIndependent/glslang_tab.cpp"
+#line 6955 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 173: /* storage_qualifier: UNIFORM  */
-#line 1474 "MachineIndependent/glslang.y"
+#line 1473 "MachineIndependent/glslang.y"
               {
         parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqUniform;
     }
-#line 6977 "MachineIndependent/glslang_tab.cpp"
+#line 6965 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 174: /* storage_qualifier: SHARED  */
-#line 1479 "MachineIndependent/glslang.y"
+#line 1478 "MachineIndependent/glslang.y"
              {
         parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
         parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
@@ -6986,21 +6974,21 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqShared;
     }
-#line 6990 "MachineIndependent/glslang_tab.cpp"
+#line 6978 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 175: /* storage_qualifier: BUFFER  */
-#line 1487 "MachineIndependent/glslang.y"
+#line 1486 "MachineIndependent/glslang.y"
              {
         parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqBuffer;
     }
-#line 7000 "MachineIndependent/glslang_tab.cpp"
+#line 6988 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 176: /* storage_qualifier: ATTRIBUTE  */
-#line 1493 "MachineIndependent/glslang.y"
+#line 1492 "MachineIndependent/glslang.y"
                 {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
@@ -7013,11 +7001,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqVaryingIn;
     }
-#line 7017 "MachineIndependent/glslang_tab.cpp"
+#line 7005 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 177: /* storage_qualifier: VARYING  */
-#line 1505 "MachineIndependent/glslang.y"
+#line 1504 "MachineIndependent/glslang.y"
               {
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
         parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
@@ -7032,32 +7020,32 @@
         else
             (yyval.interm.type).qualifier.storage = EvqVaryingIn;
     }
-#line 7036 "MachineIndependent/glslang_tab.cpp"
+#line 7024 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 178: /* storage_qualifier: PATCH  */
-#line 1519 "MachineIndependent/glslang.y"
+#line 1518 "MachineIndependent/glslang.y"
             {
         parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.patch = true;
     }
-#line 7047 "MachineIndependent/glslang_tab.cpp"
+#line 7035 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 179: /* storage_qualifier: SAMPLE  */
-#line 1525 "MachineIndependent/glslang.y"
+#line 1524 "MachineIndependent/glslang.y"
              {
         parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.sample = true;
     }
-#line 7057 "MachineIndependent/glslang_tab.cpp"
+#line 7045 "MachineIndependent/glslang_tab.cpp"
     break;
 
   case 180: /* storage_qualifier: HITATTRNV  */
-#line 1530 "MachineIndependent/glslang.y"
+#line 1529 "MachineIndependent/glslang.y"
                 {
         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -7066,24 +7054,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqHitAttr;
     }
-#line 7070 "MachineIndependent/glslang_tab.cpp"
+#line 7058 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 181: /* storage_qualifier: HITOBJECTATTRNV  */
-#line 1538 "MachineIndependent/glslang.y"
-                          {
-        parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
-        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
-            | EShLangMissMask), "hitObjectAttributeNV");
-        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV");
-        (yyval.interm.type).init((yyvsp[0].lex).loc);
-        (yyval.interm.type).qualifier.storage = EvqHitObjectAttrNV;
-	}
-#line 7083 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 182: /* storage_qualifier: HITATTREXT  */
-#line 1546 "MachineIndependent/glslang.y"
+  case 181: /* storage_qualifier: HITATTREXT  */
+#line 1537 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
@@ -7092,11 +7067,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqHitAttr;
     }
-#line 7096 "MachineIndependent/glslang_tab.cpp"
+#line 7071 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 183: /* storage_qualifier: PAYLOADNV  */
-#line 1554 "MachineIndependent/glslang.y"
+  case 182: /* storage_qualifier: PAYLOADNV  */
+#line 1545 "MachineIndependent/glslang.y"
                 {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -7105,11 +7080,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayload;
     }
-#line 7109 "MachineIndependent/glslang_tab.cpp"
+#line 7084 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 184: /* storage_qualifier: PAYLOADEXT  */
-#line 1562 "MachineIndependent/glslang.y"
+  case 183: /* storage_qualifier: PAYLOADEXT  */
+#line 1553 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
@@ -7118,11 +7093,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayload;
     }
-#line 7122 "MachineIndependent/glslang_tab.cpp"
+#line 7097 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 185: /* storage_qualifier: PAYLOADINNV  */
-#line 1570 "MachineIndependent/glslang.y"
+  case 184: /* storage_qualifier: PAYLOADINNV  */
+#line 1561 "MachineIndependent/glslang.y"
                   {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -7131,11 +7106,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
     }
-#line 7135 "MachineIndependent/glslang_tab.cpp"
+#line 7110 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 186: /* storage_qualifier: PAYLOADINEXT  */
-#line 1578 "MachineIndependent/glslang.y"
+  case 185: /* storage_qualifier: PAYLOADINEXT  */
+#line 1569 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
@@ -7144,11 +7119,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqPayloadIn;
     }
-#line 7148 "MachineIndependent/glslang_tab.cpp"
+#line 7123 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 187: /* storage_qualifier: CALLDATANV  */
-#line 1586 "MachineIndependent/glslang.y"
+  case 186: /* storage_qualifier: CALLDATANV  */
+#line 1577 "MachineIndependent/glslang.y"
                  {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -7157,11 +7132,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableData;
     }
-#line 7161 "MachineIndependent/glslang_tab.cpp"
+#line 7136 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 188: /* storage_qualifier: CALLDATAEXT  */
-#line 1594 "MachineIndependent/glslang.y"
+  case 187: /* storage_qualifier: CALLDATAEXT  */
+#line 1585 "MachineIndependent/glslang.y"
                   {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
@@ -7170,11 +7145,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableData;
     }
-#line 7174 "MachineIndependent/glslang_tab.cpp"
+#line 7149 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 189: /* storage_qualifier: CALLDATAINNV  */
-#line 1602 "MachineIndependent/glslang.y"
+  case 188: /* storage_qualifier: CALLDATAINNV  */
+#line 1593 "MachineIndependent/glslang.y"
                    {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
@@ -7182,11 +7157,11 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
     }
-#line 7186 "MachineIndependent/glslang_tab.cpp"
+#line 7161 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 190: /* storage_qualifier: CALLDATAINEXT  */
-#line 1609 "MachineIndependent/glslang.y"
+  case 189: /* storage_qualifier: CALLDATAINEXT  */
+#line 1600 "MachineIndependent/glslang.y"
                     {
         parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
         parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
@@ -7194,138 +7169,138 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
     }
-#line 7198 "MachineIndependent/glslang_tab.cpp"
+#line 7173 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 191: /* storage_qualifier: COHERENT  */
-#line 1616 "MachineIndependent/glslang.y"
+  case 190: /* storage_qualifier: COHERENT  */
+#line 1607 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.coherent = true;
     }
-#line 7207 "MachineIndependent/glslang_tab.cpp"
+#line 7182 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 192: /* storage_qualifier: DEVICECOHERENT  */
-#line 1620 "MachineIndependent/glslang.y"
+  case 191: /* storage_qualifier: DEVICECOHERENT  */
+#line 1611 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
         (yyval.interm.type).qualifier.devicecoherent = true;
     }
-#line 7217 "MachineIndependent/glslang_tab.cpp"
+#line 7192 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 193: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
-#line 1625 "MachineIndependent/glslang.y"
+  case 192: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
+#line 1616 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
         (yyval.interm.type).qualifier.queuefamilycoherent = true;
     }
-#line 7227 "MachineIndependent/glslang_tab.cpp"
+#line 7202 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 194: /* storage_qualifier: WORKGROUPCOHERENT  */
-#line 1630 "MachineIndependent/glslang.y"
+  case 193: /* storage_qualifier: WORKGROUPCOHERENT  */
+#line 1621 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
         (yyval.interm.type).qualifier.workgroupcoherent = true;
     }
-#line 7237 "MachineIndependent/glslang_tab.cpp"
+#line 7212 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 195: /* storage_qualifier: SUBGROUPCOHERENT  */
-#line 1635 "MachineIndependent/glslang.y"
+  case 194: /* storage_qualifier: SUBGROUPCOHERENT  */
+#line 1626 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
         (yyval.interm.type).qualifier.subgroupcoherent = true;
     }
-#line 7247 "MachineIndependent/glslang_tab.cpp"
+#line 7222 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 196: /* storage_qualifier: NONPRIVATE  */
-#line 1640 "MachineIndependent/glslang.y"
+  case 195: /* storage_qualifier: NONPRIVATE  */
+#line 1631 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
         (yyval.interm.type).qualifier.nonprivate = true;
     }
-#line 7257 "MachineIndependent/glslang_tab.cpp"
+#line 7232 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 197: /* storage_qualifier: SHADERCALLCOHERENT  */
-#line 1645 "MachineIndependent/glslang.y"
+  case 196: /* storage_qualifier: SHADERCALLCOHERENT  */
+#line 1636 "MachineIndependent/glslang.y"
                          {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
         (yyval.interm.type).qualifier.shadercallcoherent = true;
     }
-#line 7267 "MachineIndependent/glslang_tab.cpp"
+#line 7242 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 198: /* storage_qualifier: VOLATILE  */
-#line 1650 "MachineIndependent/glslang.y"
+  case 197: /* storage_qualifier: VOLATILE  */
+#line 1641 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.volatil = true;
     }
-#line 7276 "MachineIndependent/glslang_tab.cpp"
+#line 7251 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 199: /* storage_qualifier: RESTRICT  */
-#line 1654 "MachineIndependent/glslang.y"
+  case 198: /* storage_qualifier: RESTRICT  */
+#line 1645 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.restrict = true;
     }
-#line 7285 "MachineIndependent/glslang_tab.cpp"
+#line 7260 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 200: /* storage_qualifier: READONLY  */
-#line 1658 "MachineIndependent/glslang.y"
+  case 199: /* storage_qualifier: READONLY  */
+#line 1649 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.readonly = true;
     }
-#line 7294 "MachineIndependent/glslang_tab.cpp"
+#line 7269 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 201: /* storage_qualifier: WRITEONLY  */
-#line 1662 "MachineIndependent/glslang.y"
+  case 200: /* storage_qualifier: WRITEONLY  */
+#line 1653 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.writeonly = true;
     }
-#line 7303 "MachineIndependent/glslang_tab.cpp"
+#line 7278 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 202: /* storage_qualifier: SUBROUTINE  */
-#line 1666 "MachineIndependent/glslang.y"
+  case 201: /* storage_qualifier: SUBROUTINE  */
+#line 1657 "MachineIndependent/glslang.y"
                  {
         parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
         parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
         parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
         (yyval.interm.type).init((yyvsp[0].lex).loc);
     }
-#line 7314 "MachineIndependent/glslang_tab.cpp"
+#line 7289 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 203: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
-#line 1672 "MachineIndependent/glslang.y"
+  case 202: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
+#line 1663 "MachineIndependent/glslang.y"
                                                        {
         parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
         parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
         parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
         (yyval.interm.type).init((yyvsp[-3].lex).loc);
     }
-#line 7325 "MachineIndependent/glslang_tab.cpp"
+#line 7300 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 204: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT  */
-#line 1678 "MachineIndependent/glslang.y"
+  case 203: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT  */
+#line 1669 "MachineIndependent/glslang.y"
                               {
         // No need for profile version or extension check. Shader stage already checks both.
         parseContext.globalCheck((yyvsp[0].lex).loc, "taskPayloadSharedEXT");
@@ -7333,48 +7308,48 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqtaskPayloadSharedEXT;
     }
-#line 7337 "MachineIndependent/glslang_tab.cpp"
+#line 7312 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 205: /* non_uniform_qualifier: NONUNIFORM  */
-#line 1690 "MachineIndependent/glslang.y"
+  case 204: /* non_uniform_qualifier: NONUNIFORM  */
+#line 1681 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc);
         (yyval.interm.type).qualifier.nonUniform = true;
     }
-#line 7346 "MachineIndependent/glslang_tab.cpp"
+#line 7321 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 206: /* type_name_list: IDENTIFIER  */
-#line 1697 "MachineIndependent/glslang.y"
+  case 205: /* type_name_list: IDENTIFIER  */
+#line 1688 "MachineIndependent/glslang.y"
                  {
         // TODO
     }
-#line 7354 "MachineIndependent/glslang_tab.cpp"
+#line 7329 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 207: /* type_name_list: type_name_list COMMA IDENTIFIER  */
-#line 1700 "MachineIndependent/glslang.y"
+  case 206: /* type_name_list: type_name_list COMMA IDENTIFIER  */
+#line 1691 "MachineIndependent/glslang.y"
                                       {
         // TODO: 4.0 semantics: subroutines
         // 1) make sure each identifier is a type declared earlier with SUBROUTINE
         // 2) save all of the identifiers for future comparison with the declared function
     }
-#line 7364 "MachineIndependent/glslang_tab.cpp"
+#line 7339 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 208: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
-#line 1709 "MachineIndependent/glslang.y"
+  case 207: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
+#line 1700 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.type) = (yyvsp[-1].interm.type);
         (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
         (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
     }
-#line 7374 "MachineIndependent/glslang_tab.cpp"
+#line 7349 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 209: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
-#line 1714 "MachineIndependent/glslang.y"
+  case 208: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
+#line 1705 "MachineIndependent/glslang.y"
                                                                            {
         parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
         (yyval.interm.type) = (yyvsp[-2].interm.type);
@@ -7382,21 +7357,21 @@
         (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
         (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
     }
-#line 7386 "MachineIndependent/glslang_tab.cpp"
+#line 7361 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 210: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
-#line 1724 "MachineIndependent/glslang.y"
+  case 209: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
+#line 1715 "MachineIndependent/glslang.y"
                                  {
         (yyval.interm).loc = (yyvsp[-1].lex).loc;
         (yyval.interm).arraySizes = new TArraySizes;
         (yyval.interm).arraySizes->addInnerSize();
     }
-#line 7396 "MachineIndependent/glslang_tab.cpp"
+#line 7371 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 211: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
-#line 1729 "MachineIndependent/glslang.y"
+  case 210: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
+#line 1720 "MachineIndependent/glslang.y"
                                                         {
         (yyval.interm).loc = (yyvsp[-2].lex).loc;
         (yyval.interm).arraySizes = new TArraySizes;
@@ -7405,20 +7380,20 @@
         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
         (yyval.interm).arraySizes->addInnerSize(size);
     }
-#line 7409 "MachineIndependent/glslang_tab.cpp"
+#line 7384 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 212: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
-#line 1737 "MachineIndependent/glslang.y"
+  case 211: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
+#line 1728 "MachineIndependent/glslang.y"
                                                  {
         (yyval.interm) = (yyvsp[-2].interm);
         (yyval.interm).arraySizes->addInnerSize();
     }
-#line 7418 "MachineIndependent/glslang_tab.cpp"
+#line 7393 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 213: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
-#line 1741 "MachineIndependent/glslang.y"
+  case 212: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
+#line 1732 "MachineIndependent/glslang.y"
                                                                         {
         (yyval.interm) = (yyvsp[-3].interm);
 
@@ -7426,35 +7401,35 @@
         parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
         (yyval.interm).arraySizes->addInnerSize(size);
     }
-#line 7430 "MachineIndependent/glslang_tab.cpp"
+#line 7405 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 214: /* type_parameter_specifier_opt: type_parameter_specifier  */
-#line 1751 "MachineIndependent/glslang.y"
+  case 213: /* type_parameter_specifier_opt: type_parameter_specifier  */
+#line 1742 "MachineIndependent/glslang.y"
                                {
         (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
     }
-#line 7438 "MachineIndependent/glslang_tab.cpp"
+#line 7413 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 215: /* type_parameter_specifier_opt: %empty  */
-#line 1754 "MachineIndependent/glslang.y"
+  case 214: /* type_parameter_specifier_opt: %empty  */
+#line 1745 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.typeParameters) = 0;
     }
-#line 7446 "MachineIndependent/glslang_tab.cpp"
+#line 7421 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 216: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
-#line 1760 "MachineIndependent/glslang.y"
+  case 215: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
+#line 1751 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
     }
-#line 7454 "MachineIndependent/glslang_tab.cpp"
+#line 7429 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 217: /* type_parameter_specifier_list: unary_expression  */
-#line 1766 "MachineIndependent/glslang.y"
+  case 216: /* type_parameter_specifier_list: unary_expression  */
+#line 1757 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.typeParameters) = new TArraySizes;
 
@@ -7462,11 +7437,11 @@
         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
         (yyval.interm.typeParameters)->addInnerSize(size);
     }
-#line 7466 "MachineIndependent/glslang_tab.cpp"
+#line 7441 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 218: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
-#line 1773 "MachineIndependent/glslang.y"
+  case 217: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
+#line 1764 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
 
@@ -7474,300 +7449,300 @@
         parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
         (yyval.interm.typeParameters)->addInnerSize(size);
     }
-#line 7478 "MachineIndependent/glslang_tab.cpp"
+#line 7453 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 219: /* type_specifier_nonarray: VOID  */
-#line 1783 "MachineIndependent/glslang.y"
+  case 218: /* type_specifier_nonarray: VOID  */
+#line 1774 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtVoid;
     }
-#line 7487 "MachineIndependent/glslang_tab.cpp"
+#line 7462 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 220: /* type_specifier_nonarray: FLOAT  */
-#line 1787 "MachineIndependent/glslang.y"
+  case 219: /* type_specifier_nonarray: FLOAT  */
+#line 1778 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
     }
-#line 7496 "MachineIndependent/glslang_tab.cpp"
+#line 7471 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 221: /* type_specifier_nonarray: INT  */
-#line 1791 "MachineIndependent/glslang.y"
+  case 220: /* type_specifier_nonarray: INT  */
+#line 1782 "MachineIndependent/glslang.y"
           {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
     }
-#line 7505 "MachineIndependent/glslang_tab.cpp"
+#line 7480 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 222: /* type_specifier_nonarray: UINT  */
-#line 1795 "MachineIndependent/glslang.y"
+  case 221: /* type_specifier_nonarray: UINT  */
+#line 1786 "MachineIndependent/glslang.y"
            {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
     }
-#line 7515 "MachineIndependent/glslang_tab.cpp"
+#line 7490 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 223: /* type_specifier_nonarray: BOOL  */
+  case 222: /* type_specifier_nonarray: BOOL  */
+#line 1791 "MachineIndependent/glslang.y"
+           {
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtBool;
+    }
+#line 7499 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 223: /* type_specifier_nonarray: VEC2  */
+#line 1795 "MachineIndependent/glslang.y"
+           {
+        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+        (yyval.interm.type).basicType = EbtFloat;
+        (yyval.interm.type).setVector(2);
+    }
+#line 7509 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 224: /* type_specifier_nonarray: VEC3  */
 #line 1800 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtBool;
-    }
-#line 7524 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 224: /* type_specifier_nonarray: VEC2  */
-#line 1804 "MachineIndependent/glslang.y"
-           {
-        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-        (yyval.interm.type).basicType = EbtFloat;
-        (yyval.interm.type).setVector(2);
-    }
-#line 7534 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 225: /* type_specifier_nonarray: VEC3  */
-#line 1809 "MachineIndependent/glslang.y"
-           {
-        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setVector(3);
     }
-#line 7544 "MachineIndependent/glslang_tab.cpp"
+#line 7519 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 226: /* type_specifier_nonarray: VEC4  */
-#line 1814 "MachineIndependent/glslang.y"
+  case 225: /* type_specifier_nonarray: VEC4  */
+#line 1805 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setVector(4);
     }
-#line 7554 "MachineIndependent/glslang_tab.cpp"
+#line 7529 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 227: /* type_specifier_nonarray: BVEC2  */
-#line 1819 "MachineIndependent/glslang.y"
+  case 226: /* type_specifier_nonarray: BVEC2  */
+#line 1810 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtBool;
         (yyval.interm.type).setVector(2);
     }
-#line 7564 "MachineIndependent/glslang_tab.cpp"
+#line 7539 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 228: /* type_specifier_nonarray: BVEC3  */
-#line 1824 "MachineIndependent/glslang.y"
+  case 227: /* type_specifier_nonarray: BVEC3  */
+#line 1815 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtBool;
         (yyval.interm.type).setVector(3);
     }
-#line 7574 "MachineIndependent/glslang_tab.cpp"
+#line 7549 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 229: /* type_specifier_nonarray: BVEC4  */
-#line 1829 "MachineIndependent/glslang.y"
+  case 228: /* type_specifier_nonarray: BVEC4  */
+#line 1820 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtBool;
         (yyval.interm.type).setVector(4);
     }
-#line 7584 "MachineIndependent/glslang_tab.cpp"
+#line 7559 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 230: /* type_specifier_nonarray: IVEC2  */
-#line 1834 "MachineIndependent/glslang.y"
+  case 229: /* type_specifier_nonarray: IVEC2  */
+#line 1825 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(2);
     }
-#line 7594 "MachineIndependent/glslang_tab.cpp"
+#line 7569 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 231: /* type_specifier_nonarray: IVEC3  */
-#line 1839 "MachineIndependent/glslang.y"
+  case 230: /* type_specifier_nonarray: IVEC3  */
+#line 1830 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(3);
     }
-#line 7604 "MachineIndependent/glslang_tab.cpp"
+#line 7579 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 232: /* type_specifier_nonarray: IVEC4  */
-#line 1844 "MachineIndependent/glslang.y"
+  case 231: /* type_specifier_nonarray: IVEC4  */
+#line 1835 "MachineIndependent/glslang.y"
             {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(4);
     }
-#line 7614 "MachineIndependent/glslang_tab.cpp"
+#line 7589 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 233: /* type_specifier_nonarray: UVEC2  */
-#line 1849 "MachineIndependent/glslang.y"
+  case 232: /* type_specifier_nonarray: UVEC2  */
+#line 1840 "MachineIndependent/glslang.y"
             {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(2);
     }
-#line 7625 "MachineIndependent/glslang_tab.cpp"
+#line 7600 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 234: /* type_specifier_nonarray: UVEC3  */
-#line 1855 "MachineIndependent/glslang.y"
+  case 233: /* type_specifier_nonarray: UVEC3  */
+#line 1846 "MachineIndependent/glslang.y"
             {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(3);
     }
-#line 7636 "MachineIndependent/glslang_tab.cpp"
+#line 7611 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 235: /* type_specifier_nonarray: UVEC4  */
-#line 1861 "MachineIndependent/glslang.y"
+  case 234: /* type_specifier_nonarray: UVEC4  */
+#line 1852 "MachineIndependent/glslang.y"
             {
         parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(4);
     }
-#line 7647 "MachineIndependent/glslang_tab.cpp"
+#line 7622 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 236: /* type_specifier_nonarray: MAT2  */
-#line 1867 "MachineIndependent/glslang.y"
+  case 235: /* type_specifier_nonarray: MAT2  */
+#line 1858 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 7657 "MachineIndependent/glslang_tab.cpp"
+#line 7632 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 237: /* type_specifier_nonarray: MAT3  */
-#line 1872 "MachineIndependent/glslang.y"
+  case 236: /* type_specifier_nonarray: MAT3  */
+#line 1863 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 7667 "MachineIndependent/glslang_tab.cpp"
+#line 7642 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 238: /* type_specifier_nonarray: MAT4  */
-#line 1877 "MachineIndependent/glslang.y"
+  case 237: /* type_specifier_nonarray: MAT4  */
+#line 1868 "MachineIndependent/glslang.y"
            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 7677 "MachineIndependent/glslang_tab.cpp"
+#line 7652 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 239: /* type_specifier_nonarray: MAT2X2  */
-#line 1882 "MachineIndependent/glslang.y"
+  case 238: /* type_specifier_nonarray: MAT2X2  */
+#line 1873 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 7687 "MachineIndependent/glslang_tab.cpp"
+#line 7662 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 240: /* type_specifier_nonarray: MAT2X3  */
-#line 1887 "MachineIndependent/glslang.y"
+  case 239: /* type_specifier_nonarray: MAT2X3  */
+#line 1878 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 3);
     }
-#line 7697 "MachineIndependent/glslang_tab.cpp"
+#line 7672 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 241: /* type_specifier_nonarray: MAT2X4  */
-#line 1892 "MachineIndependent/glslang.y"
+  case 240: /* type_specifier_nonarray: MAT2X4  */
+#line 1883 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 4);
     }
-#line 7707 "MachineIndependent/glslang_tab.cpp"
+#line 7682 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 242: /* type_specifier_nonarray: MAT3X2  */
-#line 1897 "MachineIndependent/glslang.y"
+  case 241: /* type_specifier_nonarray: MAT3X2  */
+#line 1888 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 2);
     }
-#line 7717 "MachineIndependent/glslang_tab.cpp"
+#line 7692 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 243: /* type_specifier_nonarray: MAT3X3  */
-#line 1902 "MachineIndependent/glslang.y"
+  case 242: /* type_specifier_nonarray: MAT3X3  */
+#line 1893 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 7727 "MachineIndependent/glslang_tab.cpp"
+#line 7702 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 244: /* type_specifier_nonarray: MAT3X4  */
-#line 1907 "MachineIndependent/glslang.y"
+  case 243: /* type_specifier_nonarray: MAT3X4  */
+#line 1898 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 4);
     }
-#line 7737 "MachineIndependent/glslang_tab.cpp"
+#line 7712 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 245: /* type_specifier_nonarray: MAT4X2  */
-#line 1912 "MachineIndependent/glslang.y"
+  case 244: /* type_specifier_nonarray: MAT4X2  */
+#line 1903 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 2);
     }
-#line 7747 "MachineIndependent/glslang_tab.cpp"
+#line 7722 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 246: /* type_specifier_nonarray: MAT4X3  */
-#line 1917 "MachineIndependent/glslang.y"
+  case 245: /* type_specifier_nonarray: MAT4X3  */
+#line 1908 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 3);
     }
-#line 7757 "MachineIndependent/glslang_tab.cpp"
+#line 7732 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 247: /* type_specifier_nonarray: MAT4X4  */
-#line 1922 "MachineIndependent/glslang.y"
+  case 246: /* type_specifier_nonarray: MAT4X4  */
+#line 1913 "MachineIndependent/glslang.y"
              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 7767 "MachineIndependent/glslang_tab.cpp"
+#line 7742 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 248: /* type_specifier_nonarray: DOUBLE  */
-#line 1928 "MachineIndependent/glslang.y"
+  case 247: /* type_specifier_nonarray: DOUBLE  */
+#line 1919 "MachineIndependent/glslang.y"
              {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7775,121 +7750,121 @@
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
     }
-#line 7779 "MachineIndependent/glslang_tab.cpp"
+#line 7754 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 249: /* type_specifier_nonarray: FLOAT16_T  */
-#line 1935 "MachineIndependent/glslang.y"
+  case 248: /* type_specifier_nonarray: FLOAT16_T  */
+#line 1926 "MachineIndependent/glslang.y"
                 {
         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
     }
-#line 7789 "MachineIndependent/glslang_tab.cpp"
+#line 7764 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 250: /* type_specifier_nonarray: FLOAT32_T  */
-#line 1940 "MachineIndependent/glslang.y"
+  case 249: /* type_specifier_nonarray: FLOAT32_T  */
+#line 1931 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
     }
-#line 7799 "MachineIndependent/glslang_tab.cpp"
+#line 7774 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 251: /* type_specifier_nonarray: FLOAT64_T  */
-#line 1945 "MachineIndependent/glslang.y"
+  case 250: /* type_specifier_nonarray: FLOAT64_T  */
+#line 1936 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
     }
-#line 7809 "MachineIndependent/glslang_tab.cpp"
+#line 7784 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 252: /* type_specifier_nonarray: INT8_T  */
-#line 1950 "MachineIndependent/glslang.y"
+  case 251: /* type_specifier_nonarray: INT8_T  */
+#line 1941 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt8;
     }
-#line 7819 "MachineIndependent/glslang_tab.cpp"
+#line 7794 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 253: /* type_specifier_nonarray: UINT8_T  */
-#line 1955 "MachineIndependent/glslang.y"
+  case 252: /* type_specifier_nonarray: UINT8_T  */
+#line 1946 "MachineIndependent/glslang.y"
               {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint8;
     }
-#line 7829 "MachineIndependent/glslang_tab.cpp"
+#line 7804 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 254: /* type_specifier_nonarray: INT16_T  */
-#line 1960 "MachineIndependent/glslang.y"
+  case 253: /* type_specifier_nonarray: INT16_T  */
+#line 1951 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt16;
     }
-#line 7839 "MachineIndependent/glslang_tab.cpp"
+#line 7814 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 255: /* type_specifier_nonarray: UINT16_T  */
-#line 1965 "MachineIndependent/glslang.y"
+  case 254: /* type_specifier_nonarray: UINT16_T  */
+#line 1956 "MachineIndependent/glslang.y"
                {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint16;
     }
-#line 7849 "MachineIndependent/glslang_tab.cpp"
+#line 7824 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 256: /* type_specifier_nonarray: INT32_T  */
-#line 1970 "MachineIndependent/glslang.y"
+  case 255: /* type_specifier_nonarray: INT32_T  */
+#line 1961 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
     }
-#line 7859 "MachineIndependent/glslang_tab.cpp"
+#line 7834 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 257: /* type_specifier_nonarray: UINT32_T  */
-#line 1975 "MachineIndependent/glslang.y"
+  case 256: /* type_specifier_nonarray: UINT32_T  */
+#line 1966 "MachineIndependent/glslang.y"
                {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
     }
-#line 7869 "MachineIndependent/glslang_tab.cpp"
+#line 7844 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 258: /* type_specifier_nonarray: INT64_T  */
-#line 1980 "MachineIndependent/glslang.y"
+  case 257: /* type_specifier_nonarray: INT64_T  */
+#line 1971 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt64;
     }
-#line 7879 "MachineIndependent/glslang_tab.cpp"
+#line 7854 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 259: /* type_specifier_nonarray: UINT64_T  */
-#line 1985 "MachineIndependent/glslang.y"
+  case 258: /* type_specifier_nonarray: UINT64_T  */
+#line 1976 "MachineIndependent/glslang.y"
                {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint64;
     }
-#line 7889 "MachineIndependent/glslang_tab.cpp"
+#line 7864 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 260: /* type_specifier_nonarray: DVEC2  */
-#line 1990 "MachineIndependent/glslang.y"
+  case 259: /* type_specifier_nonarray: DVEC2  */
+#line 1981 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7898,11 +7873,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(2);
     }
-#line 7902 "MachineIndependent/glslang_tab.cpp"
+#line 7877 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 261: /* type_specifier_nonarray: DVEC3  */
-#line 1998 "MachineIndependent/glslang.y"
+  case 260: /* type_specifier_nonarray: DVEC3  */
+#line 1989 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7911,11 +7886,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(3);
     }
-#line 7915 "MachineIndependent/glslang_tab.cpp"
+#line 7890 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 262: /* type_specifier_nonarray: DVEC4  */
-#line 2006 "MachineIndependent/glslang.y"
+  case 261: /* type_specifier_nonarray: DVEC4  */
+#line 1997 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -7924,374 +7899,374 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(4);
     }
-#line 7928 "MachineIndependent/glslang_tab.cpp"
+#line 7903 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 263: /* type_specifier_nonarray: F16VEC2  */
-#line 2014 "MachineIndependent/glslang.y"
+  case 262: /* type_specifier_nonarray: F16VEC2  */
+#line 2005 "MachineIndependent/glslang.y"
               {
         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setVector(2);
     }
-#line 7939 "MachineIndependent/glslang_tab.cpp"
+#line 7914 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 264: /* type_specifier_nonarray: F16VEC3  */
-#line 2020 "MachineIndependent/glslang.y"
+  case 263: /* type_specifier_nonarray: F16VEC3  */
+#line 2011 "MachineIndependent/glslang.y"
               {
         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setVector(3);
     }
-#line 7950 "MachineIndependent/glslang_tab.cpp"
+#line 7925 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 265: /* type_specifier_nonarray: F16VEC4  */
-#line 2026 "MachineIndependent/glslang.y"
+  case 264: /* type_specifier_nonarray: F16VEC4  */
+#line 2017 "MachineIndependent/glslang.y"
               {
         parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setVector(4);
     }
-#line 7961 "MachineIndependent/glslang_tab.cpp"
+#line 7936 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 266: /* type_specifier_nonarray: F32VEC2  */
-#line 2032 "MachineIndependent/glslang.y"
+  case 265: /* type_specifier_nonarray: F32VEC2  */
+#line 2023 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setVector(2);
     }
-#line 7972 "MachineIndependent/glslang_tab.cpp"
+#line 7947 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 267: /* type_specifier_nonarray: F32VEC3  */
-#line 2038 "MachineIndependent/glslang.y"
+  case 266: /* type_specifier_nonarray: F32VEC3  */
+#line 2029 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setVector(3);
     }
-#line 7983 "MachineIndependent/glslang_tab.cpp"
+#line 7958 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 268: /* type_specifier_nonarray: F32VEC4  */
-#line 2044 "MachineIndependent/glslang.y"
+  case 267: /* type_specifier_nonarray: F32VEC4  */
+#line 2035 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setVector(4);
     }
-#line 7994 "MachineIndependent/glslang_tab.cpp"
+#line 7969 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 269: /* type_specifier_nonarray: F64VEC2  */
-#line 2050 "MachineIndependent/glslang.y"
+  case 268: /* type_specifier_nonarray: F64VEC2  */
+#line 2041 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(2);
     }
-#line 8005 "MachineIndependent/glslang_tab.cpp"
+#line 7980 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 270: /* type_specifier_nonarray: F64VEC3  */
-#line 2056 "MachineIndependent/glslang.y"
+  case 269: /* type_specifier_nonarray: F64VEC3  */
+#line 2047 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(3);
     }
-#line 8016 "MachineIndependent/glslang_tab.cpp"
+#line 7991 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 271: /* type_specifier_nonarray: F64VEC4  */
-#line 2062 "MachineIndependent/glslang.y"
+  case 270: /* type_specifier_nonarray: F64VEC4  */
+#line 2053 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setVector(4);
     }
-#line 8027 "MachineIndependent/glslang_tab.cpp"
+#line 8002 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 272: /* type_specifier_nonarray: I8VEC2  */
-#line 2068 "MachineIndependent/glslang.y"
+  case 271: /* type_specifier_nonarray: I8VEC2  */
+#line 2059 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt8;
         (yyval.interm.type).setVector(2);
     }
-#line 8038 "MachineIndependent/glslang_tab.cpp"
+#line 8013 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 273: /* type_specifier_nonarray: I8VEC3  */
-#line 2074 "MachineIndependent/glslang.y"
+  case 272: /* type_specifier_nonarray: I8VEC3  */
+#line 2065 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt8;
         (yyval.interm.type).setVector(3);
     }
-#line 8049 "MachineIndependent/glslang_tab.cpp"
+#line 8024 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 274: /* type_specifier_nonarray: I8VEC4  */
-#line 2080 "MachineIndependent/glslang.y"
+  case 273: /* type_specifier_nonarray: I8VEC4  */
+#line 2071 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt8;
         (yyval.interm.type).setVector(4);
     }
-#line 8060 "MachineIndependent/glslang_tab.cpp"
+#line 8035 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 275: /* type_specifier_nonarray: I16VEC2  */
-#line 2086 "MachineIndependent/glslang.y"
+  case 274: /* type_specifier_nonarray: I16VEC2  */
+#line 2077 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt16;
         (yyval.interm.type).setVector(2);
     }
-#line 8071 "MachineIndependent/glslang_tab.cpp"
+#line 8046 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 276: /* type_specifier_nonarray: I16VEC3  */
-#line 2092 "MachineIndependent/glslang.y"
+  case 275: /* type_specifier_nonarray: I16VEC3  */
+#line 2083 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt16;
         (yyval.interm.type).setVector(3);
     }
-#line 8082 "MachineIndependent/glslang_tab.cpp"
+#line 8057 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 277: /* type_specifier_nonarray: I16VEC4  */
-#line 2098 "MachineIndependent/glslang.y"
+  case 276: /* type_specifier_nonarray: I16VEC4  */
+#line 2089 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt16;
         (yyval.interm.type).setVector(4);
     }
-#line 8093 "MachineIndependent/glslang_tab.cpp"
+#line 8068 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 278: /* type_specifier_nonarray: I32VEC2  */
-#line 2104 "MachineIndependent/glslang.y"
+  case 277: /* type_specifier_nonarray: I32VEC2  */
+#line 2095 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(2);
     }
-#line 8104 "MachineIndependent/glslang_tab.cpp"
+#line 8079 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 279: /* type_specifier_nonarray: I32VEC3  */
-#line 2110 "MachineIndependent/glslang.y"
+  case 278: /* type_specifier_nonarray: I32VEC3  */
+#line 2101 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(3);
     }
-#line 8115 "MachineIndependent/glslang_tab.cpp"
+#line 8090 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 280: /* type_specifier_nonarray: I32VEC4  */
-#line 2116 "MachineIndependent/glslang.y"
+  case 279: /* type_specifier_nonarray: I32VEC4  */
+#line 2107 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).setVector(4);
     }
-#line 8126 "MachineIndependent/glslang_tab.cpp"
+#line 8101 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 281: /* type_specifier_nonarray: I64VEC2  */
-#line 2122 "MachineIndependent/glslang.y"
+  case 280: /* type_specifier_nonarray: I64VEC2  */
+#line 2113 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt64;
         (yyval.interm.type).setVector(2);
     }
-#line 8137 "MachineIndependent/glslang_tab.cpp"
+#line 8112 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 282: /* type_specifier_nonarray: I64VEC3  */
-#line 2128 "MachineIndependent/glslang.y"
+  case 281: /* type_specifier_nonarray: I64VEC3  */
+#line 2119 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt64;
         (yyval.interm.type).setVector(3);
     }
-#line 8148 "MachineIndependent/glslang_tab.cpp"
+#line 8123 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 283: /* type_specifier_nonarray: I64VEC4  */
-#line 2134 "MachineIndependent/glslang.y"
+  case 282: /* type_specifier_nonarray: I64VEC4  */
+#line 2125 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt64;
         (yyval.interm.type).setVector(4);
     }
-#line 8159 "MachineIndependent/glslang_tab.cpp"
+#line 8134 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 284: /* type_specifier_nonarray: U8VEC2  */
-#line 2140 "MachineIndependent/glslang.y"
+  case 283: /* type_specifier_nonarray: U8VEC2  */
+#line 2131 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint8;
         (yyval.interm.type).setVector(2);
     }
-#line 8170 "MachineIndependent/glslang_tab.cpp"
+#line 8145 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 285: /* type_specifier_nonarray: U8VEC3  */
-#line 2146 "MachineIndependent/glslang.y"
+  case 284: /* type_specifier_nonarray: U8VEC3  */
+#line 2137 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint8;
         (yyval.interm.type).setVector(3);
     }
-#line 8181 "MachineIndependent/glslang_tab.cpp"
+#line 8156 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 286: /* type_specifier_nonarray: U8VEC4  */
-#line 2152 "MachineIndependent/glslang.y"
+  case 285: /* type_specifier_nonarray: U8VEC4  */
+#line 2143 "MachineIndependent/glslang.y"
              {
         parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint8;
         (yyval.interm.type).setVector(4);
     }
-#line 8192 "MachineIndependent/glslang_tab.cpp"
+#line 8167 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 287: /* type_specifier_nonarray: U16VEC2  */
-#line 2158 "MachineIndependent/glslang.y"
+  case 286: /* type_specifier_nonarray: U16VEC2  */
+#line 2149 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint16;
         (yyval.interm.type).setVector(2);
     }
-#line 8203 "MachineIndependent/glslang_tab.cpp"
+#line 8178 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 288: /* type_specifier_nonarray: U16VEC3  */
-#line 2164 "MachineIndependent/glslang.y"
+  case 287: /* type_specifier_nonarray: U16VEC3  */
+#line 2155 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint16;
         (yyval.interm.type).setVector(3);
     }
-#line 8214 "MachineIndependent/glslang_tab.cpp"
+#line 8189 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 289: /* type_specifier_nonarray: U16VEC4  */
-#line 2170 "MachineIndependent/glslang.y"
+  case 288: /* type_specifier_nonarray: U16VEC4  */
+#line 2161 "MachineIndependent/glslang.y"
               {
         parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint16;
         (yyval.interm.type).setVector(4);
     }
-#line 8225 "MachineIndependent/glslang_tab.cpp"
+#line 8200 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 290: /* type_specifier_nonarray: U32VEC2  */
-#line 2176 "MachineIndependent/glslang.y"
+  case 289: /* type_specifier_nonarray: U32VEC2  */
+#line 2167 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(2);
     }
-#line 8236 "MachineIndependent/glslang_tab.cpp"
+#line 8211 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 291: /* type_specifier_nonarray: U32VEC3  */
-#line 2182 "MachineIndependent/glslang.y"
+  case 290: /* type_specifier_nonarray: U32VEC3  */
+#line 2173 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(3);
     }
-#line 8247 "MachineIndependent/glslang_tab.cpp"
+#line 8222 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 292: /* type_specifier_nonarray: U32VEC4  */
-#line 2188 "MachineIndependent/glslang.y"
+  case 291: /* type_specifier_nonarray: U32VEC4  */
+#line 2179 "MachineIndependent/glslang.y"
               {
         parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).setVector(4);
     }
-#line 8258 "MachineIndependent/glslang_tab.cpp"
+#line 8233 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 293: /* type_specifier_nonarray: U64VEC2  */
-#line 2194 "MachineIndependent/glslang.y"
+  case 292: /* type_specifier_nonarray: U64VEC2  */
+#line 2185 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint64;
         (yyval.interm.type).setVector(2);
     }
-#line 8269 "MachineIndependent/glslang_tab.cpp"
+#line 8244 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 294: /* type_specifier_nonarray: U64VEC3  */
-#line 2200 "MachineIndependent/glslang.y"
+  case 293: /* type_specifier_nonarray: U64VEC3  */
+#line 2191 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint64;
         (yyval.interm.type).setVector(3);
     }
-#line 8280 "MachineIndependent/glslang_tab.cpp"
+#line 8255 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 295: /* type_specifier_nonarray: U64VEC4  */
-#line 2206 "MachineIndependent/glslang.y"
+  case 294: /* type_specifier_nonarray: U64VEC4  */
+#line 2197 "MachineIndependent/glslang.y"
               {
         parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint64;
         (yyval.interm.type).setVector(4);
     }
-#line 8291 "MachineIndependent/glslang_tab.cpp"
+#line 8266 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 296: /* type_specifier_nonarray: DMAT2  */
-#line 2212 "MachineIndependent/glslang.y"
+  case 295: /* type_specifier_nonarray: DMAT2  */
+#line 2203 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8300,11 +8275,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8304 "MachineIndependent/glslang_tab.cpp"
+#line 8279 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 297: /* type_specifier_nonarray: DMAT3  */
-#line 2220 "MachineIndependent/glslang.y"
+  case 296: /* type_specifier_nonarray: DMAT3  */
+#line 2211 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8313,11 +8288,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8317 "MachineIndependent/glslang_tab.cpp"
+#line 8292 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 298: /* type_specifier_nonarray: DMAT4  */
-#line 2228 "MachineIndependent/glslang.y"
+  case 297: /* type_specifier_nonarray: DMAT4  */
+#line 2219 "MachineIndependent/glslang.y"
             {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8326,11 +8301,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8330 "MachineIndependent/glslang_tab.cpp"
+#line 8305 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 299: /* type_specifier_nonarray: DMAT2X2  */
-#line 2236 "MachineIndependent/glslang.y"
+  case 298: /* type_specifier_nonarray: DMAT2X2  */
+#line 2227 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8339,11 +8314,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8343 "MachineIndependent/glslang_tab.cpp"
+#line 8318 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 300: /* type_specifier_nonarray: DMAT2X3  */
-#line 2244 "MachineIndependent/glslang.y"
+  case 299: /* type_specifier_nonarray: DMAT2X3  */
+#line 2235 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8352,11 +8327,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 3);
     }
-#line 8356 "MachineIndependent/glslang_tab.cpp"
+#line 8331 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 301: /* type_specifier_nonarray: DMAT2X4  */
-#line 2252 "MachineIndependent/glslang.y"
+  case 300: /* type_specifier_nonarray: DMAT2X4  */
+#line 2243 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8365,11 +8340,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 4);
     }
-#line 8369 "MachineIndependent/glslang_tab.cpp"
+#line 8344 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 302: /* type_specifier_nonarray: DMAT3X2  */
-#line 2260 "MachineIndependent/glslang.y"
+  case 301: /* type_specifier_nonarray: DMAT3X2  */
+#line 2251 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8378,11 +8353,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 2);
     }
-#line 8382 "MachineIndependent/glslang_tab.cpp"
+#line 8357 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 303: /* type_specifier_nonarray: DMAT3X3  */
-#line 2268 "MachineIndependent/glslang.y"
+  case 302: /* type_specifier_nonarray: DMAT3X3  */
+#line 2259 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8391,11 +8366,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8395 "MachineIndependent/glslang_tab.cpp"
+#line 8370 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 304: /* type_specifier_nonarray: DMAT3X4  */
-#line 2276 "MachineIndependent/glslang.y"
+  case 303: /* type_specifier_nonarray: DMAT3X4  */
+#line 2267 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8404,11 +8379,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 4);
     }
-#line 8408 "MachineIndependent/glslang_tab.cpp"
+#line 8383 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 305: /* type_specifier_nonarray: DMAT4X2  */
-#line 2284 "MachineIndependent/glslang.y"
+  case 304: /* type_specifier_nonarray: DMAT4X2  */
+#line 2275 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8417,11 +8392,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 2);
     }
-#line 8421 "MachineIndependent/glslang_tab.cpp"
+#line 8396 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 306: /* type_specifier_nonarray: DMAT4X3  */
-#line 2292 "MachineIndependent/glslang.y"
+  case 305: /* type_specifier_nonarray: DMAT4X3  */
+#line 2283 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8430,11 +8405,11 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 3);
     }
-#line 8434 "MachineIndependent/glslang_tab.cpp"
+#line 8409 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 307: /* type_specifier_nonarray: DMAT4X4  */
-#line 2300 "MachineIndependent/glslang.y"
+  case 306: /* type_specifier_nonarray: DMAT4X4  */
+#line 2291 "MachineIndependent/glslang.y"
               {
         parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
         if (! parseContext.symbolTable.atBuiltInLevel())
@@ -8443,2228 +8418,2228 @@
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8447 "MachineIndependent/glslang_tab.cpp"
+#line 8422 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 308: /* type_specifier_nonarray: F16MAT2  */
-#line 2308 "MachineIndependent/glslang.y"
+  case 307: /* type_specifier_nonarray: F16MAT2  */
+#line 2299 "MachineIndependent/glslang.y"
               {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8458 "MachineIndependent/glslang_tab.cpp"
+#line 8433 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 309: /* type_specifier_nonarray: F16MAT3  */
-#line 2314 "MachineIndependent/glslang.y"
+  case 308: /* type_specifier_nonarray: F16MAT3  */
+#line 2305 "MachineIndependent/glslang.y"
               {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8469 "MachineIndependent/glslang_tab.cpp"
+#line 8444 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 310: /* type_specifier_nonarray: F16MAT4  */
-#line 2320 "MachineIndependent/glslang.y"
+  case 309: /* type_specifier_nonarray: F16MAT4  */
+#line 2311 "MachineIndependent/glslang.y"
               {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8480 "MachineIndependent/glslang_tab.cpp"
+#line 8455 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 311: /* type_specifier_nonarray: F16MAT2X2  */
-#line 2326 "MachineIndependent/glslang.y"
+  case 310: /* type_specifier_nonarray: F16MAT2X2  */
+#line 2317 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8491 "MachineIndependent/glslang_tab.cpp"
+#line 8466 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 312: /* type_specifier_nonarray: F16MAT2X3  */
-#line 2332 "MachineIndependent/glslang.y"
+  case 311: /* type_specifier_nonarray: F16MAT2X3  */
+#line 2323 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(2, 3);
     }
-#line 8502 "MachineIndependent/glslang_tab.cpp"
+#line 8477 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 313: /* type_specifier_nonarray: F16MAT2X4  */
-#line 2338 "MachineIndependent/glslang.y"
+  case 312: /* type_specifier_nonarray: F16MAT2X4  */
+#line 2329 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(2, 4);
     }
-#line 8513 "MachineIndependent/glslang_tab.cpp"
+#line 8488 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 314: /* type_specifier_nonarray: F16MAT3X2  */
-#line 2344 "MachineIndependent/glslang.y"
+  case 313: /* type_specifier_nonarray: F16MAT3X2  */
+#line 2335 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(3, 2);
     }
-#line 8524 "MachineIndependent/glslang_tab.cpp"
+#line 8499 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 315: /* type_specifier_nonarray: F16MAT3X3  */
-#line 2350 "MachineIndependent/glslang.y"
+  case 314: /* type_specifier_nonarray: F16MAT3X3  */
+#line 2341 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8535 "MachineIndependent/glslang_tab.cpp"
+#line 8510 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 316: /* type_specifier_nonarray: F16MAT3X4  */
-#line 2356 "MachineIndependent/glslang.y"
+  case 315: /* type_specifier_nonarray: F16MAT3X4  */
+#line 2347 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(3, 4);
     }
-#line 8546 "MachineIndependent/glslang_tab.cpp"
+#line 8521 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 317: /* type_specifier_nonarray: F16MAT4X2  */
-#line 2362 "MachineIndependent/glslang.y"
+  case 316: /* type_specifier_nonarray: F16MAT4X2  */
+#line 2353 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(4, 2);
     }
-#line 8557 "MachineIndependent/glslang_tab.cpp"
+#line 8532 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 318: /* type_specifier_nonarray: F16MAT4X3  */
-#line 2368 "MachineIndependent/glslang.y"
+  case 317: /* type_specifier_nonarray: F16MAT4X3  */
+#line 2359 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(4, 3);
     }
-#line 8568 "MachineIndependent/glslang_tab.cpp"
+#line 8543 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 319: /* type_specifier_nonarray: F16MAT4X4  */
-#line 2374 "MachineIndependent/glslang.y"
+  case 318: /* type_specifier_nonarray: F16MAT4X4  */
+#line 2365 "MachineIndependent/glslang.y"
                 {
         parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat16;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8579 "MachineIndependent/glslang_tab.cpp"
+#line 8554 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 320: /* type_specifier_nonarray: F32MAT2  */
-#line 2380 "MachineIndependent/glslang.y"
+  case 319: /* type_specifier_nonarray: F32MAT2  */
+#line 2371 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8590 "MachineIndependent/glslang_tab.cpp"
+#line 8565 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 321: /* type_specifier_nonarray: F32MAT3  */
-#line 2386 "MachineIndependent/glslang.y"
+  case 320: /* type_specifier_nonarray: F32MAT3  */
+#line 2377 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8601 "MachineIndependent/glslang_tab.cpp"
+#line 8576 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 322: /* type_specifier_nonarray: F32MAT4  */
-#line 2392 "MachineIndependent/glslang.y"
+  case 321: /* type_specifier_nonarray: F32MAT4  */
+#line 2383 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8612 "MachineIndependent/glslang_tab.cpp"
+#line 8587 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 323: /* type_specifier_nonarray: F32MAT2X2  */
-#line 2398 "MachineIndependent/glslang.y"
+  case 322: /* type_specifier_nonarray: F32MAT2X2  */
+#line 2389 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8623 "MachineIndependent/glslang_tab.cpp"
+#line 8598 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 324: /* type_specifier_nonarray: F32MAT2X3  */
-#line 2404 "MachineIndependent/glslang.y"
+  case 323: /* type_specifier_nonarray: F32MAT2X3  */
+#line 2395 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 3);
     }
-#line 8634 "MachineIndependent/glslang_tab.cpp"
+#line 8609 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 325: /* type_specifier_nonarray: F32MAT2X4  */
-#line 2410 "MachineIndependent/glslang.y"
+  case 324: /* type_specifier_nonarray: F32MAT2X4  */
+#line 2401 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(2, 4);
     }
-#line 8645 "MachineIndependent/glslang_tab.cpp"
+#line 8620 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 326: /* type_specifier_nonarray: F32MAT3X2  */
-#line 2416 "MachineIndependent/glslang.y"
+  case 325: /* type_specifier_nonarray: F32MAT3X2  */
+#line 2407 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 2);
     }
-#line 8656 "MachineIndependent/glslang_tab.cpp"
+#line 8631 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 327: /* type_specifier_nonarray: F32MAT3X3  */
-#line 2422 "MachineIndependent/glslang.y"
+  case 326: /* type_specifier_nonarray: F32MAT3X3  */
+#line 2413 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8667 "MachineIndependent/glslang_tab.cpp"
+#line 8642 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 328: /* type_specifier_nonarray: F32MAT3X4  */
-#line 2428 "MachineIndependent/glslang.y"
+  case 327: /* type_specifier_nonarray: F32MAT3X4  */
+#line 2419 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(3, 4);
     }
-#line 8678 "MachineIndependent/glslang_tab.cpp"
+#line 8653 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 329: /* type_specifier_nonarray: F32MAT4X2  */
-#line 2434 "MachineIndependent/glslang.y"
+  case 328: /* type_specifier_nonarray: F32MAT4X2  */
+#line 2425 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 2);
     }
-#line 8689 "MachineIndependent/glslang_tab.cpp"
+#line 8664 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 330: /* type_specifier_nonarray: F32MAT4X3  */
-#line 2440 "MachineIndependent/glslang.y"
+  case 329: /* type_specifier_nonarray: F32MAT4X3  */
+#line 2431 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 3);
     }
-#line 8700 "MachineIndependent/glslang_tab.cpp"
+#line 8675 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 331: /* type_specifier_nonarray: F32MAT4X4  */
-#line 2446 "MachineIndependent/glslang.y"
+  case 330: /* type_specifier_nonarray: F32MAT4X4  */
+#line 2437 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8711 "MachineIndependent/glslang_tab.cpp"
+#line 8686 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 332: /* type_specifier_nonarray: F64MAT2  */
-#line 2452 "MachineIndependent/glslang.y"
+  case 331: /* type_specifier_nonarray: F64MAT2  */
+#line 2443 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8722 "MachineIndependent/glslang_tab.cpp"
+#line 8697 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 333: /* type_specifier_nonarray: F64MAT3  */
-#line 2458 "MachineIndependent/glslang.y"
+  case 332: /* type_specifier_nonarray: F64MAT3  */
+#line 2449 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8733 "MachineIndependent/glslang_tab.cpp"
+#line 8708 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 334: /* type_specifier_nonarray: F64MAT4  */
-#line 2464 "MachineIndependent/glslang.y"
+  case 333: /* type_specifier_nonarray: F64MAT4  */
+#line 2455 "MachineIndependent/glslang.y"
               {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8744 "MachineIndependent/glslang_tab.cpp"
+#line 8719 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 335: /* type_specifier_nonarray: F64MAT2X2  */
-#line 2470 "MachineIndependent/glslang.y"
+  case 334: /* type_specifier_nonarray: F64MAT2X2  */
+#line 2461 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 2);
     }
-#line 8755 "MachineIndependent/glslang_tab.cpp"
+#line 8730 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 336: /* type_specifier_nonarray: F64MAT2X3  */
-#line 2476 "MachineIndependent/glslang.y"
+  case 335: /* type_specifier_nonarray: F64MAT2X3  */
+#line 2467 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 3);
     }
-#line 8766 "MachineIndependent/glslang_tab.cpp"
+#line 8741 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 337: /* type_specifier_nonarray: F64MAT2X4  */
-#line 2482 "MachineIndependent/glslang.y"
+  case 336: /* type_specifier_nonarray: F64MAT2X4  */
+#line 2473 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(2, 4);
     }
-#line 8777 "MachineIndependent/glslang_tab.cpp"
+#line 8752 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 338: /* type_specifier_nonarray: F64MAT3X2  */
-#line 2488 "MachineIndependent/glslang.y"
+  case 337: /* type_specifier_nonarray: F64MAT3X2  */
+#line 2479 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 2);
     }
-#line 8788 "MachineIndependent/glslang_tab.cpp"
+#line 8763 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 339: /* type_specifier_nonarray: F64MAT3X3  */
-#line 2494 "MachineIndependent/glslang.y"
+  case 338: /* type_specifier_nonarray: F64MAT3X3  */
+#line 2485 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 3);
     }
-#line 8799 "MachineIndependent/glslang_tab.cpp"
+#line 8774 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 340: /* type_specifier_nonarray: F64MAT3X4  */
-#line 2500 "MachineIndependent/glslang.y"
+  case 339: /* type_specifier_nonarray: F64MAT3X4  */
+#line 2491 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(3, 4);
     }
-#line 8810 "MachineIndependent/glslang_tab.cpp"
+#line 8785 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 341: /* type_specifier_nonarray: F64MAT4X2  */
-#line 2506 "MachineIndependent/glslang.y"
+  case 340: /* type_specifier_nonarray: F64MAT4X2  */
+#line 2497 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 2);
     }
-#line 8821 "MachineIndependent/glslang_tab.cpp"
+#line 8796 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 342: /* type_specifier_nonarray: F64MAT4X3  */
-#line 2512 "MachineIndependent/glslang.y"
+  case 341: /* type_specifier_nonarray: F64MAT4X3  */
+#line 2503 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 3);
     }
-#line 8832 "MachineIndependent/glslang_tab.cpp"
+#line 8807 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 343: /* type_specifier_nonarray: F64MAT4X4  */
-#line 2518 "MachineIndependent/glslang.y"
+  case 342: /* type_specifier_nonarray: F64MAT4X4  */
+#line 2509 "MachineIndependent/glslang.y"
                 {
         parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtDouble;
         (yyval.interm.type).setMatrix(4, 4);
     }
-#line 8843 "MachineIndependent/glslang_tab.cpp"
+#line 8818 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 344: /* type_specifier_nonarray: ACCSTRUCTNV  */
-#line 2524 "MachineIndependent/glslang.y"
+  case 343: /* type_specifier_nonarray: ACCSTRUCTNV  */
+#line 2515 "MachineIndependent/glslang.y"
                   {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtAccStruct;
     }
-#line 8852 "MachineIndependent/glslang_tab.cpp"
+#line 8827 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 345: /* type_specifier_nonarray: ACCSTRUCTEXT  */
-#line 2528 "MachineIndependent/glslang.y"
+  case 344: /* type_specifier_nonarray: ACCSTRUCTEXT  */
+#line 2519 "MachineIndependent/glslang.y"
                    {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtAccStruct;
     }
-#line 8861 "MachineIndependent/glslang_tab.cpp"
+#line 8836 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 346: /* type_specifier_nonarray: RAYQUERYEXT  */
-#line 2532 "MachineIndependent/glslang.y"
+  case 345: /* type_specifier_nonarray: RAYQUERYEXT  */
+#line 2523 "MachineIndependent/glslang.y"
                   {
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
        (yyval.interm.type).basicType = EbtRayQuery;
     }
-#line 8870 "MachineIndependent/glslang_tab.cpp"
+#line 8845 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 347: /* type_specifier_nonarray: ATOMIC_UINT  */
-#line 2536 "MachineIndependent/glslang.y"
+  case 346: /* type_specifier_nonarray: ATOMIC_UINT  */
+#line 2527 "MachineIndependent/glslang.y"
                   {
         parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtAtomicUint;
     }
-#line 8880 "MachineIndependent/glslang_tab.cpp"
+#line 8855 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 348: /* type_specifier_nonarray: SAMPLER1D  */
-#line 2541 "MachineIndependent/glslang.y"
+  case 347: /* type_specifier_nonarray: SAMPLER1D  */
+#line 2532 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
     }
-#line 8890 "MachineIndependent/glslang_tab.cpp"
+#line 8865 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 349: /* type_specifier_nonarray: SAMPLER2D  */
-#line 2547 "MachineIndependent/glslang.y"
+  case 348: /* type_specifier_nonarray: SAMPLER2D  */
+#line 2538 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
     }
-#line 8900 "MachineIndependent/glslang_tab.cpp"
+#line 8875 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 350: /* type_specifier_nonarray: SAMPLER3D  */
-#line 2552 "MachineIndependent/glslang.y"
+  case 349: /* type_specifier_nonarray: SAMPLER3D  */
+#line 2543 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
     }
-#line 8910 "MachineIndependent/glslang_tab.cpp"
+#line 8885 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 351: /* type_specifier_nonarray: SAMPLERCUBE  */
-#line 2557 "MachineIndependent/glslang.y"
+  case 350: /* type_specifier_nonarray: SAMPLERCUBE  */
+#line 2548 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
     }
-#line 8920 "MachineIndependent/glslang_tab.cpp"
+#line 8895 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 352: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
-#line 2562 "MachineIndependent/glslang.y"
+  case 351: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
+#line 2553 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
     }
-#line 8930 "MachineIndependent/glslang_tab.cpp"
+#line 8905 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 353: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
-#line 2567 "MachineIndependent/glslang.y"
+  case 352: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
+#line 2558 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
     }
-#line 8940 "MachineIndependent/glslang_tab.cpp"
+#line 8915 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 354: /* type_specifier_nonarray: SAMPLER2DARRAY  */
-#line 2572 "MachineIndependent/glslang.y"
+  case 353: /* type_specifier_nonarray: SAMPLER2DARRAY  */
+#line 2563 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
     }
-#line 8950 "MachineIndependent/glslang_tab.cpp"
+#line 8925 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 355: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
-#line 2577 "MachineIndependent/glslang.y"
+  case 354: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
+#line 2568 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
     }
-#line 8960 "MachineIndependent/glslang_tab.cpp"
+#line 8935 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 356: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
-#line 2583 "MachineIndependent/glslang.y"
+  case 355: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
+#line 2574 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
     }
-#line 8970 "MachineIndependent/glslang_tab.cpp"
+#line 8945 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 357: /* type_specifier_nonarray: SAMPLER1DARRAY  */
-#line 2588 "MachineIndependent/glslang.y"
+  case 356: /* type_specifier_nonarray: SAMPLER1DARRAY  */
+#line 2579 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
     }
-#line 8980 "MachineIndependent/glslang_tab.cpp"
+#line 8955 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 358: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
-#line 2593 "MachineIndependent/glslang.y"
+  case 357: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
+#line 2584 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
     }
-#line 8990 "MachineIndependent/glslang_tab.cpp"
+#line 8965 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 359: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
-#line 2598 "MachineIndependent/glslang.y"
+  case 358: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
+#line 2589 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
     }
-#line 9000 "MachineIndependent/glslang_tab.cpp"
+#line 8975 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 360: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
-#line 2603 "MachineIndependent/glslang.y"
+  case 359: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
+#line 2594 "MachineIndependent/glslang.y"
                              {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
     }
-#line 9010 "MachineIndependent/glslang_tab.cpp"
+#line 8985 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 361: /* type_specifier_nonarray: F16SAMPLER1D  */
-#line 2608 "MachineIndependent/glslang.y"
+  case 360: /* type_specifier_nonarray: F16SAMPLER1D  */
+#line 2599 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
     }
-#line 9021 "MachineIndependent/glslang_tab.cpp"
+#line 8996 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 362: /* type_specifier_nonarray: F16SAMPLER2D  */
-#line 2614 "MachineIndependent/glslang.y"
+  case 361: /* type_specifier_nonarray: F16SAMPLER2D  */
+#line 2605 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
     }
-#line 9032 "MachineIndependent/glslang_tab.cpp"
+#line 9007 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 363: /* type_specifier_nonarray: F16SAMPLER3D  */
-#line 2620 "MachineIndependent/glslang.y"
+  case 362: /* type_specifier_nonarray: F16SAMPLER3D  */
+#line 2611 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
     }
-#line 9043 "MachineIndependent/glslang_tab.cpp"
+#line 9018 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 364: /* type_specifier_nonarray: F16SAMPLERCUBE  */
-#line 2626 "MachineIndependent/glslang.y"
+  case 363: /* type_specifier_nonarray: F16SAMPLERCUBE  */
+#line 2617 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
     }
-#line 9054 "MachineIndependent/glslang_tab.cpp"
+#line 9029 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 365: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
-#line 2632 "MachineIndependent/glslang.y"
+  case 364: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
+#line 2623 "MachineIndependent/glslang.y"
                          {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
     }
-#line 9065 "MachineIndependent/glslang_tab.cpp"
+#line 9040 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 366: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
-#line 2638 "MachineIndependent/glslang.y"
+  case 365: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
+#line 2629 "MachineIndependent/glslang.y"
                          {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
     }
-#line 9076 "MachineIndependent/glslang_tab.cpp"
+#line 9051 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 367: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
-#line 2644 "MachineIndependent/glslang.y"
+  case 366: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
+#line 2635 "MachineIndependent/glslang.y"
                            {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
     }
-#line 9087 "MachineIndependent/glslang_tab.cpp"
+#line 9062 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 368: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
-#line 2650 "MachineIndependent/glslang.y"
+  case 367: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
+#line 2641 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
     }
-#line 9098 "MachineIndependent/glslang_tab.cpp"
+#line 9073 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 369: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
-#line 2656 "MachineIndependent/glslang.y"
+  case 368: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
+#line 2647 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
     }
-#line 9109 "MachineIndependent/glslang_tab.cpp"
+#line 9084 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 370: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
-#line 2662 "MachineIndependent/glslang.y"
+  case 369: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
+#line 2653 "MachineIndependent/glslang.y"
                               {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
     }
-#line 9120 "MachineIndependent/glslang_tab.cpp"
+#line 9095 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 371: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
-#line 2668 "MachineIndependent/glslang.y"
+  case 370: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
+#line 2659 "MachineIndependent/glslang.y"
                               {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
     }
-#line 9131 "MachineIndependent/glslang_tab.cpp"
+#line 9106 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 372: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
-#line 2674 "MachineIndependent/glslang.y"
+  case 371: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
+#line 2665 "MachineIndependent/glslang.y"
                           {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
     }
-#line 9142 "MachineIndependent/glslang_tab.cpp"
+#line 9117 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 373: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
-#line 2680 "MachineIndependent/glslang.y"
+  case 372: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
+#line 2671 "MachineIndependent/glslang.y"
                                 {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
     }
-#line 9153 "MachineIndependent/glslang_tab.cpp"
+#line 9128 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 374: /* type_specifier_nonarray: ISAMPLER1D  */
-#line 2686 "MachineIndependent/glslang.y"
+  case 373: /* type_specifier_nonarray: ISAMPLER1D  */
+#line 2677 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd1D);
     }
-#line 9163 "MachineIndependent/glslang_tab.cpp"
+#line 9138 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 375: /* type_specifier_nonarray: ISAMPLER2D  */
-#line 2692 "MachineIndependent/glslang.y"
+  case 374: /* type_specifier_nonarray: ISAMPLER2D  */
+#line 2683 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd2D);
     }
-#line 9173 "MachineIndependent/glslang_tab.cpp"
+#line 9148 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 376: /* type_specifier_nonarray: ISAMPLER3D  */
-#line 2697 "MachineIndependent/glslang.y"
+  case 375: /* type_specifier_nonarray: ISAMPLER3D  */
+#line 2688 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd3D);
     }
-#line 9183 "MachineIndependent/glslang_tab.cpp"
+#line 9158 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 377: /* type_specifier_nonarray: ISAMPLERCUBE  */
-#line 2702 "MachineIndependent/glslang.y"
+  case 376: /* type_specifier_nonarray: ISAMPLERCUBE  */
+#line 2693 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, EsdCube);
     }
-#line 9193 "MachineIndependent/glslang_tab.cpp"
+#line 9168 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 378: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
-#line 2707 "MachineIndependent/glslang.y"
+  case 377: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
+#line 2698 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
     }
-#line 9203 "MachineIndependent/glslang_tab.cpp"
+#line 9178 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 379: /* type_specifier_nonarray: USAMPLER2D  */
-#line 2712 "MachineIndependent/glslang.y"
+  case 378: /* type_specifier_nonarray: USAMPLER2D  */
+#line 2703 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd2D);
     }
-#line 9213 "MachineIndependent/glslang_tab.cpp"
+#line 9188 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 380: /* type_specifier_nonarray: USAMPLER3D  */
-#line 2717 "MachineIndependent/glslang.y"
+  case 379: /* type_specifier_nonarray: USAMPLER3D  */
+#line 2708 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd3D);
     }
-#line 9223 "MachineIndependent/glslang_tab.cpp"
+#line 9198 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 381: /* type_specifier_nonarray: USAMPLERCUBE  */
-#line 2722 "MachineIndependent/glslang.y"
+  case 380: /* type_specifier_nonarray: USAMPLERCUBE  */
+#line 2713 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, EsdCube);
     }
-#line 9233 "MachineIndependent/glslang_tab.cpp"
+#line 9208 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 382: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
-#line 2728 "MachineIndependent/glslang.y"
+  case 381: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
+#line 2719 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
     }
-#line 9243 "MachineIndependent/glslang_tab.cpp"
+#line 9218 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 383: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
-#line 2733 "MachineIndependent/glslang.y"
+  case 382: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
+#line 2724 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
     }
-#line 9253 "MachineIndependent/glslang_tab.cpp"
+#line 9228 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 384: /* type_specifier_nonarray: USAMPLER1D  */
-#line 2738 "MachineIndependent/glslang.y"
+  case 383: /* type_specifier_nonarray: USAMPLER1D  */
+#line 2729 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd1D);
     }
-#line 9263 "MachineIndependent/glslang_tab.cpp"
+#line 9238 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 385: /* type_specifier_nonarray: USAMPLER1DARRAY  */
-#line 2743 "MachineIndependent/glslang.y"
+  case 384: /* type_specifier_nonarray: USAMPLER1DARRAY  */
+#line 2734 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
     }
-#line 9273 "MachineIndependent/glslang_tab.cpp"
+#line 9248 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 386: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
-#line 2748 "MachineIndependent/glslang.y"
+  case 385: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
+#line 2739 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
     }
-#line 9283 "MachineIndependent/glslang_tab.cpp"
+#line 9258 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 387: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
-#line 2753 "MachineIndependent/glslang.y"
+  case 386: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
+#line 2744 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
     }
-#line 9293 "MachineIndependent/glslang_tab.cpp"
+#line 9268 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 388: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
-#line 2758 "MachineIndependent/glslang.y"
+  case 387: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
+#line 2749 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
     }
-#line 9303 "MachineIndependent/glslang_tab.cpp"
+#line 9278 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 389: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
-#line 2763 "MachineIndependent/glslang.y"
+  case 388: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
+#line 2754 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
     }
-#line 9313 "MachineIndependent/glslang_tab.cpp"
+#line 9288 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 390: /* type_specifier_nonarray: USAMPLER2DARRAY  */
-#line 2769 "MachineIndependent/glslang.y"
+  case 389: /* type_specifier_nonarray: USAMPLER2DARRAY  */
+#line 2760 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
     }
-#line 9323 "MachineIndependent/glslang_tab.cpp"
+#line 9298 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 391: /* type_specifier_nonarray: TEXTURE2D  */
-#line 2774 "MachineIndependent/glslang.y"
+  case 390: /* type_specifier_nonarray: TEXTURE2D  */
+#line 2765 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
     }
-#line 9333 "MachineIndependent/glslang_tab.cpp"
+#line 9308 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 392: /* type_specifier_nonarray: TEXTURE3D  */
-#line 2779 "MachineIndependent/glslang.y"
+  case 391: /* type_specifier_nonarray: TEXTURE3D  */
+#line 2770 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
     }
-#line 9343 "MachineIndependent/glslang_tab.cpp"
+#line 9318 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 393: /* type_specifier_nonarray: TEXTURE2DARRAY  */
-#line 2784 "MachineIndependent/glslang.y"
+  case 392: /* type_specifier_nonarray: TEXTURE2DARRAY  */
+#line 2775 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
     }
-#line 9353 "MachineIndependent/glslang_tab.cpp"
+#line 9328 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 394: /* type_specifier_nonarray: TEXTURECUBE  */
-#line 2789 "MachineIndependent/glslang.y"
+  case 393: /* type_specifier_nonarray: TEXTURECUBE  */
+#line 2780 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
     }
-#line 9363 "MachineIndependent/glslang_tab.cpp"
+#line 9338 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 395: /* type_specifier_nonarray: ITEXTURE2D  */
-#line 2794 "MachineIndependent/glslang.y"
+  case 394: /* type_specifier_nonarray: ITEXTURE2D  */
+#line 2785 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
     }
-#line 9373 "MachineIndependent/glslang_tab.cpp"
+#line 9348 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 396: /* type_specifier_nonarray: ITEXTURE3D  */
-#line 2799 "MachineIndependent/glslang.y"
+  case 395: /* type_specifier_nonarray: ITEXTURE3D  */
+#line 2790 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
     }
-#line 9383 "MachineIndependent/glslang_tab.cpp"
+#line 9358 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 397: /* type_specifier_nonarray: ITEXTURECUBE  */
-#line 2804 "MachineIndependent/glslang.y"
+  case 396: /* type_specifier_nonarray: ITEXTURECUBE  */
+#line 2795 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
     }
-#line 9393 "MachineIndependent/glslang_tab.cpp"
+#line 9368 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 398: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
-#line 2809 "MachineIndependent/glslang.y"
+  case 397: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
+#line 2800 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
     }
-#line 9403 "MachineIndependent/glslang_tab.cpp"
+#line 9378 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 399: /* type_specifier_nonarray: UTEXTURE2D  */
-#line 2814 "MachineIndependent/glslang.y"
+  case 398: /* type_specifier_nonarray: UTEXTURE2D  */
+#line 2805 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
     }
-#line 9413 "MachineIndependent/glslang_tab.cpp"
+#line 9388 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 400: /* type_specifier_nonarray: UTEXTURE3D  */
-#line 2819 "MachineIndependent/glslang.y"
+  case 399: /* type_specifier_nonarray: UTEXTURE3D  */
+#line 2810 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
     }
-#line 9423 "MachineIndependent/glslang_tab.cpp"
+#line 9398 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 401: /* type_specifier_nonarray: UTEXTURECUBE  */
-#line 2824 "MachineIndependent/glslang.y"
+  case 400: /* type_specifier_nonarray: UTEXTURECUBE  */
+#line 2815 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
     }
-#line 9433 "MachineIndependent/glslang_tab.cpp"
+#line 9408 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 402: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
-#line 2829 "MachineIndependent/glslang.y"
+  case 401: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
+#line 2820 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
     }
-#line 9443 "MachineIndependent/glslang_tab.cpp"
+#line 9418 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 403: /* type_specifier_nonarray: SAMPLER  */
-#line 2834 "MachineIndependent/glslang.y"
+  case 402: /* type_specifier_nonarray: SAMPLER  */
+#line 2825 "MachineIndependent/glslang.y"
               {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setPureSampler(false);
     }
-#line 9453 "MachineIndependent/glslang_tab.cpp"
+#line 9428 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 404: /* type_specifier_nonarray: SAMPLERSHADOW  */
-#line 2839 "MachineIndependent/glslang.y"
+  case 403: /* type_specifier_nonarray: SAMPLERSHADOW  */
+#line 2830 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setPureSampler(true);
     }
-#line 9463 "MachineIndependent/glslang_tab.cpp"
+#line 9438 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 405: /* type_specifier_nonarray: SAMPLER2DRECT  */
-#line 2845 "MachineIndependent/glslang.y"
+  case 404: /* type_specifier_nonarray: SAMPLER2DRECT  */
+#line 2836 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
     }
-#line 9473 "MachineIndependent/glslang_tab.cpp"
+#line 9448 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 406: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
-#line 2850 "MachineIndependent/glslang.y"
+  case 405: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
+#line 2841 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
     }
-#line 9483 "MachineIndependent/glslang_tab.cpp"
+#line 9458 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 407: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
-#line 2855 "MachineIndependent/glslang.y"
+  case 406: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
+#line 2846 "MachineIndependent/glslang.y"
                        {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
     }
-#line 9494 "MachineIndependent/glslang_tab.cpp"
+#line 9469 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 408: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
-#line 2861 "MachineIndependent/glslang.y"
+  case 407: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
+#line 2852 "MachineIndependent/glslang.y"
                              {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
     }
-#line 9505 "MachineIndependent/glslang_tab.cpp"
+#line 9480 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 409: /* type_specifier_nonarray: ISAMPLER2DRECT  */
-#line 2867 "MachineIndependent/glslang.y"
+  case 408: /* type_specifier_nonarray: ISAMPLER2DRECT  */
+#line 2858 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, EsdRect);
     }
-#line 9515 "MachineIndependent/glslang_tab.cpp"
+#line 9490 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 410: /* type_specifier_nonarray: USAMPLER2DRECT  */
-#line 2872 "MachineIndependent/glslang.y"
+  case 409: /* type_specifier_nonarray: USAMPLER2DRECT  */
+#line 2863 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, EsdRect);
     }
-#line 9525 "MachineIndependent/glslang_tab.cpp"
+#line 9500 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 411: /* type_specifier_nonarray: SAMPLERBUFFER  */
-#line 2877 "MachineIndependent/glslang.y"
+  case 410: /* type_specifier_nonarray: SAMPLERBUFFER  */
+#line 2868 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
     }
-#line 9535 "MachineIndependent/glslang_tab.cpp"
+#line 9510 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 412: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
-#line 2882 "MachineIndependent/glslang.y"
+  case 411: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
+#line 2873 "MachineIndependent/glslang.y"
                        {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
     }
-#line 9546 "MachineIndependent/glslang_tab.cpp"
+#line 9521 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 413: /* type_specifier_nonarray: ISAMPLERBUFFER  */
-#line 2888 "MachineIndependent/glslang.y"
+  case 412: /* type_specifier_nonarray: ISAMPLERBUFFER  */
+#line 2879 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
     }
-#line 9556 "MachineIndependent/glslang_tab.cpp"
+#line 9531 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 414: /* type_specifier_nonarray: USAMPLERBUFFER  */
-#line 2893 "MachineIndependent/glslang.y"
+  case 413: /* type_specifier_nonarray: USAMPLERBUFFER  */
+#line 2884 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
     }
-#line 9566 "MachineIndependent/glslang_tab.cpp"
+#line 9541 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 415: /* type_specifier_nonarray: SAMPLER2DMS  */
-#line 2898 "MachineIndependent/glslang.y"
+  case 414: /* type_specifier_nonarray: SAMPLER2DMS  */
+#line 2889 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
     }
-#line 9576 "MachineIndependent/glslang_tab.cpp"
+#line 9551 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 416: /* type_specifier_nonarray: F16SAMPLER2DMS  */
-#line 2903 "MachineIndependent/glslang.y"
+  case 415: /* type_specifier_nonarray: F16SAMPLER2DMS  */
+#line 2894 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
     }
-#line 9587 "MachineIndependent/glslang_tab.cpp"
+#line 9562 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 417: /* type_specifier_nonarray: ISAMPLER2DMS  */
-#line 2909 "MachineIndependent/glslang.y"
+  case 416: /* type_specifier_nonarray: ISAMPLER2DMS  */
+#line 2900 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
     }
-#line 9597 "MachineIndependent/glslang_tab.cpp"
+#line 9572 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 418: /* type_specifier_nonarray: USAMPLER2DMS  */
-#line 2914 "MachineIndependent/glslang.y"
+  case 417: /* type_specifier_nonarray: USAMPLER2DMS  */
+#line 2905 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
     }
-#line 9607 "MachineIndependent/glslang_tab.cpp"
+#line 9582 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 419: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
-#line 2919 "MachineIndependent/glslang.y"
+  case 418: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
+#line 2910 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
     }
-#line 9617 "MachineIndependent/glslang_tab.cpp"
+#line 9592 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 420: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
-#line 2924 "MachineIndependent/glslang.y"
+  case 419: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
+#line 2915 "MachineIndependent/glslang.y"
                           {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
     }
-#line 9628 "MachineIndependent/glslang_tab.cpp"
+#line 9603 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 421: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
-#line 2930 "MachineIndependent/glslang.y"
+  case 420: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
+#line 2921 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
     }
-#line 9638 "MachineIndependent/glslang_tab.cpp"
+#line 9613 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 422: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
-#line 2935 "MachineIndependent/glslang.y"
+  case 421: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
+#line 2926 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
     }
-#line 9648 "MachineIndependent/glslang_tab.cpp"
+#line 9623 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 423: /* type_specifier_nonarray: TEXTURE1D  */
-#line 2940 "MachineIndependent/glslang.y"
+  case 422: /* type_specifier_nonarray: TEXTURE1D  */
+#line 2931 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
     }
-#line 9658 "MachineIndependent/glslang_tab.cpp"
+#line 9633 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 424: /* type_specifier_nonarray: F16TEXTURE1D  */
-#line 2945 "MachineIndependent/glslang.y"
+  case 423: /* type_specifier_nonarray: F16TEXTURE1D  */
+#line 2936 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
     }
-#line 9669 "MachineIndependent/glslang_tab.cpp"
+#line 9644 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 425: /* type_specifier_nonarray: F16TEXTURE2D  */
-#line 2951 "MachineIndependent/glslang.y"
+  case 424: /* type_specifier_nonarray: F16TEXTURE2D  */
+#line 2942 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
     }
-#line 9680 "MachineIndependent/glslang_tab.cpp"
+#line 9655 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 426: /* type_specifier_nonarray: F16TEXTURE3D  */
-#line 2957 "MachineIndependent/glslang.y"
+  case 425: /* type_specifier_nonarray: F16TEXTURE3D  */
+#line 2948 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
     }
-#line 9691 "MachineIndependent/glslang_tab.cpp"
+#line 9666 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 427: /* type_specifier_nonarray: F16TEXTURECUBE  */
-#line 2963 "MachineIndependent/glslang.y"
+  case 426: /* type_specifier_nonarray: F16TEXTURECUBE  */
+#line 2954 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
     }
-#line 9702 "MachineIndependent/glslang_tab.cpp"
+#line 9677 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 428: /* type_specifier_nonarray: TEXTURE1DARRAY  */
-#line 2969 "MachineIndependent/glslang.y"
+  case 427: /* type_specifier_nonarray: TEXTURE1DARRAY  */
+#line 2960 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
     }
-#line 9712 "MachineIndependent/glslang_tab.cpp"
+#line 9687 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 429: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
-#line 2974 "MachineIndependent/glslang.y"
+  case 428: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
+#line 2965 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
     }
-#line 9723 "MachineIndependent/glslang_tab.cpp"
+#line 9698 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 430: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
-#line 2980 "MachineIndependent/glslang.y"
+  case 429: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
+#line 2971 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
     }
-#line 9734 "MachineIndependent/glslang_tab.cpp"
+#line 9709 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 431: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
-#line 2986 "MachineIndependent/glslang.y"
+  case 430: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
+#line 2977 "MachineIndependent/glslang.y"
                           {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
     }
-#line 9745 "MachineIndependent/glslang_tab.cpp"
+#line 9720 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 432: /* type_specifier_nonarray: ITEXTURE1D  */
-#line 2992 "MachineIndependent/glslang.y"
+  case 431: /* type_specifier_nonarray: ITEXTURE1D  */
+#line 2983 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
     }
-#line 9755 "MachineIndependent/glslang_tab.cpp"
+#line 9730 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 433: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
-#line 2997 "MachineIndependent/glslang.y"
+  case 432: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
+#line 2988 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
     }
-#line 9765 "MachineIndependent/glslang_tab.cpp"
+#line 9740 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 434: /* type_specifier_nonarray: UTEXTURE1D  */
-#line 3002 "MachineIndependent/glslang.y"
+  case 433: /* type_specifier_nonarray: UTEXTURE1D  */
+#line 2993 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
     }
-#line 9775 "MachineIndependent/glslang_tab.cpp"
+#line 9750 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 435: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
-#line 3007 "MachineIndependent/glslang.y"
+  case 434: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
+#line 2998 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
     }
-#line 9785 "MachineIndependent/glslang_tab.cpp"
+#line 9760 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 436: /* type_specifier_nonarray: TEXTURE2DRECT  */
-#line 3012 "MachineIndependent/glslang.y"
+  case 435: /* type_specifier_nonarray: TEXTURE2DRECT  */
+#line 3003 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
     }
-#line 9795 "MachineIndependent/glslang_tab.cpp"
+#line 9770 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 437: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
-#line 3017 "MachineIndependent/glslang.y"
+  case 436: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
+#line 3008 "MachineIndependent/glslang.y"
                        {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
     }
-#line 9806 "MachineIndependent/glslang_tab.cpp"
+#line 9781 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 438: /* type_specifier_nonarray: ITEXTURE2DRECT  */
-#line 3023 "MachineIndependent/glslang.y"
+  case 437: /* type_specifier_nonarray: ITEXTURE2DRECT  */
+#line 3014 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
     }
-#line 9816 "MachineIndependent/glslang_tab.cpp"
+#line 9791 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 439: /* type_specifier_nonarray: UTEXTURE2DRECT  */
-#line 3028 "MachineIndependent/glslang.y"
+  case 438: /* type_specifier_nonarray: UTEXTURE2DRECT  */
+#line 3019 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
     }
-#line 9826 "MachineIndependent/glslang_tab.cpp"
+#line 9801 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 440: /* type_specifier_nonarray: TEXTUREBUFFER  */
-#line 3033 "MachineIndependent/glslang.y"
+  case 439: /* type_specifier_nonarray: TEXTUREBUFFER  */
+#line 3024 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
     }
-#line 9836 "MachineIndependent/glslang_tab.cpp"
+#line 9811 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 441: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
-#line 3038 "MachineIndependent/glslang.y"
+  case 440: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
+#line 3029 "MachineIndependent/glslang.y"
                        {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
     }
-#line 9847 "MachineIndependent/glslang_tab.cpp"
+#line 9822 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 442: /* type_specifier_nonarray: ITEXTUREBUFFER  */
-#line 3044 "MachineIndependent/glslang.y"
+  case 441: /* type_specifier_nonarray: ITEXTUREBUFFER  */
+#line 3035 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
     }
-#line 9857 "MachineIndependent/glslang_tab.cpp"
+#line 9832 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 443: /* type_specifier_nonarray: UTEXTUREBUFFER  */
-#line 3049 "MachineIndependent/glslang.y"
+  case 442: /* type_specifier_nonarray: UTEXTUREBUFFER  */
+#line 3040 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
     }
-#line 9867 "MachineIndependent/glslang_tab.cpp"
+#line 9842 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 444: /* type_specifier_nonarray: TEXTURE2DMS  */
-#line 3054 "MachineIndependent/glslang.y"
+  case 443: /* type_specifier_nonarray: TEXTURE2DMS  */
+#line 3045 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
     }
-#line 9877 "MachineIndependent/glslang_tab.cpp"
+#line 9852 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 445: /* type_specifier_nonarray: F16TEXTURE2DMS  */
-#line 3059 "MachineIndependent/glslang.y"
+  case 444: /* type_specifier_nonarray: F16TEXTURE2DMS  */
+#line 3050 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
     }
-#line 9888 "MachineIndependent/glslang_tab.cpp"
+#line 9863 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 446: /* type_specifier_nonarray: ITEXTURE2DMS  */
-#line 3065 "MachineIndependent/glslang.y"
+  case 445: /* type_specifier_nonarray: ITEXTURE2DMS  */
+#line 3056 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
     }
-#line 9898 "MachineIndependent/glslang_tab.cpp"
+#line 9873 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 447: /* type_specifier_nonarray: UTEXTURE2DMS  */
-#line 3070 "MachineIndependent/glslang.y"
+  case 446: /* type_specifier_nonarray: UTEXTURE2DMS  */
+#line 3061 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
     }
-#line 9908 "MachineIndependent/glslang_tab.cpp"
+#line 9883 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 448: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
-#line 3075 "MachineIndependent/glslang.y"
+  case 447: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
+#line 3066 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
     }
-#line 9918 "MachineIndependent/glslang_tab.cpp"
+#line 9893 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 449: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
-#line 3080 "MachineIndependent/glslang.y"
+  case 448: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
+#line 3071 "MachineIndependent/glslang.y"
                           {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
     }
-#line 9929 "MachineIndependent/glslang_tab.cpp"
+#line 9904 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 450: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
-#line 3086 "MachineIndependent/glslang.y"
+  case 449: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
+#line 3077 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
     }
-#line 9939 "MachineIndependent/glslang_tab.cpp"
+#line 9914 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 451: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
-#line 3091 "MachineIndependent/glslang.y"
+  case 450: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
+#line 3082 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
     }
-#line 9949 "MachineIndependent/glslang_tab.cpp"
+#line 9924 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 452: /* type_specifier_nonarray: IMAGE1D  */
-#line 3096 "MachineIndependent/glslang.y"
+  case 451: /* type_specifier_nonarray: IMAGE1D  */
+#line 3087 "MachineIndependent/glslang.y"
               {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
     }
-#line 9959 "MachineIndependent/glslang_tab.cpp"
+#line 9934 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 453: /* type_specifier_nonarray: F16IMAGE1D  */
-#line 3101 "MachineIndependent/glslang.y"
+  case 452: /* type_specifier_nonarray: F16IMAGE1D  */
+#line 3092 "MachineIndependent/glslang.y"
                  {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
     }
-#line 9970 "MachineIndependent/glslang_tab.cpp"
+#line 9945 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 454: /* type_specifier_nonarray: IIMAGE1D  */
-#line 3107 "MachineIndependent/glslang.y"
+  case 453: /* type_specifier_nonarray: IIMAGE1D  */
+#line 3098 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
     }
-#line 9980 "MachineIndependent/glslang_tab.cpp"
+#line 9955 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 455: /* type_specifier_nonarray: UIMAGE1D  */
-#line 3112 "MachineIndependent/glslang.y"
+  case 454: /* type_specifier_nonarray: UIMAGE1D  */
+#line 3103 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
     }
-#line 9990 "MachineIndependent/glslang_tab.cpp"
+#line 9965 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 456: /* type_specifier_nonarray: IMAGE2D  */
-#line 3117 "MachineIndependent/glslang.y"
+  case 455: /* type_specifier_nonarray: IMAGE2D  */
+#line 3108 "MachineIndependent/glslang.y"
               {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
     }
-#line 10000 "MachineIndependent/glslang_tab.cpp"
+#line 9975 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 457: /* type_specifier_nonarray: F16IMAGE2D  */
-#line 3122 "MachineIndependent/glslang.y"
+  case 456: /* type_specifier_nonarray: F16IMAGE2D  */
+#line 3113 "MachineIndependent/glslang.y"
                  {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
     }
-#line 10011 "MachineIndependent/glslang_tab.cpp"
+#line 9986 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 458: /* type_specifier_nonarray: IIMAGE2D  */
-#line 3128 "MachineIndependent/glslang.y"
+  case 457: /* type_specifier_nonarray: IIMAGE2D  */
+#line 3119 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
     }
-#line 10021 "MachineIndependent/glslang_tab.cpp"
+#line 9996 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 459: /* type_specifier_nonarray: UIMAGE2D  */
-#line 3133 "MachineIndependent/glslang.y"
+  case 458: /* type_specifier_nonarray: UIMAGE2D  */
+#line 3124 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
     }
-#line 10031 "MachineIndependent/glslang_tab.cpp"
+#line 10006 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 460: /* type_specifier_nonarray: IMAGE3D  */
-#line 3138 "MachineIndependent/glslang.y"
+  case 459: /* type_specifier_nonarray: IMAGE3D  */
+#line 3129 "MachineIndependent/glslang.y"
               {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
     }
-#line 10041 "MachineIndependent/glslang_tab.cpp"
+#line 10016 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 461: /* type_specifier_nonarray: F16IMAGE3D  */
-#line 3143 "MachineIndependent/glslang.y"
+  case 460: /* type_specifier_nonarray: F16IMAGE3D  */
+#line 3134 "MachineIndependent/glslang.y"
                  {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
     }
-#line 10052 "MachineIndependent/glslang_tab.cpp"
+#line 10027 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 462: /* type_specifier_nonarray: IIMAGE3D  */
-#line 3149 "MachineIndependent/glslang.y"
+  case 461: /* type_specifier_nonarray: IIMAGE3D  */
+#line 3140 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
     }
-#line 10062 "MachineIndependent/glslang_tab.cpp"
+#line 10037 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 463: /* type_specifier_nonarray: UIMAGE3D  */
-#line 3154 "MachineIndependent/glslang.y"
+  case 462: /* type_specifier_nonarray: UIMAGE3D  */
+#line 3145 "MachineIndependent/glslang.y"
                {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
     }
-#line 10072 "MachineIndependent/glslang_tab.cpp"
+#line 10047 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 464: /* type_specifier_nonarray: IMAGE2DRECT  */
-#line 3159 "MachineIndependent/glslang.y"
+  case 463: /* type_specifier_nonarray: IMAGE2DRECT  */
+#line 3150 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
     }
-#line 10082 "MachineIndependent/glslang_tab.cpp"
+#line 10057 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 465: /* type_specifier_nonarray: F16IMAGE2DRECT  */
-#line 3164 "MachineIndependent/glslang.y"
+  case 464: /* type_specifier_nonarray: F16IMAGE2DRECT  */
+#line 3155 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
     }
-#line 10093 "MachineIndependent/glslang_tab.cpp"
+#line 10068 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 466: /* type_specifier_nonarray: IIMAGE2DRECT  */
-#line 3170 "MachineIndependent/glslang.y"
+  case 465: /* type_specifier_nonarray: IIMAGE2DRECT  */
+#line 3161 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
     }
-#line 10103 "MachineIndependent/glslang_tab.cpp"
+#line 10078 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 467: /* type_specifier_nonarray: UIMAGE2DRECT  */
-#line 3175 "MachineIndependent/glslang.y"
+  case 466: /* type_specifier_nonarray: UIMAGE2DRECT  */
+#line 3166 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
     }
-#line 10113 "MachineIndependent/glslang_tab.cpp"
+#line 10088 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 468: /* type_specifier_nonarray: IMAGECUBE  */
-#line 3180 "MachineIndependent/glslang.y"
+  case 467: /* type_specifier_nonarray: IMAGECUBE  */
+#line 3171 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
     }
-#line 10123 "MachineIndependent/glslang_tab.cpp"
+#line 10098 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 469: /* type_specifier_nonarray: F16IMAGECUBE  */
-#line 3185 "MachineIndependent/glslang.y"
+  case 468: /* type_specifier_nonarray: F16IMAGECUBE  */
+#line 3176 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
     }
-#line 10134 "MachineIndependent/glslang_tab.cpp"
+#line 10109 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 470: /* type_specifier_nonarray: IIMAGECUBE  */
-#line 3191 "MachineIndependent/glslang.y"
+  case 469: /* type_specifier_nonarray: IIMAGECUBE  */
+#line 3182 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
     }
-#line 10144 "MachineIndependent/glslang_tab.cpp"
+#line 10119 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 471: /* type_specifier_nonarray: UIMAGECUBE  */
-#line 3196 "MachineIndependent/glslang.y"
+  case 470: /* type_specifier_nonarray: UIMAGECUBE  */
+#line 3187 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
     }
-#line 10154 "MachineIndependent/glslang_tab.cpp"
+#line 10129 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 472: /* type_specifier_nonarray: IMAGEBUFFER  */
-#line 3201 "MachineIndependent/glslang.y"
+  case 471: /* type_specifier_nonarray: IMAGEBUFFER  */
+#line 3192 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
     }
-#line 10164 "MachineIndependent/glslang_tab.cpp"
+#line 10139 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 473: /* type_specifier_nonarray: F16IMAGEBUFFER  */
-#line 3206 "MachineIndependent/glslang.y"
+  case 472: /* type_specifier_nonarray: F16IMAGEBUFFER  */
+#line 3197 "MachineIndependent/glslang.y"
                      {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
     }
-#line 10175 "MachineIndependent/glslang_tab.cpp"
+#line 10150 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 474: /* type_specifier_nonarray: IIMAGEBUFFER  */
-#line 3212 "MachineIndependent/glslang.y"
+  case 473: /* type_specifier_nonarray: IIMAGEBUFFER  */
+#line 3203 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
     }
-#line 10185 "MachineIndependent/glslang_tab.cpp"
+#line 10160 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 475: /* type_specifier_nonarray: UIMAGEBUFFER  */
-#line 3217 "MachineIndependent/glslang.y"
+  case 474: /* type_specifier_nonarray: UIMAGEBUFFER  */
+#line 3208 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
     }
-#line 10195 "MachineIndependent/glslang_tab.cpp"
+#line 10170 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 476: /* type_specifier_nonarray: IMAGE1DARRAY  */
-#line 3222 "MachineIndependent/glslang.y"
+  case 475: /* type_specifier_nonarray: IMAGE1DARRAY  */
+#line 3213 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
     }
-#line 10205 "MachineIndependent/glslang_tab.cpp"
+#line 10180 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 477: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
-#line 3227 "MachineIndependent/glslang.y"
+  case 476: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
+#line 3218 "MachineIndependent/glslang.y"
                       {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
     }
-#line 10216 "MachineIndependent/glslang_tab.cpp"
+#line 10191 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 478: /* type_specifier_nonarray: IIMAGE1DARRAY  */
-#line 3233 "MachineIndependent/glslang.y"
+  case 477: /* type_specifier_nonarray: IIMAGE1DARRAY  */
+#line 3224 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
     }
-#line 10226 "MachineIndependent/glslang_tab.cpp"
+#line 10201 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 479: /* type_specifier_nonarray: UIMAGE1DARRAY  */
-#line 3238 "MachineIndependent/glslang.y"
+  case 478: /* type_specifier_nonarray: UIMAGE1DARRAY  */
+#line 3229 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
     }
-#line 10236 "MachineIndependent/glslang_tab.cpp"
+#line 10211 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 480: /* type_specifier_nonarray: IMAGE2DARRAY  */
-#line 3243 "MachineIndependent/glslang.y"
+  case 479: /* type_specifier_nonarray: IMAGE2DARRAY  */
+#line 3234 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
     }
-#line 10246 "MachineIndependent/glslang_tab.cpp"
+#line 10221 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 481: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
-#line 3248 "MachineIndependent/glslang.y"
+  case 480: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
+#line 3239 "MachineIndependent/glslang.y"
                       {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
     }
-#line 10257 "MachineIndependent/glslang_tab.cpp"
+#line 10232 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 482: /* type_specifier_nonarray: IIMAGE2DARRAY  */
-#line 3254 "MachineIndependent/glslang.y"
+  case 481: /* type_specifier_nonarray: IIMAGE2DARRAY  */
+#line 3245 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
     }
-#line 10267 "MachineIndependent/glslang_tab.cpp"
+#line 10242 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 483: /* type_specifier_nonarray: UIMAGE2DARRAY  */
-#line 3259 "MachineIndependent/glslang.y"
+  case 482: /* type_specifier_nonarray: UIMAGE2DARRAY  */
+#line 3250 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
     }
-#line 10277 "MachineIndependent/glslang_tab.cpp"
+#line 10252 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 484: /* type_specifier_nonarray: IMAGECUBEARRAY  */
-#line 3264 "MachineIndependent/glslang.y"
+  case 483: /* type_specifier_nonarray: IMAGECUBEARRAY  */
+#line 3255 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
     }
-#line 10287 "MachineIndependent/glslang_tab.cpp"
+#line 10262 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 485: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
-#line 3269 "MachineIndependent/glslang.y"
+  case 484: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
+#line 3260 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
     }
-#line 10298 "MachineIndependent/glslang_tab.cpp"
+#line 10273 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 486: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
-#line 3275 "MachineIndependent/glslang.y"
+  case 485: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
+#line 3266 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
     }
-#line 10308 "MachineIndependent/glslang_tab.cpp"
+#line 10283 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 487: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
-#line 3280 "MachineIndependent/glslang.y"
+  case 486: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
+#line 3271 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
     }
-#line 10318 "MachineIndependent/glslang_tab.cpp"
+#line 10293 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 488: /* type_specifier_nonarray: IMAGE2DMS  */
-#line 3285 "MachineIndependent/glslang.y"
+  case 487: /* type_specifier_nonarray: IMAGE2DMS  */
+#line 3276 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
     }
-#line 10328 "MachineIndependent/glslang_tab.cpp"
+#line 10303 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 489: /* type_specifier_nonarray: F16IMAGE2DMS  */
-#line 3290 "MachineIndependent/glslang.y"
+  case 488: /* type_specifier_nonarray: F16IMAGE2DMS  */
+#line 3281 "MachineIndependent/glslang.y"
                    {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
     }
-#line 10339 "MachineIndependent/glslang_tab.cpp"
+#line 10314 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 490: /* type_specifier_nonarray: IIMAGE2DMS  */
-#line 3296 "MachineIndependent/glslang.y"
+  case 489: /* type_specifier_nonarray: IIMAGE2DMS  */
+#line 3287 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
     }
-#line 10349 "MachineIndependent/glslang_tab.cpp"
+#line 10324 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 491: /* type_specifier_nonarray: UIMAGE2DMS  */
-#line 3301 "MachineIndependent/glslang.y"
+  case 490: /* type_specifier_nonarray: UIMAGE2DMS  */
+#line 3292 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
     }
-#line 10359 "MachineIndependent/glslang_tab.cpp"
+#line 10334 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 492: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
-#line 3306 "MachineIndependent/glslang.y"
+  case 491: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
+#line 3297 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
     }
-#line 10369 "MachineIndependent/glslang_tab.cpp"
+#line 10344 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 493: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
-#line 3311 "MachineIndependent/glslang.y"
+  case 492: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
+#line 3302 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
     }
-#line 10380 "MachineIndependent/glslang_tab.cpp"
+#line 10355 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 494: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
-#line 3317 "MachineIndependent/glslang.y"
+  case 493: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
+#line 3308 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
     }
-#line 10390 "MachineIndependent/glslang_tab.cpp"
+#line 10365 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 495: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
-#line 3322 "MachineIndependent/glslang.y"
+  case 494: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
+#line 3313 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
     }
-#line 10400 "MachineIndependent/glslang_tab.cpp"
+#line 10375 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 496: /* type_specifier_nonarray: I64IMAGE1D  */
-#line 3327 "MachineIndependent/glslang.y"
+  case 495: /* type_specifier_nonarray: I64IMAGE1D  */
+#line 3318 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
     }
-#line 10410 "MachineIndependent/glslang_tab.cpp"
+#line 10385 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 497: /* type_specifier_nonarray: U64IMAGE1D  */
-#line 3332 "MachineIndependent/glslang.y"
+  case 496: /* type_specifier_nonarray: U64IMAGE1D  */
+#line 3323 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
     }
-#line 10420 "MachineIndependent/glslang_tab.cpp"
+#line 10395 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 498: /* type_specifier_nonarray: I64IMAGE2D  */
-#line 3337 "MachineIndependent/glslang.y"
+  case 497: /* type_specifier_nonarray: I64IMAGE2D  */
+#line 3328 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
     }
-#line 10430 "MachineIndependent/glslang_tab.cpp"
+#line 10405 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 499: /* type_specifier_nonarray: U64IMAGE2D  */
-#line 3342 "MachineIndependent/glslang.y"
+  case 498: /* type_specifier_nonarray: U64IMAGE2D  */
+#line 3333 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
     }
-#line 10440 "MachineIndependent/glslang_tab.cpp"
+#line 10415 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 500: /* type_specifier_nonarray: I64IMAGE3D  */
-#line 3347 "MachineIndependent/glslang.y"
+  case 499: /* type_specifier_nonarray: I64IMAGE3D  */
+#line 3338 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
     }
-#line 10450 "MachineIndependent/glslang_tab.cpp"
+#line 10425 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 501: /* type_specifier_nonarray: U64IMAGE3D  */
-#line 3352 "MachineIndependent/glslang.y"
+  case 500: /* type_specifier_nonarray: U64IMAGE3D  */
+#line 3343 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
     }
-#line 10460 "MachineIndependent/glslang_tab.cpp"
+#line 10435 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 502: /* type_specifier_nonarray: I64IMAGE2DRECT  */
-#line 3357 "MachineIndependent/glslang.y"
+  case 501: /* type_specifier_nonarray: I64IMAGE2DRECT  */
+#line 3348 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
     }
-#line 10470 "MachineIndependent/glslang_tab.cpp"
+#line 10445 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 503: /* type_specifier_nonarray: U64IMAGE2DRECT  */
-#line 3362 "MachineIndependent/glslang.y"
+  case 502: /* type_specifier_nonarray: U64IMAGE2DRECT  */
+#line 3353 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
     }
-#line 10480 "MachineIndependent/glslang_tab.cpp"
+#line 10455 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 504: /* type_specifier_nonarray: I64IMAGECUBE  */
-#line 3367 "MachineIndependent/glslang.y"
+  case 503: /* type_specifier_nonarray: I64IMAGECUBE  */
+#line 3358 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
     }
-#line 10490 "MachineIndependent/glslang_tab.cpp"
+#line 10465 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 505: /* type_specifier_nonarray: U64IMAGECUBE  */
-#line 3372 "MachineIndependent/glslang.y"
+  case 504: /* type_specifier_nonarray: U64IMAGECUBE  */
+#line 3363 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
     }
-#line 10500 "MachineIndependent/glslang_tab.cpp"
+#line 10475 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 506: /* type_specifier_nonarray: I64IMAGEBUFFER  */
-#line 3377 "MachineIndependent/glslang.y"
+  case 505: /* type_specifier_nonarray: I64IMAGEBUFFER  */
+#line 3368 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
     }
-#line 10510 "MachineIndependent/glslang_tab.cpp"
+#line 10485 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 507: /* type_specifier_nonarray: U64IMAGEBUFFER  */
-#line 3382 "MachineIndependent/glslang.y"
+  case 506: /* type_specifier_nonarray: U64IMAGEBUFFER  */
+#line 3373 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
     }
-#line 10520 "MachineIndependent/glslang_tab.cpp"
+#line 10495 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 508: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
-#line 3387 "MachineIndependent/glslang.y"
+  case 507: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
+#line 3378 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
     }
-#line 10530 "MachineIndependent/glslang_tab.cpp"
+#line 10505 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 509: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
-#line 3392 "MachineIndependent/glslang.y"
+  case 508: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
+#line 3383 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
     }
-#line 10540 "MachineIndependent/glslang_tab.cpp"
+#line 10515 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 510: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
-#line 3397 "MachineIndependent/glslang.y"
+  case 509: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
+#line 3388 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
     }
-#line 10550 "MachineIndependent/glslang_tab.cpp"
+#line 10525 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 511: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
-#line 3402 "MachineIndependent/glslang.y"
+  case 510: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
+#line 3393 "MachineIndependent/glslang.y"
                       {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
     }
-#line 10560 "MachineIndependent/glslang_tab.cpp"
+#line 10535 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 512: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
-#line 3407 "MachineIndependent/glslang.y"
+  case 511: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
+#line 3398 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
     }
-#line 10570 "MachineIndependent/glslang_tab.cpp"
+#line 10545 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 513: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
-#line 3412 "MachineIndependent/glslang.y"
+  case 512: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
+#line 3403 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
     }
-#line 10580 "MachineIndependent/glslang_tab.cpp"
+#line 10555 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 514: /* type_specifier_nonarray: I64IMAGE2DMS  */
-#line 3417 "MachineIndependent/glslang.y"
+  case 513: /* type_specifier_nonarray: I64IMAGE2DMS  */
+#line 3408 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
     }
-#line 10590 "MachineIndependent/glslang_tab.cpp"
+#line 10565 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 515: /* type_specifier_nonarray: U64IMAGE2DMS  */
-#line 3422 "MachineIndependent/glslang.y"
+  case 514: /* type_specifier_nonarray: U64IMAGE2DMS  */
+#line 3413 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
     }
-#line 10600 "MachineIndependent/glslang_tab.cpp"
+#line 10575 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 516: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
-#line 3427 "MachineIndependent/glslang.y"
+  case 515: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
+#line 3418 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
     }
-#line 10610 "MachineIndependent/glslang_tab.cpp"
+#line 10585 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 517: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
-#line 3432 "MachineIndependent/glslang.y"
+  case 516: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
+#line 3423 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
     }
-#line 10620 "MachineIndependent/glslang_tab.cpp"
+#line 10595 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 518: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
-#line 3437 "MachineIndependent/glslang.y"
+  case 517: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
+#line 3428 "MachineIndependent/glslang.y"
                          {  // GL_OES_EGL_image_external
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
         (yyval.interm.type).sampler.external = true;
     }
-#line 10631 "MachineIndependent/glslang_tab.cpp"
+#line 10606 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 519: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
-#line 3443 "MachineIndependent/glslang.y"
+  case 518: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
+#line 3434 "MachineIndependent/glslang.y"
                               { // GL_EXT_YUV_target
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
         (yyval.interm.type).sampler.yuv = true;
     }
-#line 10642 "MachineIndependent/glslang_tab.cpp"
+#line 10617 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 520: /* type_specifier_nonarray: SUBPASSINPUT  */
-#line 3449 "MachineIndependent/glslang.y"
+  case 519: /* type_specifier_nonarray: SUBPASSINPUT  */
+#line 3440 "MachineIndependent/glslang.y"
                    {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat);
     }
-#line 10653 "MachineIndependent/glslang_tab.cpp"
+#line 10628 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 521: /* type_specifier_nonarray: SUBPASSINPUTMS  */
-#line 3455 "MachineIndependent/glslang.y"
+  case 520: /* type_specifier_nonarray: SUBPASSINPUTMS  */
+#line 3446 "MachineIndependent/glslang.y"
                      {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
     }
-#line 10664 "MachineIndependent/glslang_tab.cpp"
+#line 10639 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 522: /* type_specifier_nonarray: F16SUBPASSINPUT  */
-#line 3461 "MachineIndependent/glslang.y"
+  case 521: /* type_specifier_nonarray: F16SUBPASSINPUT  */
+#line 3452 "MachineIndependent/glslang.y"
                       {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -10672,11 +10647,11 @@
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat16);
     }
-#line 10676 "MachineIndependent/glslang_tab.cpp"
+#line 10651 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 523: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
-#line 3468 "MachineIndependent/glslang.y"
+  case 522: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
+#line 3459 "MachineIndependent/glslang.y"
                         {
         parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
@@ -10684,116 +10659,107 @@
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
     }
-#line 10688 "MachineIndependent/glslang_tab.cpp"
+#line 10663 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 524: /* type_specifier_nonarray: ISUBPASSINPUT  */
-#line 3475 "MachineIndependent/glslang.y"
+  case 523: /* type_specifier_nonarray: ISUBPASSINPUT  */
+#line 3466 "MachineIndependent/glslang.y"
                     {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtInt);
     }
-#line 10699 "MachineIndependent/glslang_tab.cpp"
+#line 10674 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 525: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
-#line 3481 "MachineIndependent/glslang.y"
+  case 524: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
+#line 3472 "MachineIndependent/glslang.y"
                       {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtInt, true);
     }
-#line 10710 "MachineIndependent/glslang_tab.cpp"
+#line 10685 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 526: /* type_specifier_nonarray: USUBPASSINPUT  */
-#line 3487 "MachineIndependent/glslang.y"
+  case 525: /* type_specifier_nonarray: USUBPASSINPUT  */
+#line 3478 "MachineIndependent/glslang.y"
                     {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtUint);
     }
-#line 10721 "MachineIndependent/glslang_tab.cpp"
+#line 10696 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 527: /* type_specifier_nonarray: USUBPASSINPUTMS  */
-#line 3493 "MachineIndependent/glslang.y"
+  case 526: /* type_specifier_nonarray: USUBPASSINPUTMS  */
+#line 3484 "MachineIndependent/glslang.y"
                       {
         parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtSampler;
         (yyval.interm.type).sampler.setSubpass(EbtUint, true);
     }
-#line 10732 "MachineIndependent/glslang_tab.cpp"
+#line 10707 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 528: /* type_specifier_nonarray: FCOOPMATNV  */
-#line 3499 "MachineIndependent/glslang.y"
+  case 527: /* type_specifier_nonarray: FCOOPMATNV  */
+#line 3490 "MachineIndependent/glslang.y"
                  {
         parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtFloat;
         (yyval.interm.type).coopmat = true;
     }
-#line 10743 "MachineIndependent/glslang_tab.cpp"
+#line 10718 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 529: /* type_specifier_nonarray: ICOOPMATNV  */
-#line 3505 "MachineIndependent/glslang.y"
+  case 528: /* type_specifier_nonarray: ICOOPMATNV  */
+#line 3496 "MachineIndependent/glslang.y"
                  {
         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtInt;
         (yyval.interm.type).coopmat = true;
     }
-#line 10754 "MachineIndependent/glslang_tab.cpp"
+#line 10729 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 530: /* type_specifier_nonarray: UCOOPMATNV  */
-#line 3511 "MachineIndependent/glslang.y"
+  case 529: /* type_specifier_nonarray: UCOOPMATNV  */
+#line 3502 "MachineIndependent/glslang.y"
                  {
         parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).basicType = EbtUint;
         (yyval.interm.type).coopmat = true;
     }
-#line 10765 "MachineIndependent/glslang_tab.cpp"
+#line 10740 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 531: /* type_specifier_nonarray: spirv_type_specifier  */
-#line 3517 "MachineIndependent/glslang.y"
+  case 530: /* type_specifier_nonarray: spirv_type_specifier  */
+#line 3508 "MachineIndependent/glslang.y"
                            {
         parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
         (yyval.interm.type) = (yyvsp[0].interm.type);
     }
-#line 10774 "MachineIndependent/glslang_tab.cpp"
+#line 10749 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 532: /* type_specifier_nonarray: HITOBJECTNV  */
-#line 3521 "MachineIndependent/glslang.y"
-                      {
-       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
-       (yyval.interm.type).basicType = EbtHitObjectNV;
-	}
-#line 10783 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 533: /* type_specifier_nonarray: struct_specifier  */
-#line 3526 "MachineIndependent/glslang.y"
+  case 531: /* type_specifier_nonarray: struct_specifier  */
+#line 3513 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.type) = (yyvsp[0].interm.type);
         (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
         parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
     }
-#line 10793 "MachineIndependent/glslang_tab.cpp"
+#line 10759 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 534: /* type_specifier_nonarray: TYPE_NAME  */
-#line 3531 "MachineIndependent/glslang.y"
+  case 532: /* type_specifier_nonarray: TYPE_NAME  */
+#line 3518 "MachineIndependent/glslang.y"
                 {
         //
         // This is for user defined type names.  The lexical phase looked up the
@@ -10807,47 +10773,47 @@
         } else
             parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
     }
-#line 10811 "MachineIndependent/glslang_tab.cpp"
+#line 10777 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 535: /* precision_qualifier: HIGH_PRECISION  */
-#line 3547 "MachineIndependent/glslang.y"
+  case 533: /* precision_qualifier: HIGH_PRECISION  */
+#line 3534 "MachineIndependent/glslang.y"
                      {
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
     }
-#line 10821 "MachineIndependent/glslang_tab.cpp"
+#line 10787 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 536: /* precision_qualifier: MEDIUM_PRECISION  */
-#line 3552 "MachineIndependent/glslang.y"
+  case 534: /* precision_qualifier: MEDIUM_PRECISION  */
+#line 3539 "MachineIndependent/glslang.y"
                        {
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
     }
-#line 10831 "MachineIndependent/glslang_tab.cpp"
+#line 10797 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 537: /* precision_qualifier: LOW_PRECISION  */
-#line 3557 "MachineIndependent/glslang.y"
+  case 535: /* precision_qualifier: LOW_PRECISION  */
+#line 3544 "MachineIndependent/glslang.y"
                     {
         parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
         (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
         parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
     }
-#line 10841 "MachineIndependent/glslang_tab.cpp"
+#line 10807 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 538: /* $@3: %empty  */
-#line 3565 "MachineIndependent/glslang.y"
+  case 536: /* $@3: %empty  */
+#line 3552 "MachineIndependent/glslang.y"
                                    { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 10847 "MachineIndependent/glslang_tab.cpp"
+#line 10813 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 539: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
-#line 3565 "MachineIndependent/glslang.y"
+  case 537: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
+#line 3552 "MachineIndependent/glslang.y"
                                                                                                                    {
         TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
         parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
@@ -10859,17 +10825,17 @@
         (yyval.interm.type).userDef = structure;
         --parseContext.structNestingLevel;
     }
-#line 10863 "MachineIndependent/glslang_tab.cpp"
+#line 10829 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 540: /* $@4: %empty  */
-#line 3576 "MachineIndependent/glslang.y"
+  case 538: /* $@4: %empty  */
+#line 3563 "MachineIndependent/glslang.y"
                         { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 10869 "MachineIndependent/glslang_tab.cpp"
+#line 10835 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 541: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
-#line 3576 "MachineIndependent/glslang.y"
+  case 539: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
+#line 3563 "MachineIndependent/glslang.y"
                                                                                                         {
         TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
         (yyval.interm.type).init((yyvsp[-4].lex).loc);
@@ -10877,19 +10843,19 @@
         (yyval.interm.type).userDef = structure;
         --parseContext.structNestingLevel;
     }
-#line 10881 "MachineIndependent/glslang_tab.cpp"
+#line 10847 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 542: /* struct_declaration_list: struct_declaration  */
-#line 3586 "MachineIndependent/glslang.y"
+  case 540: /* struct_declaration_list: struct_declaration  */
+#line 3573 "MachineIndependent/glslang.y"
                          {
         (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
     }
-#line 10889 "MachineIndependent/glslang_tab.cpp"
+#line 10855 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 543: /* struct_declaration_list: struct_declaration_list struct_declaration  */
-#line 3589 "MachineIndependent/glslang.y"
+  case 541: /* struct_declaration_list: struct_declaration_list struct_declaration  */
+#line 3576 "MachineIndependent/glslang.y"
                                                  {
         (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
         for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
@@ -10900,11 +10866,11 @@
             (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
         }
     }
-#line 10904 "MachineIndependent/glslang_tab.cpp"
+#line 10870 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 544: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
-#line 3602 "MachineIndependent/glslang.y"
+  case 542: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON  */
+#line 3589 "MachineIndependent/glslang.y"
                                                       {
         if ((yyvsp[-2].interm.type).arraySizes) {
             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -10927,11 +10893,11 @@
             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
         }
     }
-#line 10931 "MachineIndependent/glslang_tab.cpp"
+#line 10897 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 545: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
-#line 3624 "MachineIndependent/glslang.y"
+  case 543: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
+#line 3611 "MachineIndependent/glslang.y"
                                                                      {
         if ((yyvsp[-2].interm.type).arraySizes) {
             parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -10956,38 +10922,38 @@
             (*(yyval.interm.typeList))[i].type->shallowCopy(type);
         }
     }
-#line 10960 "MachineIndependent/glslang_tab.cpp"
+#line 10926 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 546: /* struct_declarator_list: struct_declarator  */
-#line 3651 "MachineIndependent/glslang.y"
+  case 544: /* struct_declarator_list: struct_declarator  */
+#line 3638 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.typeList) = new TTypeList;
         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
     }
-#line 10969 "MachineIndependent/glslang_tab.cpp"
+#line 10935 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 547: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
-#line 3655 "MachineIndependent/glslang.y"
+  case 545: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
+#line 3642 "MachineIndependent/glslang.y"
                                                      {
         (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
     }
-#line 10977 "MachineIndependent/glslang_tab.cpp"
+#line 10943 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 548: /* struct_declarator: IDENTIFIER  */
-#line 3661 "MachineIndependent/glslang.y"
+  case 546: /* struct_declarator: IDENTIFIER  */
+#line 3648 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.typeLine).type = new TType(EbtVoid);
         (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
     }
-#line 10987 "MachineIndependent/glslang_tab.cpp"
+#line 10953 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 549: /* struct_declarator: IDENTIFIER array_specifier  */
-#line 3666 "MachineIndependent/glslang.y"
+  case 547: /* struct_declarator: IDENTIFIER array_specifier  */
+#line 3653 "MachineIndependent/glslang.y"
                                  {
         parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
 
@@ -10996,246 +10962,246 @@
         (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
         (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
     }
-#line 11000 "MachineIndependent/glslang_tab.cpp"
+#line 10966 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 550: /* initializer: assignment_expression  */
-#line 3677 "MachineIndependent/glslang.y"
+  case 548: /* initializer: assignment_expression  */
+#line 3664 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 11008 "MachineIndependent/glslang_tab.cpp"
+#line 10974 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 551: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
-#line 3681 "MachineIndependent/glslang.y"
+  case 549: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
+#line 3668 "MachineIndependent/glslang.y"
                                               {
         const char* initFeature = "{ } style initializers";
         parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
         parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
         (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
     }
-#line 11019 "MachineIndependent/glslang_tab.cpp"
+#line 10985 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 552: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
-#line 3687 "MachineIndependent/glslang.y"
+  case 550: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
+#line 3674 "MachineIndependent/glslang.y"
                                                     {
         const char* initFeature = "{ } style initializers";
         parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
         parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
         (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
     }
-#line 11030 "MachineIndependent/glslang_tab.cpp"
+#line 10996 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 553: /* initializer: LEFT_BRACE RIGHT_BRACE  */
-#line 3693 "MachineIndependent/glslang.y"
+  case 551: /* initializer: LEFT_BRACE RIGHT_BRACE  */
+#line 3680 "MachineIndependent/glslang.y"
                              {
         const char* initFeature = "empty { } initializer";
         parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
         parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
         (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
     }
-#line 11041 "MachineIndependent/glslang_tab.cpp"
+#line 11007 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 554: /* initializer_list: initializer  */
-#line 3704 "MachineIndependent/glslang.y"
+  case 552: /* initializer_list: initializer  */
+#line 3691 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
     }
-#line 11049 "MachineIndependent/glslang_tab.cpp"
+#line 11015 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 555: /* initializer_list: initializer_list COMMA initializer  */
-#line 3707 "MachineIndependent/glslang.y"
+  case 553: /* initializer_list: initializer_list COMMA initializer  */
+#line 3694 "MachineIndependent/glslang.y"
                                          {
         (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
     }
-#line 11057 "MachineIndependent/glslang_tab.cpp"
+#line 11023 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 556: /* declaration_statement: declaration  */
-#line 3714 "MachineIndependent/glslang.y"
+  case 554: /* declaration_statement: declaration  */
+#line 3701 "MachineIndependent/glslang.y"
                   { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11063 "MachineIndependent/glslang_tab.cpp"
+#line 11029 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 557: /* statement: compound_statement  */
+  case 555: /* statement: compound_statement  */
+#line 3705 "MachineIndependent/glslang.y"
+                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11035 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 556: /* statement: simple_statement  */
+#line 3706 "MachineIndependent/glslang.y"
+                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11041 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 557: /* simple_statement: declaration_statement  */
+#line 3712 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11047 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 558: /* simple_statement: expression_statement  */
+#line 3713 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11053 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 559: /* simple_statement: selection_statement  */
+#line 3714 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11059 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 560: /* simple_statement: switch_statement  */
+#line 3715 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11065 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 561: /* simple_statement: case_label  */
+#line 3716 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11071 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 562: /* simple_statement: iteration_statement  */
+#line 3717 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11077 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 563: /* simple_statement: jump_statement  */
 #line 3718 "MachineIndependent/glslang.y"
-                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11069 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 558: /* statement: simple_statement  */
-#line 3719 "MachineIndependent/glslang.y"
-                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11075 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 559: /* simple_statement: declaration_statement  */
-#line 3725 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11081 "MachineIndependent/glslang_tab.cpp"
+#line 11083 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 560: /* simple_statement: expression_statement  */
+  case 564: /* simple_statement: demote_statement  */
+#line 3720 "MachineIndependent/glslang.y"
+                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 11089 "MachineIndependent/glslang_tab.cpp"
+    break;
+
+  case 565: /* demote_statement: DEMOTE SEMICOLON  */
 #line 3726 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11087 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 561: /* simple_statement: selection_statement  */
-#line 3727 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11093 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 562: /* simple_statement: switch_statement  */
-#line 3728 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11099 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 563: /* simple_statement: case_label  */
-#line 3729 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11105 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 564: /* simple_statement: iteration_statement  */
-#line 3730 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11111 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 565: /* simple_statement: jump_statement  */
-#line 3731 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11117 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 566: /* simple_statement: demote_statement  */
-#line 3733 "MachineIndependent/glslang.y"
-                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11123 "MachineIndependent/glslang_tab.cpp"
-    break;
-
-  case 567: /* demote_statement: DEMOTE SEMICOLON  */
-#line 3739 "MachineIndependent/glslang.y"
                        {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
         parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
     }
-#line 11133 "MachineIndependent/glslang_tab.cpp"
+#line 11099 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 568: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
-#line 3748 "MachineIndependent/glslang.y"
+  case 566: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
+#line 3735 "MachineIndependent/glslang.y"
                              { (yyval.interm.intermNode) = 0; }
-#line 11139 "MachineIndependent/glslang_tab.cpp"
+#line 11105 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 569: /* $@5: %empty  */
-#line 3749 "MachineIndependent/glslang.y"
+  case 567: /* $@5: %empty  */
+#line 3736 "MachineIndependent/glslang.y"
                  {
         parseContext.symbolTable.push();
         ++parseContext.statementNestingLevel;
     }
-#line 11148 "MachineIndependent/glslang_tab.cpp"
+#line 11114 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 570: /* $@6: %empty  */
-#line 3753 "MachineIndependent/glslang.y"
+  case 568: /* $@6: %empty  */
+#line 3740 "MachineIndependent/glslang.y"
                      {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         --parseContext.statementNestingLevel;
     }
-#line 11157 "MachineIndependent/glslang_tab.cpp"
+#line 11123 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 571: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
-#line 3757 "MachineIndependent/glslang.y"
+  case 569: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE  */
+#line 3744 "MachineIndependent/glslang.y"
                   {
         if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
             (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
         (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
     }
-#line 11167 "MachineIndependent/glslang_tab.cpp"
+#line 11133 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 572: /* statement_no_new_scope: compound_statement_no_new_scope  */
-#line 3765 "MachineIndependent/glslang.y"
+  case 570: /* statement_no_new_scope: compound_statement_no_new_scope  */
+#line 3752 "MachineIndependent/glslang.y"
                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11173 "MachineIndependent/glslang_tab.cpp"
+#line 11139 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 573: /* statement_no_new_scope: simple_statement  */
-#line 3766 "MachineIndependent/glslang.y"
+  case 571: /* statement_no_new_scope: simple_statement  */
+#line 3753 "MachineIndependent/glslang.y"
                                       { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 11179 "MachineIndependent/glslang_tab.cpp"
+#line 11145 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 574: /* $@7: %empty  */
-#line 3770 "MachineIndependent/glslang.y"
+  case 572: /* $@7: %empty  */
+#line 3757 "MachineIndependent/glslang.y"
       {
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11187 "MachineIndependent/glslang_tab.cpp"
+#line 11153 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 575: /* statement_scoped: $@7 compound_statement  */
-#line 3773 "MachineIndependent/glslang.y"
+  case 573: /* statement_scoped: $@7 compound_statement  */
+#line 3760 "MachineIndependent/glslang.y"
                           {
         --parseContext.controlFlowNestingLevel;
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11196 "MachineIndependent/glslang_tab.cpp"
+#line 11162 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 576: /* $@8: %empty  */
-#line 3777 "MachineIndependent/glslang.y"
+  case 574: /* $@8: %empty  */
+#line 3764 "MachineIndependent/glslang.y"
       {
         parseContext.symbolTable.push();
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11206 "MachineIndependent/glslang_tab.cpp"
+#line 11172 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 577: /* statement_scoped: $@8 simple_statement  */
-#line 3782 "MachineIndependent/glslang.y"
+  case 575: /* statement_scoped: $@8 simple_statement  */
+#line 3769 "MachineIndependent/glslang.y"
                        {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11217 "MachineIndependent/glslang_tab.cpp"
+#line 11183 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 578: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
-#line 3791 "MachineIndependent/glslang.y"
+  case 576: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
+#line 3778 "MachineIndependent/glslang.y"
                              {
         (yyval.interm.intermNode) = 0;
     }
-#line 11225 "MachineIndependent/glslang_tab.cpp"
+#line 11191 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 579: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
-#line 3794 "MachineIndependent/glslang.y"
+  case 577: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
+#line 3781 "MachineIndependent/glslang.y"
                                             {
         if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
             (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
         (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
     }
-#line 11235 "MachineIndependent/glslang_tab.cpp"
+#line 11201 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 580: /* statement_list: statement  */
-#line 3802 "MachineIndependent/glslang.y"
+  case 578: /* statement_list: statement  */
+#line 3789 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
@@ -11244,11 +11210,11 @@
             (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
         }
     }
-#line 11248 "MachineIndependent/glslang_tab.cpp"
+#line 11214 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 581: /* statement_list: statement_list statement  */
-#line 3810 "MachineIndependent/glslang.y"
+  case 579: /* statement_list: statement_list statement  */
+#line 3797 "MachineIndependent/glslang.y"
                                {
         if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
                                             (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -11257,77 +11223,77 @@
         } else
             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 11261 "MachineIndependent/glslang_tab.cpp"
+#line 11227 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 582: /* expression_statement: SEMICOLON  */
-#line 3821 "MachineIndependent/glslang.y"
+  case 580: /* expression_statement: SEMICOLON  */
+#line 3808 "MachineIndependent/glslang.y"
                  { (yyval.interm.intermNode) = 0; }
-#line 11267 "MachineIndependent/glslang_tab.cpp"
+#line 11233 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 583: /* expression_statement: expression SEMICOLON  */
-#line 3822 "MachineIndependent/glslang.y"
+  case 581: /* expression_statement: expression SEMICOLON  */
+#line 3809 "MachineIndependent/glslang.y"
                             { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 11273 "MachineIndependent/glslang_tab.cpp"
+#line 11239 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 584: /* selection_statement: selection_statement_nonattributed  */
-#line 3826 "MachineIndependent/glslang.y"
+  case 582: /* selection_statement: selection_statement_nonattributed  */
+#line 3813 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11281 "MachineIndependent/glslang_tab.cpp"
+#line 11247 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 585: /* selection_statement: attribute selection_statement_nonattributed  */
-#line 3830 "MachineIndependent/glslang.y"
+  case 583: /* selection_statement: attribute selection_statement_nonattributed  */
+#line 3817 "MachineIndependent/glslang.y"
                                                   {
         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11291 "MachineIndependent/glslang_tab.cpp"
+#line 11257 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 586: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
-#line 3838 "MachineIndependent/glslang.y"
+  case 584: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
+#line 3825 "MachineIndependent/glslang.y"
                                                                     {
         parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
         (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
     }
-#line 11300 "MachineIndependent/glslang_tab.cpp"
+#line 11266 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 587: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
-#line 3845 "MachineIndependent/glslang.y"
+  case 585: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
+#line 3832 "MachineIndependent/glslang.y"
                                              {
         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
     }
-#line 11309 "MachineIndependent/glslang_tab.cpp"
+#line 11275 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 588: /* selection_rest_statement: statement_scoped  */
-#line 3849 "MachineIndependent/glslang.y"
+  case 586: /* selection_rest_statement: statement_scoped  */
+#line 3836 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
         (yyval.interm.nodePair).node2 = 0;
     }
-#line 11318 "MachineIndependent/glslang_tab.cpp"
+#line 11284 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 589: /* condition: expression  */
-#line 3857 "MachineIndependent/glslang.y"
+  case 587: /* condition: expression  */
+#line 3844 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
         parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
     }
-#line 11327 "MachineIndependent/glslang_tab.cpp"
+#line 11293 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 590: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
-#line 3861 "MachineIndependent/glslang.y"
+  case 588: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
+#line 3848 "MachineIndependent/glslang.y"
                                                         {
         parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
 
@@ -11338,29 +11304,29 @@
         else
             (yyval.interm.intermTypedNode) = 0;
     }
-#line 11342 "MachineIndependent/glslang_tab.cpp"
+#line 11308 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 591: /* switch_statement: switch_statement_nonattributed  */
-#line 3874 "MachineIndependent/glslang.y"
+  case 589: /* switch_statement: switch_statement_nonattributed  */
+#line 3861 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11350 "MachineIndependent/glslang_tab.cpp"
+#line 11316 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 592: /* switch_statement: attribute switch_statement_nonattributed  */
-#line 3878 "MachineIndependent/glslang.y"
+  case 590: /* switch_statement: attribute switch_statement_nonattributed  */
+#line 3865 "MachineIndependent/glslang.y"
                                                {
         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11360 "MachineIndependent/glslang_tab.cpp"
+#line 11326 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 593: /* $@9: %empty  */
-#line 3886 "MachineIndependent/glslang.y"
+  case 591: /* $@9: %empty  */
+#line 3873 "MachineIndependent/glslang.y"
                                                {
         // start new switch sequence on the switch stack
         ++parseContext.controlFlowNestingLevel;
@@ -11369,11 +11335,11 @@
         parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
         parseContext.symbolTable.push();
     }
-#line 11373 "MachineIndependent/glslang_tab.cpp"
+#line 11339 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 594: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
-#line 3894 "MachineIndependent/glslang.y"
+  case 592: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
+#line 3881 "MachineIndependent/glslang.y"
                                                  {
         (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
         delete parseContext.switchSequenceStack.back();
@@ -11383,27 +11349,27 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11387 "MachineIndependent/glslang_tab.cpp"
+#line 11353 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 595: /* switch_statement_list: %empty  */
-#line 3906 "MachineIndependent/glslang.y"
+  case 593: /* switch_statement_list: %empty  */
+#line 3893 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = 0;
     }
-#line 11395 "MachineIndependent/glslang_tab.cpp"
+#line 11361 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 596: /* switch_statement_list: statement_list  */
-#line 3909 "MachineIndependent/glslang.y"
+  case 594: /* switch_statement_list: statement_list  */
+#line 3896 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11403 "MachineIndependent/glslang_tab.cpp"
+#line 11369 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 597: /* case_label: CASE expression COLON  */
-#line 3915 "MachineIndependent/glslang.y"
+  case 595: /* case_label: CASE expression COLON  */
+#line 3902 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermNode) = 0;
         if (parseContext.switchLevel.size() == 0)
@@ -11416,11 +11382,11 @@
             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
         }
     }
-#line 11420 "MachineIndependent/glslang_tab.cpp"
+#line 11386 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 598: /* case_label: DEFAULT COLON  */
-#line 3927 "MachineIndependent/glslang.y"
+  case 596: /* case_label: DEFAULT COLON  */
+#line 3914 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = 0;
         if (parseContext.switchLevel.size() == 0)
@@ -11430,29 +11396,29 @@
         else
             (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
     }
-#line 11434 "MachineIndependent/glslang_tab.cpp"
+#line 11400 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 599: /* iteration_statement: iteration_statement_nonattributed  */
-#line 3939 "MachineIndependent/glslang.y"
+  case 597: /* iteration_statement: iteration_statement_nonattributed  */
+#line 3926 "MachineIndependent/glslang.y"
                                         {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11442 "MachineIndependent/glslang_tab.cpp"
+#line 11408 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 600: /* iteration_statement: attribute iteration_statement_nonattributed  */
-#line 3943 "MachineIndependent/glslang.y"
+  case 598: /* iteration_statement: attribute iteration_statement_nonattributed  */
+#line 3930 "MachineIndependent/glslang.y"
                                                   {
         parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
         parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11452 "MachineIndependent/glslang_tab.cpp"
+#line 11418 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 601: /* $@10: %empty  */
-#line 3951 "MachineIndependent/glslang.y"
+  case 599: /* $@10: %empty  */
+#line 3938 "MachineIndependent/glslang.y"
                        {
         if (! parseContext.limits.whileLoops)
             parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -11461,11 +11427,11 @@
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11465 "MachineIndependent/glslang_tab.cpp"
+#line 11431 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 602: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
-#line 3959 "MachineIndependent/glslang.y"
+  case 600: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope  */
+#line 3946 "MachineIndependent/glslang.y"
                                                    {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
@@ -11473,22 +11439,22 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11477 "MachineIndependent/glslang_tab.cpp"
+#line 11443 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 603: /* $@11: %empty  */
-#line 3966 "MachineIndependent/glslang.y"
+  case 601: /* $@11: %empty  */
+#line 3953 "MachineIndependent/glslang.y"
          {
         parseContext.symbolTable.push();
         ++parseContext.loopNestingLevel;
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11488 "MachineIndependent/glslang_tab.cpp"
+#line 11454 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 604: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
-#line 3972 "MachineIndependent/glslang.y"
+  case 602: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
+#line 3959 "MachineIndependent/glslang.y"
                                                                   {
         if (! parseContext.limits.whileLoops)
             parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -11501,22 +11467,22 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11505 "MachineIndependent/glslang_tab.cpp"
+#line 11471 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 605: /* $@12: %empty  */
-#line 3984 "MachineIndependent/glslang.y"
+  case 603: /* $@12: %empty  */
+#line 3971 "MachineIndependent/glslang.y"
                      {
         parseContext.symbolTable.push();
         ++parseContext.loopNestingLevel;
         ++parseContext.statementNestingLevel;
         ++parseContext.controlFlowNestingLevel;
     }
-#line 11516 "MachineIndependent/glslang_tab.cpp"
+#line 11482 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 606: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
-#line 3990 "MachineIndependent/glslang.y"
+  case 604: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
+#line 3977 "MachineIndependent/glslang.y"
                                                                                {
         parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -11529,81 +11495,81 @@
         --parseContext.statementNestingLevel;
         --parseContext.controlFlowNestingLevel;
     }
-#line 11533 "MachineIndependent/glslang_tab.cpp"
+#line 11499 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 607: /* for_init_statement: expression_statement  */
-#line 4005 "MachineIndependent/glslang.y"
+  case 605: /* for_init_statement: expression_statement  */
+#line 3992 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11541 "MachineIndependent/glslang_tab.cpp"
+#line 11507 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 608: /* for_init_statement: declaration_statement  */
-#line 4008 "MachineIndependent/glslang.y"
+  case 606: /* for_init_statement: declaration_statement  */
+#line 3995 "MachineIndependent/glslang.y"
                             {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11549 "MachineIndependent/glslang_tab.cpp"
+#line 11515 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 609: /* conditionopt: condition  */
-#line 4014 "MachineIndependent/glslang.y"
+  case 607: /* conditionopt: condition  */
+#line 4001 "MachineIndependent/glslang.y"
                 {
         (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
     }
-#line 11557 "MachineIndependent/glslang_tab.cpp"
+#line 11523 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 610: /* conditionopt: %empty  */
-#line 4017 "MachineIndependent/glslang.y"
+  case 608: /* conditionopt: %empty  */
+#line 4004 "MachineIndependent/glslang.y"
                         {
         (yyval.interm.intermTypedNode) = 0;
     }
-#line 11565 "MachineIndependent/glslang_tab.cpp"
+#line 11531 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 611: /* for_rest_statement: conditionopt SEMICOLON  */
-#line 4023 "MachineIndependent/glslang.y"
+  case 609: /* for_rest_statement: conditionopt SEMICOLON  */
+#line 4010 "MachineIndependent/glslang.y"
                              {
         (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
         (yyval.interm.nodePair).node2 = 0;
     }
-#line 11574 "MachineIndependent/glslang_tab.cpp"
+#line 11540 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 612: /* for_rest_statement: conditionopt SEMICOLON expression  */
-#line 4027 "MachineIndependent/glslang.y"
+  case 610: /* for_rest_statement: conditionopt SEMICOLON expression  */
+#line 4014 "MachineIndependent/glslang.y"
                                          {
         (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
         (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
     }
-#line 11583 "MachineIndependent/glslang_tab.cpp"
+#line 11549 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 613: /* jump_statement: CONTINUE SEMICOLON  */
-#line 4034 "MachineIndependent/glslang.y"
+  case 611: /* jump_statement: CONTINUE SEMICOLON  */
+#line 4021 "MachineIndependent/glslang.y"
                          {
         if (parseContext.loopNestingLevel <= 0)
             parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
     }
-#line 11593 "MachineIndependent/glslang_tab.cpp"
+#line 11559 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 614: /* jump_statement: BREAK SEMICOLON  */
-#line 4039 "MachineIndependent/glslang.y"
+  case 612: /* jump_statement: BREAK SEMICOLON  */
+#line 4026 "MachineIndependent/glslang.y"
                       {
         if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
             parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
     }
-#line 11603 "MachineIndependent/glslang_tab.cpp"
+#line 11569 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 615: /* jump_statement: RETURN SEMICOLON  */
-#line 4044 "MachineIndependent/glslang.y"
+  case 613: /* jump_statement: RETURN SEMICOLON  */
+#line 4031 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
         if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -11611,101 +11577,101 @@
         if (parseContext.inMain)
             parseContext.postEntryPointReturn = true;
     }
-#line 11615 "MachineIndependent/glslang_tab.cpp"
+#line 11581 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 616: /* jump_statement: RETURN expression SEMICOLON  */
-#line 4051 "MachineIndependent/glslang.y"
+  case 614: /* jump_statement: RETURN expression SEMICOLON  */
+#line 4038 "MachineIndependent/glslang.y"
                                   {
         (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 11623 "MachineIndependent/glslang_tab.cpp"
+#line 11589 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 617: /* jump_statement: DISCARD SEMICOLON  */
-#line 4054 "MachineIndependent/glslang.y"
+  case 615: /* jump_statement: DISCARD SEMICOLON  */
+#line 4041 "MachineIndependent/glslang.y"
                         {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
     }
-#line 11632 "MachineIndependent/glslang_tab.cpp"
+#line 11598 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 618: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
-#line 4058 "MachineIndependent/glslang.y"
+  case 616: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
+#line 4045 "MachineIndependent/glslang.y"
                                      {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
     }
-#line 11641 "MachineIndependent/glslang_tab.cpp"
+#line 11607 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 619: /* jump_statement: TERMINATE_RAY SEMICOLON  */
-#line 4063 "MachineIndependent/glslang.y"
+  case 617: /* jump_statement: TERMINATE_RAY SEMICOLON  */
+#line 4050 "MachineIndependent/glslang.y"
                               {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
     }
-#line 11650 "MachineIndependent/glslang_tab.cpp"
+#line 11616 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 620: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
-#line 4067 "MachineIndependent/glslang.y"
+  case 618: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
+#line 4054 "MachineIndependent/glslang.y"
                                     {
         parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
         (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
     }
-#line 11659 "MachineIndependent/glslang_tab.cpp"
+#line 11625 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 621: /* translation_unit: external_declaration  */
-#line 4077 "MachineIndependent/glslang.y"
+  case 619: /* translation_unit: external_declaration  */
+#line 4064 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
         parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
     }
-#line 11668 "MachineIndependent/glslang_tab.cpp"
+#line 11634 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 622: /* translation_unit: translation_unit external_declaration  */
-#line 4081 "MachineIndependent/glslang.y"
+  case 620: /* translation_unit: translation_unit external_declaration  */
+#line 4068 "MachineIndependent/glslang.y"
                                             {
         if ((yyvsp[0].interm.intermNode) != nullptr) {
             (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
             parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
         }
     }
-#line 11679 "MachineIndependent/glslang_tab.cpp"
+#line 11645 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 623: /* external_declaration: function_definition  */
-#line 4090 "MachineIndependent/glslang.y"
+  case 621: /* external_declaration: function_definition  */
+#line 4077 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11687 "MachineIndependent/glslang_tab.cpp"
+#line 11653 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 624: /* external_declaration: declaration  */
-#line 4093 "MachineIndependent/glslang.y"
+  case 622: /* external_declaration: declaration  */
+#line 4080 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
     }
-#line 11695 "MachineIndependent/glslang_tab.cpp"
+#line 11661 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 625: /* external_declaration: SEMICOLON  */
-#line 4097 "MachineIndependent/glslang.y"
+  case 623: /* external_declaration: SEMICOLON  */
+#line 4084 "MachineIndependent/glslang.y"
                 {
         parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
         parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
         (yyval.interm.intermNode) = nullptr;
     }
-#line 11705 "MachineIndependent/glslang_tab.cpp"
+#line 11671 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 626: /* $@13: %empty  */
-#line 4106 "MachineIndependent/glslang.y"
+  case 624: /* $@13: %empty  */
+#line 4093 "MachineIndependent/glslang.y"
                          {
         (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
         (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
@@ -11718,11 +11684,11 @@
             ++parseContext.statementNestingLevel;
         }
     }
-#line 11722 "MachineIndependent/glslang_tab.cpp"
+#line 11688 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 627: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
-#line 4118 "MachineIndependent/glslang.y"
+  case 625: /* function_definition: function_prototype $@13 compound_statement_no_new_scope  */
+#line 4105 "MachineIndependent/glslang.y"
                                     {
         //   May be best done as post process phase on intermediate code
         if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
@@ -11749,228 +11715,228 @@
             --parseContext.statementNestingLevel;
         }
     }
-#line 11753 "MachineIndependent/glslang_tab.cpp"
+#line 11719 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 628: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
-#line 4148 "MachineIndependent/glslang.y"
+  case 626: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
+#line 4135 "MachineIndependent/glslang.y"
                                                                            {
         (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
     }
-#line 11761 "MachineIndependent/glslang_tab.cpp"
+#line 11727 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 629: /* attribute_list: single_attribute  */
-#line 4153 "MachineIndependent/glslang.y"
+  case 627: /* attribute_list: single_attribute  */
+#line 4140 "MachineIndependent/glslang.y"
                        {
         (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
     }
-#line 11769 "MachineIndependent/glslang_tab.cpp"
+#line 11735 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 630: /* attribute_list: attribute_list COMMA single_attribute  */
-#line 4156 "MachineIndependent/glslang.y"
+  case 628: /* attribute_list: attribute_list COMMA single_attribute  */
+#line 4143 "MachineIndependent/glslang.y"
                                             {
         (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
     }
-#line 11777 "MachineIndependent/glslang_tab.cpp"
+#line 11743 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 631: /* single_attribute: IDENTIFIER  */
-#line 4161 "MachineIndependent/glslang.y"
+  case 629: /* single_attribute: IDENTIFIER  */
+#line 4148 "MachineIndependent/glslang.y"
                  {
         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
     }
-#line 11785 "MachineIndependent/glslang_tab.cpp"
+#line 11751 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 632: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
-#line 4164 "MachineIndependent/glslang.y"
+  case 630: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
+#line 4151 "MachineIndependent/glslang.y"
                                                             {
         (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
     }
-#line 11793 "MachineIndependent/glslang_tab.cpp"
+#line 11759 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 633: /* spirv_requirements_list: spirv_requirements_parameter  */
-#line 4171 "MachineIndependent/glslang.y"
+  case 631: /* spirv_requirements_list: spirv_requirements_parameter  */
+#line 4158 "MachineIndependent/glslang.y"
                                    {
         (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
     }
-#line 11801 "MachineIndependent/glslang_tab.cpp"
+#line 11767 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 634: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
-#line 4174 "MachineIndependent/glslang.y"
+  case 632: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
+#line 4161 "MachineIndependent/glslang.y"
                                                                  {
         (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
     }
-#line 11809 "MachineIndependent/glslang_tab.cpp"
+#line 11775 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 635: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
-#line 4179 "MachineIndependent/glslang.y"
+  case 633: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
+#line 4166 "MachineIndependent/glslang.y"
                                                                        {
         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
     }
-#line 11817 "MachineIndependent/glslang_tab.cpp"
+#line 11783 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 636: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
-#line 4182 "MachineIndependent/glslang.y"
+  case 634: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
+#line 4169 "MachineIndependent/glslang.y"
                                                                         {
         (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 11825 "MachineIndependent/glslang_tab.cpp"
+#line 11791 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 637: /* spirv_extension_list: STRING_LITERAL  */
-#line 4187 "MachineIndependent/glslang.y"
+  case 635: /* spirv_extension_list: STRING_LITERAL  */
+#line 4174 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 11833 "MachineIndependent/glslang_tab.cpp"
+#line 11799 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 638: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
-#line 4190 "MachineIndependent/glslang.y"
+  case 636: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
+#line 4177 "MachineIndependent/glslang.y"
                                                 {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 11841 "MachineIndependent/glslang_tab.cpp"
+#line 11807 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 639: /* spirv_capability_list: INTCONSTANT  */
-#line 4195 "MachineIndependent/glslang.y"
+  case 637: /* spirv_capability_list: INTCONSTANT  */
+#line 4182 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
     }
-#line 11849 "MachineIndependent/glslang_tab.cpp"
+#line 11815 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 640: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
-#line 4198 "MachineIndependent/glslang.y"
+  case 638: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
+#line 4185 "MachineIndependent/glslang.y"
                                               {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
     }
-#line 11857 "MachineIndependent/glslang_tab.cpp"
+#line 11823 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4203 "MachineIndependent/glslang.y"
+  case 639: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4190 "MachineIndependent/glslang.y"
                                                               {
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
         (yyval.interm.intermNode) = 0;
     }
-#line 11866 "MachineIndependent/glslang_tab.cpp"
+#line 11832 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 642: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4207 "MachineIndependent/glslang.y"
+  case 640: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4194 "MachineIndependent/glslang.y"
                                                                                             {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
         (yyval.interm.intermNode) = 0;
     }
-#line 11876 "MachineIndependent/glslang_tab.cpp"
+#line 11842 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 643: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
-#line 4212 "MachineIndependent/glslang.y"
+  case 641: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
+#line 4199 "MachineIndependent/glslang.y"
                                                                                                         {
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11885 "MachineIndependent/glslang_tab.cpp"
+#line 11851 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 644: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
-#line 4216 "MachineIndependent/glslang.y"
+  case 642: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
+#line 4203 "MachineIndependent/glslang.y"
                                                                                                                                       {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11895 "MachineIndependent/glslang_tab.cpp"
+#line 11861 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 645: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
-#line 4221 "MachineIndependent/glslang.y"
+  case 643: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
+#line 4208 "MachineIndependent/glslang.y"
                                                                                                               {
         parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11904 "MachineIndependent/glslang_tab.cpp"
+#line 11870 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 646: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
-#line 4225 "MachineIndependent/glslang.y"
+  case 644: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
+#line 4212 "MachineIndependent/glslang.y"
                                                                                                                                             {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
         (yyval.interm.intermNode) = 0;
     }
-#line 11914 "MachineIndependent/glslang_tab.cpp"
+#line 11880 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 647: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
-#line 4232 "MachineIndependent/glslang.y"
+  case 645: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
+#line 4219 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
     }
-#line 11922 "MachineIndependent/glslang_tab.cpp"
+#line 11888 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 648: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
-#line 4235 "MachineIndependent/glslang.y"
+  case 646: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
+#line 4222 "MachineIndependent/glslang.y"
                                                                                {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 11930 "MachineIndependent/glslang_tab.cpp"
+#line 11896 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 649: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
-#line 4240 "MachineIndependent/glslang.y"
+  case 647: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
+#line 4227 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 11938 "MachineIndependent/glslang_tab.cpp"
+#line 11904 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 650: /* spirv_execution_mode_parameter: INTCONSTANT  */
-#line 4243 "MachineIndependent/glslang.y"
+  case 648: /* spirv_execution_mode_parameter: INTCONSTANT  */
+#line 4230 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 11946 "MachineIndependent/glslang_tab.cpp"
+#line 11912 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 651: /* spirv_execution_mode_parameter: UINTCONSTANT  */
-#line 4246 "MachineIndependent/glslang.y"
+  case 649: /* spirv_execution_mode_parameter: UINTCONSTANT  */
+#line 4233 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 11954 "MachineIndependent/glslang_tab.cpp"
+#line 11920 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 652: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
-#line 4249 "MachineIndependent/glslang.y"
+  case 650: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
+#line 4236 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 11962 "MachineIndependent/glslang_tab.cpp"
+#line 11928 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 653: /* spirv_execution_mode_parameter: STRING_LITERAL  */
-#line 4252 "MachineIndependent/glslang.y"
+  case 651: /* spirv_execution_mode_parameter: STRING_LITERAL  */
+#line 4239 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
     }
-#line 11970 "MachineIndependent/glslang_tab.cpp"
+#line 11936 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 654: /* spirv_execution_mode_id_parameter_list: constant_expression  */
-#line 4257 "MachineIndependent/glslang.y"
+  case 652: /* spirv_execution_mode_id_parameter_list: constant_expression  */
+#line 4244 "MachineIndependent/glslang.y"
                           {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -11980,11 +11946,11 @@
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
     }
-#line 11984 "MachineIndependent/glslang_tab.cpp"
+#line 11950 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 655: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
-#line 4266 "MachineIndependent/glslang.y"
+  case 653: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
+#line 4253 "MachineIndependent/glslang.y"
                                                                        {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -11994,156 +11960,156 @@
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
     }
-#line 11998 "MachineIndependent/glslang_tab.cpp"
+#line 11964 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 656: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4277 "MachineIndependent/glslang.y"
+  case 654: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4264 "MachineIndependent/glslang.y"
                                                              {
         (yyval.interm.type).init((yyvsp[-3].lex).loc);
         (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
         (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
     }
-#line 12008 "MachineIndependent/glslang_tab.cpp"
+#line 11974 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 657: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4282 "MachineIndependent/glslang.y"
+  case 655: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4269 "MachineIndependent/glslang.y"
                                                                                            {
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
         (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
     }
-#line 12019 "MachineIndependent/glslang_tab.cpp"
+#line 11985 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
-#line 4290 "MachineIndependent/glslang.y"
+  case 656: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
+#line 4277 "MachineIndependent/glslang.y"
                                                        {
         (yyval.interm.type).init((yyvsp[-3].lex).loc);
         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
     }
-#line 12028 "MachineIndependent/glslang_tab.cpp"
+#line 11994 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
-#line 4294 "MachineIndependent/glslang.y"
+  case 657: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
+#line 4281 "MachineIndependent/glslang.y"
                                                                                      {
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
     }
-#line 12038 "MachineIndependent/glslang_tab.cpp"
+#line 12004 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
-#line 4299 "MachineIndependent/glslang.y"
+  case 658: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
+#line 4286 "MachineIndependent/glslang.y"
                                                                                             {
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12047 "MachineIndependent/glslang_tab.cpp"
+#line 12013 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 661: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
-#line 4303 "MachineIndependent/glslang.y"
+  case 659: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
+#line 4290 "MachineIndependent/glslang.y"
                                                                                                                           {
         (yyval.interm.type).init((yyvsp[-7].lex).loc);
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12057 "MachineIndependent/glslang_tab.cpp"
+#line 12023 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 662: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
-#line 4308 "MachineIndependent/glslang.y"
+  case 660: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
+#line 4295 "MachineIndependent/glslang.y"
                                                                                                   {
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12066 "MachineIndependent/glslang_tab.cpp"
+#line 12032 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 663: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
-#line 4312 "MachineIndependent/glslang.y"
+  case 661: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
+#line 4299 "MachineIndependent/glslang.y"
                                                                                                                                 {
         (yyval.interm.type).init((yyvsp[-7].lex).loc);
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12076 "MachineIndependent/glslang_tab.cpp"
+#line 12042 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 664: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
-#line 4317 "MachineIndependent/glslang.y"
+  case 662: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
+#line 4304 "MachineIndependent/glslang.y"
                                                                                                           {
         (yyval.interm.type).init((yyvsp[-5].lex).loc);
         (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12085 "MachineIndependent/glslang_tab.cpp"
+#line 12051 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 665: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
-#line 4321 "MachineIndependent/glslang.y"
+  case 663: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
+#line 4308 "MachineIndependent/glslang.y"
                                                                                                                                         {
         (yyval.interm.type).init((yyvsp[-7].lex).loc);
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
     }
-#line 12095 "MachineIndependent/glslang_tab.cpp"
+#line 12061 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 666: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
-#line 4328 "MachineIndependent/glslang.y"
+  case 664: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
+#line 4315 "MachineIndependent/glslang.y"
                                {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
     }
-#line 12103 "MachineIndependent/glslang_tab.cpp"
+#line 12069 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 667: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
-#line 4331 "MachineIndependent/glslang.y"
+  case 665: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
+#line 4318 "MachineIndependent/glslang.y"
                                                                    {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
     }
-#line 12111 "MachineIndependent/glslang_tab.cpp"
+#line 12077 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 668: /* spirv_decorate_parameter: FLOATCONSTANT  */
-#line 4336 "MachineIndependent/glslang.y"
+  case 666: /* spirv_decorate_parameter: FLOATCONSTANT  */
+#line 4323 "MachineIndependent/glslang.y"
                     {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
     }
-#line 12119 "MachineIndependent/glslang_tab.cpp"
+#line 12085 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 669: /* spirv_decorate_parameter: INTCONSTANT  */
-#line 4339 "MachineIndependent/glslang.y"
+  case 667: /* spirv_decorate_parameter: INTCONSTANT  */
+#line 4326 "MachineIndependent/glslang.y"
                   {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
     }
-#line 12127 "MachineIndependent/glslang_tab.cpp"
+#line 12093 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 670: /* spirv_decorate_parameter: UINTCONSTANT  */
-#line 4342 "MachineIndependent/glslang.y"
+  case 668: /* spirv_decorate_parameter: UINTCONSTANT  */
+#line 4329 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
     }
-#line 12135 "MachineIndependent/glslang_tab.cpp"
+#line 12101 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 671: /* spirv_decorate_parameter: BOOLCONSTANT  */
-#line 4345 "MachineIndependent/glslang.y"
+  case 669: /* spirv_decorate_parameter: BOOLCONSTANT  */
+#line 4332 "MachineIndependent/glslang.y"
                    {
         (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
     }
-#line 12143 "MachineIndependent/glslang_tab.cpp"
+#line 12109 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 672: /* spirv_decorate_id_parameter_list: constant_expression  */
-#line 4350 "MachineIndependent/glslang.y"
+  case 670: /* spirv_decorate_id_parameter_list: constant_expression  */
+#line 4337 "MachineIndependent/glslang.y"
                           {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -12152,11 +12118,11 @@
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
     }
-#line 12156 "MachineIndependent/glslang_tab.cpp"
+#line 12122 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 673: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression  */
-#line 4358 "MachineIndependent/glslang.y"
+  case 671: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA constant_expression  */
+#line 4345 "MachineIndependent/glslang.y"
                                                                  {
         if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
             (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
@@ -12165,139 +12131,139 @@
             parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
     }
-#line 12169 "MachineIndependent/glslang_tab.cpp"
+#line 12135 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 674: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
-#line 4368 "MachineIndependent/glslang.y"
+  case 672: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
+#line 4355 "MachineIndependent/glslang.y"
                      {
         (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
             parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 12178 "MachineIndependent/glslang_tab.cpp"
+#line 12144 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 675: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
-#line 4372 "MachineIndependent/glslang.y"
+  case 673: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
+#line 4359 "MachineIndependent/glslang.y"
                                                                 {
         (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
     }
-#line 12186 "MachineIndependent/glslang_tab.cpp"
+#line 12152 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 676: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
-#line 4377 "MachineIndependent/glslang.y"
+  case 674: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
+#line 4364 "MachineIndependent/glslang.y"
                                                                                                          {
         (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
     }
-#line 12195 "MachineIndependent/glslang_tab.cpp"
+#line 12161 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 677: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
-#line 4381 "MachineIndependent/glslang.y"
+  case 675: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
+#line 4368 "MachineIndependent/glslang.y"
                                                                                                                                        {
         (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
         (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
     }
-#line 12205 "MachineIndependent/glslang_tab.cpp"
+#line 12171 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 678: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4386 "MachineIndependent/glslang.y"
+  case 676: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4373 "MachineIndependent/glslang.y"
                                                                          {
         (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
         (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
     }
-#line 12214 "MachineIndependent/glslang_tab.cpp"
+#line 12180 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 679: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4390 "MachineIndependent/glslang.y"
+  case 677: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4377 "MachineIndependent/glslang.y"
                                                                                                        {
         (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
     }
-#line 12224 "MachineIndependent/glslang_tab.cpp"
+#line 12190 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 680: /* spirv_type_parameter_list: spirv_type_parameter  */
-#line 4397 "MachineIndependent/glslang.y"
+  case 678: /* spirv_type_parameter_list: spirv_type_parameter  */
+#line 4384 "MachineIndependent/glslang.y"
                            {
         (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
     }
-#line 12232 "MachineIndependent/glslang_tab.cpp"
+#line 12198 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 681: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
-#line 4400 "MachineIndependent/glslang.y"
+  case 679: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
+#line 4387 "MachineIndependent/glslang.y"
                                                            {
         (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
     }
-#line 12240 "MachineIndependent/glslang_tab.cpp"
+#line 12206 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 682: /* spirv_type_parameter: constant_expression  */
-#line 4405 "MachineIndependent/glslang.y"
+  case 680: /* spirv_type_parameter: constant_expression  */
+#line 4392 "MachineIndependent/glslang.y"
                           {
         (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
     }
-#line 12248 "MachineIndependent/glslang_tab.cpp"
+#line 12214 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 683: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4410 "MachineIndependent/glslang.y"
+  case 681: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4397 "MachineIndependent/glslang.y"
                                                                                 {
         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
     }
-#line 12256 "MachineIndependent/glslang_tab.cpp"
+#line 12222 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 684: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
-#line 4413 "MachineIndependent/glslang.y"
+  case 682: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
+#line 4400 "MachineIndependent/glslang.y"
                                                                                                               {
         parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
         (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
     }
-#line 12265 "MachineIndependent/glslang_tab.cpp"
+#line 12231 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 685: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
-#line 4419 "MachineIndependent/glslang.y"
+  case 683: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
+#line 4406 "MachineIndependent/glslang.y"
                                      {
         (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
     }
-#line 12273 "MachineIndependent/glslang_tab.cpp"
+#line 12239 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 686: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
-#line 4422 "MachineIndependent/glslang.y"
+  case 684: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
+#line 4409 "MachineIndependent/glslang.y"
                                                                             {
         (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
     }
-#line 12281 "MachineIndependent/glslang_tab.cpp"
+#line 12247 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 687: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
-#line 4427 "MachineIndependent/glslang.y"
+  case 685: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
+#line 4414 "MachineIndependent/glslang.y"
                                       {
         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
     }
-#line 12289 "MachineIndependent/glslang_tab.cpp"
+#line 12255 "MachineIndependent/glslang_tab.cpp"
     break;
 
-  case 688: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
-#line 4430 "MachineIndependent/glslang.y"
+  case 686: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
+#line 4417 "MachineIndependent/glslang.y"
                                    {
         (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
     }
-#line 12297 "MachineIndependent/glslang_tab.cpp"
+#line 12263 "MachineIndependent/glslang_tab.cpp"
     break;
 
 
-#line 12301 "MachineIndependent/glslang_tab.cpp"
+#line 12267 "MachineIndependent/glslang_tab.cpp"
 
       default: break;
     }
@@ -12522,5 +12488,5 @@
   return yyresult;
 }
 
-#line 4435 "MachineIndependent/glslang.y"
+#line 4422 "MachineIndependent/glslang.y"
 
diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h
index 6d168d0..18cef46 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -217,300 +217,298 @@
     FCOOPMATNV = 418,              /* FCOOPMATNV  */
     ICOOPMATNV = 419,              /* ICOOPMATNV  */
     UCOOPMATNV = 420,              /* UCOOPMATNV  */
-    HITOBJECTNV = 421,             /* HITOBJECTNV  */
-    HITOBJECTATTRNV = 422,         /* HITOBJECTATTRNV  */
-    SAMPLERCUBEARRAY = 423,        /* SAMPLERCUBEARRAY  */
-    SAMPLERCUBEARRAYSHADOW = 424,  /* SAMPLERCUBEARRAYSHADOW  */
-    ISAMPLERCUBEARRAY = 425,       /* ISAMPLERCUBEARRAY  */
-    USAMPLERCUBEARRAY = 426,       /* USAMPLERCUBEARRAY  */
-    SAMPLER1D = 427,               /* SAMPLER1D  */
-    SAMPLER1DARRAY = 428,          /* SAMPLER1DARRAY  */
-    SAMPLER1DARRAYSHADOW = 429,    /* SAMPLER1DARRAYSHADOW  */
-    ISAMPLER1D = 430,              /* ISAMPLER1D  */
-    SAMPLER1DSHADOW = 431,         /* SAMPLER1DSHADOW  */
-    SAMPLER2DRECT = 432,           /* SAMPLER2DRECT  */
-    SAMPLER2DRECTSHADOW = 433,     /* SAMPLER2DRECTSHADOW  */
-    ISAMPLER2DRECT = 434,          /* ISAMPLER2DRECT  */
-    USAMPLER2DRECT = 435,          /* USAMPLER2DRECT  */
-    SAMPLERBUFFER = 436,           /* SAMPLERBUFFER  */
-    ISAMPLERBUFFER = 437,          /* ISAMPLERBUFFER  */
-    USAMPLERBUFFER = 438,          /* USAMPLERBUFFER  */
-    SAMPLER2DMS = 439,             /* SAMPLER2DMS  */
-    ISAMPLER2DMS = 440,            /* ISAMPLER2DMS  */
-    USAMPLER2DMS = 441,            /* USAMPLER2DMS  */
-    SAMPLER2DMSARRAY = 442,        /* SAMPLER2DMSARRAY  */
-    ISAMPLER2DMSARRAY = 443,       /* ISAMPLER2DMSARRAY  */
-    USAMPLER2DMSARRAY = 444,       /* USAMPLER2DMSARRAY  */
-    SAMPLEREXTERNALOES = 445,      /* SAMPLEREXTERNALOES  */
-    SAMPLEREXTERNAL2DY2YEXT = 446, /* SAMPLEREXTERNAL2DY2YEXT  */
-    ISAMPLER1DARRAY = 447,         /* ISAMPLER1DARRAY  */
-    USAMPLER1D = 448,              /* USAMPLER1D  */
-    USAMPLER1DARRAY = 449,         /* USAMPLER1DARRAY  */
-    F16SAMPLER1D = 450,            /* F16SAMPLER1D  */
-    F16SAMPLER2D = 451,            /* F16SAMPLER2D  */
-    F16SAMPLER3D = 452,            /* F16SAMPLER3D  */
-    F16SAMPLER2DRECT = 453,        /* F16SAMPLER2DRECT  */
-    F16SAMPLERCUBE = 454,          /* F16SAMPLERCUBE  */
-    F16SAMPLER1DARRAY = 455,       /* F16SAMPLER1DARRAY  */
-    F16SAMPLER2DARRAY = 456,       /* F16SAMPLER2DARRAY  */
-    F16SAMPLERCUBEARRAY = 457,     /* F16SAMPLERCUBEARRAY  */
-    F16SAMPLERBUFFER = 458,        /* F16SAMPLERBUFFER  */
-    F16SAMPLER2DMS = 459,          /* F16SAMPLER2DMS  */
-    F16SAMPLER2DMSARRAY = 460,     /* F16SAMPLER2DMSARRAY  */
-    F16SAMPLER1DSHADOW = 461,      /* F16SAMPLER1DSHADOW  */
-    F16SAMPLER2DSHADOW = 462,      /* F16SAMPLER2DSHADOW  */
-    F16SAMPLER1DARRAYSHADOW = 463, /* F16SAMPLER1DARRAYSHADOW  */
-    F16SAMPLER2DARRAYSHADOW = 464, /* F16SAMPLER2DARRAYSHADOW  */
-    F16SAMPLER2DRECTSHADOW = 465,  /* F16SAMPLER2DRECTSHADOW  */
-    F16SAMPLERCUBESHADOW = 466,    /* F16SAMPLERCUBESHADOW  */
-    F16SAMPLERCUBEARRAYSHADOW = 467, /* F16SAMPLERCUBEARRAYSHADOW  */
-    IMAGE1D = 468,                 /* IMAGE1D  */
-    IIMAGE1D = 469,                /* IIMAGE1D  */
-    UIMAGE1D = 470,                /* UIMAGE1D  */
-    IMAGE2D = 471,                 /* IMAGE2D  */
-    IIMAGE2D = 472,                /* IIMAGE2D  */
-    UIMAGE2D = 473,                /* UIMAGE2D  */
-    IMAGE3D = 474,                 /* IMAGE3D  */
-    IIMAGE3D = 475,                /* IIMAGE3D  */
-    UIMAGE3D = 476,                /* UIMAGE3D  */
-    IMAGE2DRECT = 477,             /* IMAGE2DRECT  */
-    IIMAGE2DRECT = 478,            /* IIMAGE2DRECT  */
-    UIMAGE2DRECT = 479,            /* UIMAGE2DRECT  */
-    IMAGECUBE = 480,               /* IMAGECUBE  */
-    IIMAGECUBE = 481,              /* IIMAGECUBE  */
-    UIMAGECUBE = 482,              /* UIMAGECUBE  */
-    IMAGEBUFFER = 483,             /* IMAGEBUFFER  */
-    IIMAGEBUFFER = 484,            /* IIMAGEBUFFER  */
-    UIMAGEBUFFER = 485,            /* UIMAGEBUFFER  */
-    IMAGE1DARRAY = 486,            /* IMAGE1DARRAY  */
-    IIMAGE1DARRAY = 487,           /* IIMAGE1DARRAY  */
-    UIMAGE1DARRAY = 488,           /* UIMAGE1DARRAY  */
-    IMAGE2DARRAY = 489,            /* IMAGE2DARRAY  */
-    IIMAGE2DARRAY = 490,           /* IIMAGE2DARRAY  */
-    UIMAGE2DARRAY = 491,           /* UIMAGE2DARRAY  */
-    IMAGECUBEARRAY = 492,          /* IMAGECUBEARRAY  */
-    IIMAGECUBEARRAY = 493,         /* IIMAGECUBEARRAY  */
-    UIMAGECUBEARRAY = 494,         /* UIMAGECUBEARRAY  */
-    IMAGE2DMS = 495,               /* IMAGE2DMS  */
-    IIMAGE2DMS = 496,              /* IIMAGE2DMS  */
-    UIMAGE2DMS = 497,              /* UIMAGE2DMS  */
-    IMAGE2DMSARRAY = 498,          /* IMAGE2DMSARRAY  */
-    IIMAGE2DMSARRAY = 499,         /* IIMAGE2DMSARRAY  */
-    UIMAGE2DMSARRAY = 500,         /* UIMAGE2DMSARRAY  */
-    F16IMAGE1D = 501,              /* F16IMAGE1D  */
-    F16IMAGE2D = 502,              /* F16IMAGE2D  */
-    F16IMAGE3D = 503,              /* F16IMAGE3D  */
-    F16IMAGE2DRECT = 504,          /* F16IMAGE2DRECT  */
-    F16IMAGECUBE = 505,            /* F16IMAGECUBE  */
-    F16IMAGE1DARRAY = 506,         /* F16IMAGE1DARRAY  */
-    F16IMAGE2DARRAY = 507,         /* F16IMAGE2DARRAY  */
-    F16IMAGECUBEARRAY = 508,       /* F16IMAGECUBEARRAY  */
-    F16IMAGEBUFFER = 509,          /* F16IMAGEBUFFER  */
-    F16IMAGE2DMS = 510,            /* F16IMAGE2DMS  */
-    F16IMAGE2DMSARRAY = 511,       /* F16IMAGE2DMSARRAY  */
-    I64IMAGE1D = 512,              /* I64IMAGE1D  */
-    U64IMAGE1D = 513,              /* U64IMAGE1D  */
-    I64IMAGE2D = 514,              /* I64IMAGE2D  */
-    U64IMAGE2D = 515,              /* U64IMAGE2D  */
-    I64IMAGE3D = 516,              /* I64IMAGE3D  */
-    U64IMAGE3D = 517,              /* U64IMAGE3D  */
-    I64IMAGE2DRECT = 518,          /* I64IMAGE2DRECT  */
-    U64IMAGE2DRECT = 519,          /* U64IMAGE2DRECT  */
-    I64IMAGECUBE = 520,            /* I64IMAGECUBE  */
-    U64IMAGECUBE = 521,            /* U64IMAGECUBE  */
-    I64IMAGEBUFFER = 522,          /* I64IMAGEBUFFER  */
-    U64IMAGEBUFFER = 523,          /* U64IMAGEBUFFER  */
-    I64IMAGE1DARRAY = 524,         /* I64IMAGE1DARRAY  */
-    U64IMAGE1DARRAY = 525,         /* U64IMAGE1DARRAY  */
-    I64IMAGE2DARRAY = 526,         /* I64IMAGE2DARRAY  */
-    U64IMAGE2DARRAY = 527,         /* U64IMAGE2DARRAY  */
-    I64IMAGECUBEARRAY = 528,       /* I64IMAGECUBEARRAY  */
-    U64IMAGECUBEARRAY = 529,       /* U64IMAGECUBEARRAY  */
-    I64IMAGE2DMS = 530,            /* I64IMAGE2DMS  */
-    U64IMAGE2DMS = 531,            /* U64IMAGE2DMS  */
-    I64IMAGE2DMSARRAY = 532,       /* I64IMAGE2DMSARRAY  */
-    U64IMAGE2DMSARRAY = 533,       /* U64IMAGE2DMSARRAY  */
-    TEXTURECUBEARRAY = 534,        /* TEXTURECUBEARRAY  */
-    ITEXTURECUBEARRAY = 535,       /* ITEXTURECUBEARRAY  */
-    UTEXTURECUBEARRAY = 536,       /* UTEXTURECUBEARRAY  */
-    TEXTURE1D = 537,               /* TEXTURE1D  */
-    ITEXTURE1D = 538,              /* ITEXTURE1D  */
-    UTEXTURE1D = 539,              /* UTEXTURE1D  */
-    TEXTURE1DARRAY = 540,          /* TEXTURE1DARRAY  */
-    ITEXTURE1DARRAY = 541,         /* ITEXTURE1DARRAY  */
-    UTEXTURE1DARRAY = 542,         /* UTEXTURE1DARRAY  */
-    TEXTURE2DRECT = 543,           /* TEXTURE2DRECT  */
-    ITEXTURE2DRECT = 544,          /* ITEXTURE2DRECT  */
-    UTEXTURE2DRECT = 545,          /* UTEXTURE2DRECT  */
-    TEXTUREBUFFER = 546,           /* TEXTUREBUFFER  */
-    ITEXTUREBUFFER = 547,          /* ITEXTUREBUFFER  */
-    UTEXTUREBUFFER = 548,          /* UTEXTUREBUFFER  */
-    TEXTURE2DMS = 549,             /* TEXTURE2DMS  */
-    ITEXTURE2DMS = 550,            /* ITEXTURE2DMS  */
-    UTEXTURE2DMS = 551,            /* UTEXTURE2DMS  */
-    TEXTURE2DMSARRAY = 552,        /* TEXTURE2DMSARRAY  */
-    ITEXTURE2DMSARRAY = 553,       /* ITEXTURE2DMSARRAY  */
-    UTEXTURE2DMSARRAY = 554,       /* UTEXTURE2DMSARRAY  */
-    F16TEXTURE1D = 555,            /* F16TEXTURE1D  */
-    F16TEXTURE2D = 556,            /* F16TEXTURE2D  */
-    F16TEXTURE3D = 557,            /* F16TEXTURE3D  */
-    F16TEXTURE2DRECT = 558,        /* F16TEXTURE2DRECT  */
-    F16TEXTURECUBE = 559,          /* F16TEXTURECUBE  */
-    F16TEXTURE1DARRAY = 560,       /* F16TEXTURE1DARRAY  */
-    F16TEXTURE2DARRAY = 561,       /* F16TEXTURE2DARRAY  */
-    F16TEXTURECUBEARRAY = 562,     /* F16TEXTURECUBEARRAY  */
-    F16TEXTUREBUFFER = 563,        /* F16TEXTUREBUFFER  */
-    F16TEXTURE2DMS = 564,          /* F16TEXTURE2DMS  */
-    F16TEXTURE2DMSARRAY = 565,     /* F16TEXTURE2DMSARRAY  */
-    SUBPASSINPUT = 566,            /* SUBPASSINPUT  */
-    SUBPASSINPUTMS = 567,          /* SUBPASSINPUTMS  */
-    ISUBPASSINPUT = 568,           /* ISUBPASSINPUT  */
-    ISUBPASSINPUTMS = 569,         /* ISUBPASSINPUTMS  */
-    USUBPASSINPUT = 570,           /* USUBPASSINPUT  */
-    USUBPASSINPUTMS = 571,         /* USUBPASSINPUTMS  */
-    F16SUBPASSINPUT = 572,         /* F16SUBPASSINPUT  */
-    F16SUBPASSINPUTMS = 573,       /* F16SUBPASSINPUTMS  */
-    SPIRV_INSTRUCTION = 574,       /* SPIRV_INSTRUCTION  */
-    SPIRV_EXECUTION_MODE = 575,    /* SPIRV_EXECUTION_MODE  */
-    SPIRV_EXECUTION_MODE_ID = 576, /* SPIRV_EXECUTION_MODE_ID  */
-    SPIRV_DECORATE = 577,          /* SPIRV_DECORATE  */
-    SPIRV_DECORATE_ID = 578,       /* SPIRV_DECORATE_ID  */
-    SPIRV_DECORATE_STRING = 579,   /* SPIRV_DECORATE_STRING  */
-    SPIRV_TYPE = 580,              /* SPIRV_TYPE  */
-    SPIRV_STORAGE_CLASS = 581,     /* SPIRV_STORAGE_CLASS  */
-    SPIRV_BY_REFERENCE = 582,      /* SPIRV_BY_REFERENCE  */
-    SPIRV_LITERAL = 583,           /* SPIRV_LITERAL  */
-    LEFT_OP = 584,                 /* LEFT_OP  */
-    RIGHT_OP = 585,                /* RIGHT_OP  */
-    INC_OP = 586,                  /* INC_OP  */
-    DEC_OP = 587,                  /* DEC_OP  */
-    LE_OP = 588,                   /* LE_OP  */
-    GE_OP = 589,                   /* GE_OP  */
-    EQ_OP = 590,                   /* EQ_OP  */
-    NE_OP = 591,                   /* NE_OP  */
-    AND_OP = 592,                  /* AND_OP  */
-    OR_OP = 593,                   /* OR_OP  */
-    XOR_OP = 594,                  /* XOR_OP  */
-    MUL_ASSIGN = 595,              /* MUL_ASSIGN  */
-    DIV_ASSIGN = 596,              /* DIV_ASSIGN  */
-    ADD_ASSIGN = 597,              /* ADD_ASSIGN  */
-    MOD_ASSIGN = 598,              /* MOD_ASSIGN  */
-    LEFT_ASSIGN = 599,             /* LEFT_ASSIGN  */
-    RIGHT_ASSIGN = 600,            /* RIGHT_ASSIGN  */
-    AND_ASSIGN = 601,              /* AND_ASSIGN  */
-    XOR_ASSIGN = 602,              /* XOR_ASSIGN  */
-    OR_ASSIGN = 603,               /* OR_ASSIGN  */
-    SUB_ASSIGN = 604,              /* SUB_ASSIGN  */
-    STRING_LITERAL = 605,          /* STRING_LITERAL  */
-    LEFT_PAREN = 606,              /* LEFT_PAREN  */
-    RIGHT_PAREN = 607,             /* RIGHT_PAREN  */
-    LEFT_BRACKET = 608,            /* LEFT_BRACKET  */
-    RIGHT_BRACKET = 609,           /* RIGHT_BRACKET  */
-    LEFT_BRACE = 610,              /* LEFT_BRACE  */
-    RIGHT_BRACE = 611,             /* RIGHT_BRACE  */
-    DOT = 612,                     /* DOT  */
-    COMMA = 613,                   /* COMMA  */
-    COLON = 614,                   /* COLON  */
-    EQUAL = 615,                   /* EQUAL  */
-    SEMICOLON = 616,               /* SEMICOLON  */
-    BANG = 617,                    /* BANG  */
-    DASH = 618,                    /* DASH  */
-    TILDE = 619,                   /* TILDE  */
-    PLUS = 620,                    /* PLUS  */
-    STAR = 621,                    /* STAR  */
-    SLASH = 622,                   /* SLASH  */
-    PERCENT = 623,                 /* PERCENT  */
-    LEFT_ANGLE = 624,              /* LEFT_ANGLE  */
-    RIGHT_ANGLE = 625,             /* RIGHT_ANGLE  */
-    VERTICAL_BAR = 626,            /* VERTICAL_BAR  */
-    CARET = 627,                   /* CARET  */
-    AMPERSAND = 628,               /* AMPERSAND  */
-    QUESTION = 629,                /* QUESTION  */
-    INVARIANT = 630,               /* INVARIANT  */
-    HIGH_PRECISION = 631,          /* HIGH_PRECISION  */
-    MEDIUM_PRECISION = 632,        /* MEDIUM_PRECISION  */
-    LOW_PRECISION = 633,           /* LOW_PRECISION  */
-    PRECISION = 634,               /* PRECISION  */
-    PACKED = 635,                  /* PACKED  */
-    RESOURCE = 636,                /* RESOURCE  */
-    SUPERP = 637,                  /* SUPERP  */
-    FLOATCONSTANT = 638,           /* FLOATCONSTANT  */
-    INTCONSTANT = 639,             /* INTCONSTANT  */
-    UINTCONSTANT = 640,            /* UINTCONSTANT  */
-    BOOLCONSTANT = 641,            /* BOOLCONSTANT  */
-    IDENTIFIER = 642,              /* IDENTIFIER  */
-    TYPE_NAME = 643,               /* TYPE_NAME  */
-    CENTROID = 644,                /* CENTROID  */
-    IN = 645,                      /* IN  */
-    OUT = 646,                     /* OUT  */
-    INOUT = 647,                   /* INOUT  */
-    STRUCT = 648,                  /* STRUCT  */
-    VOID = 649,                    /* VOID  */
-    WHILE = 650,                   /* WHILE  */
-    BREAK = 651,                   /* BREAK  */
-    CONTINUE = 652,                /* CONTINUE  */
-    DO = 653,                      /* DO  */
-    ELSE = 654,                    /* ELSE  */
-    FOR = 655,                     /* FOR  */
-    IF = 656,                      /* IF  */
-    DISCARD = 657,                 /* DISCARD  */
-    RETURN = 658,                  /* RETURN  */
-    SWITCH = 659,                  /* SWITCH  */
-    CASE = 660,                    /* CASE  */
-    DEFAULT = 661,                 /* DEFAULT  */
-    TERMINATE_INVOCATION = 662,    /* TERMINATE_INVOCATION  */
-    TERMINATE_RAY = 663,           /* TERMINATE_RAY  */
-    IGNORE_INTERSECTION = 664,     /* IGNORE_INTERSECTION  */
-    UNIFORM = 665,                 /* UNIFORM  */
-    SHARED = 666,                  /* SHARED  */
-    BUFFER = 667,                  /* BUFFER  */
-    FLAT = 668,                    /* FLAT  */
-    SMOOTH = 669,                  /* SMOOTH  */
-    LAYOUT = 670,                  /* LAYOUT  */
-    DOUBLECONSTANT = 671,          /* DOUBLECONSTANT  */
-    INT16CONSTANT = 672,           /* INT16CONSTANT  */
-    UINT16CONSTANT = 673,          /* UINT16CONSTANT  */
-    FLOAT16CONSTANT = 674,         /* FLOAT16CONSTANT  */
-    INT32CONSTANT = 675,           /* INT32CONSTANT  */
-    UINT32CONSTANT = 676,          /* UINT32CONSTANT  */
-    INT64CONSTANT = 677,           /* INT64CONSTANT  */
-    UINT64CONSTANT = 678,          /* UINT64CONSTANT  */
-    SUBROUTINE = 679,              /* SUBROUTINE  */
-    DEMOTE = 680,                  /* DEMOTE  */
-    PAYLOADNV = 681,               /* PAYLOADNV  */
-    PAYLOADINNV = 682,             /* PAYLOADINNV  */
-    HITATTRNV = 683,               /* HITATTRNV  */
-    CALLDATANV = 684,              /* CALLDATANV  */
-    CALLDATAINNV = 685,            /* CALLDATAINNV  */
-    PAYLOADEXT = 686,              /* PAYLOADEXT  */
-    PAYLOADINEXT = 687,            /* PAYLOADINEXT  */
-    HITATTREXT = 688,              /* HITATTREXT  */
-    CALLDATAEXT = 689,             /* CALLDATAEXT  */
-    CALLDATAINEXT = 690,           /* CALLDATAINEXT  */
-    PATCH = 691,                   /* PATCH  */
-    SAMPLE = 692,                  /* SAMPLE  */
-    NONUNIFORM = 693,              /* NONUNIFORM  */
-    COHERENT = 694,                /* COHERENT  */
-    VOLATILE = 695,                /* VOLATILE  */
-    RESTRICT = 696,                /* RESTRICT  */
-    READONLY = 697,                /* READONLY  */
-    WRITEONLY = 698,               /* WRITEONLY  */
-    DEVICECOHERENT = 699,          /* DEVICECOHERENT  */
-    QUEUEFAMILYCOHERENT = 700,     /* QUEUEFAMILYCOHERENT  */
-    WORKGROUPCOHERENT = 701,       /* WORKGROUPCOHERENT  */
-    SUBGROUPCOHERENT = 702,        /* SUBGROUPCOHERENT  */
-    NONPRIVATE = 703,              /* NONPRIVATE  */
-    SHADERCALLCOHERENT = 704,      /* SHADERCALLCOHERENT  */
-    NOPERSPECTIVE = 705,           /* NOPERSPECTIVE  */
-    EXPLICITINTERPAMD = 706,       /* EXPLICITINTERPAMD  */
-    PERVERTEXEXT = 707,            /* PERVERTEXEXT  */
-    PERVERTEXNV = 708,             /* PERVERTEXNV  */
-    PERPRIMITIVENV = 709,          /* PERPRIMITIVENV  */
-    PERVIEWNV = 710,               /* PERVIEWNV  */
-    PERTASKNV = 711,               /* PERTASKNV  */
-    PERPRIMITIVEEXT = 712,         /* PERPRIMITIVEEXT  */
-    TASKPAYLOADWORKGROUPEXT = 713, /* TASKPAYLOADWORKGROUPEXT  */
-    PRECISE = 714                  /* PRECISE  */
+    SAMPLERCUBEARRAY = 421,        /* SAMPLERCUBEARRAY  */
+    SAMPLERCUBEARRAYSHADOW = 422,  /* SAMPLERCUBEARRAYSHADOW  */
+    ISAMPLERCUBEARRAY = 423,       /* ISAMPLERCUBEARRAY  */
+    USAMPLERCUBEARRAY = 424,       /* USAMPLERCUBEARRAY  */
+    SAMPLER1D = 425,               /* SAMPLER1D  */
+    SAMPLER1DARRAY = 426,          /* SAMPLER1DARRAY  */
+    SAMPLER1DARRAYSHADOW = 427,    /* SAMPLER1DARRAYSHADOW  */
+    ISAMPLER1D = 428,              /* ISAMPLER1D  */
+    SAMPLER1DSHADOW = 429,         /* SAMPLER1DSHADOW  */
+    SAMPLER2DRECT = 430,           /* SAMPLER2DRECT  */
+    SAMPLER2DRECTSHADOW = 431,     /* SAMPLER2DRECTSHADOW  */
+    ISAMPLER2DRECT = 432,          /* ISAMPLER2DRECT  */
+    USAMPLER2DRECT = 433,          /* USAMPLER2DRECT  */
+    SAMPLERBUFFER = 434,           /* SAMPLERBUFFER  */
+    ISAMPLERBUFFER = 435,          /* ISAMPLERBUFFER  */
+    USAMPLERBUFFER = 436,          /* USAMPLERBUFFER  */
+    SAMPLER2DMS = 437,             /* SAMPLER2DMS  */
+    ISAMPLER2DMS = 438,            /* ISAMPLER2DMS  */
+    USAMPLER2DMS = 439,            /* USAMPLER2DMS  */
+    SAMPLER2DMSARRAY = 440,        /* SAMPLER2DMSARRAY  */
+    ISAMPLER2DMSARRAY = 441,       /* ISAMPLER2DMSARRAY  */
+    USAMPLER2DMSARRAY = 442,       /* USAMPLER2DMSARRAY  */
+    SAMPLEREXTERNALOES = 443,      /* SAMPLEREXTERNALOES  */
+    SAMPLEREXTERNAL2DY2YEXT = 444, /* SAMPLEREXTERNAL2DY2YEXT  */
+    ISAMPLER1DARRAY = 445,         /* ISAMPLER1DARRAY  */
+    USAMPLER1D = 446,              /* USAMPLER1D  */
+    USAMPLER1DARRAY = 447,         /* USAMPLER1DARRAY  */
+    F16SAMPLER1D = 448,            /* F16SAMPLER1D  */
+    F16SAMPLER2D = 449,            /* F16SAMPLER2D  */
+    F16SAMPLER3D = 450,            /* F16SAMPLER3D  */
+    F16SAMPLER2DRECT = 451,        /* F16SAMPLER2DRECT  */
+    F16SAMPLERCUBE = 452,          /* F16SAMPLERCUBE  */
+    F16SAMPLER1DARRAY = 453,       /* F16SAMPLER1DARRAY  */
+    F16SAMPLER2DARRAY = 454,       /* F16SAMPLER2DARRAY  */
+    F16SAMPLERCUBEARRAY = 455,     /* F16SAMPLERCUBEARRAY  */
+    F16SAMPLERBUFFER = 456,        /* F16SAMPLERBUFFER  */
+    F16SAMPLER2DMS = 457,          /* F16SAMPLER2DMS  */
+    F16SAMPLER2DMSARRAY = 458,     /* F16SAMPLER2DMSARRAY  */
+    F16SAMPLER1DSHADOW = 459,      /* F16SAMPLER1DSHADOW  */
+    F16SAMPLER2DSHADOW = 460,      /* F16SAMPLER2DSHADOW  */
+    F16SAMPLER1DARRAYSHADOW = 461, /* F16SAMPLER1DARRAYSHADOW  */
+    F16SAMPLER2DARRAYSHADOW = 462, /* F16SAMPLER2DARRAYSHADOW  */
+    F16SAMPLER2DRECTSHADOW = 463,  /* F16SAMPLER2DRECTSHADOW  */
+    F16SAMPLERCUBESHADOW = 464,    /* F16SAMPLERCUBESHADOW  */
+    F16SAMPLERCUBEARRAYSHADOW = 465, /* F16SAMPLERCUBEARRAYSHADOW  */
+    IMAGE1D = 466,                 /* IMAGE1D  */
+    IIMAGE1D = 467,                /* IIMAGE1D  */
+    UIMAGE1D = 468,                /* UIMAGE1D  */
+    IMAGE2D = 469,                 /* IMAGE2D  */
+    IIMAGE2D = 470,                /* IIMAGE2D  */
+    UIMAGE2D = 471,                /* UIMAGE2D  */
+    IMAGE3D = 472,                 /* IMAGE3D  */
+    IIMAGE3D = 473,                /* IIMAGE3D  */
+    UIMAGE3D = 474,                /* UIMAGE3D  */
+    IMAGE2DRECT = 475,             /* IMAGE2DRECT  */
+    IIMAGE2DRECT = 476,            /* IIMAGE2DRECT  */
+    UIMAGE2DRECT = 477,            /* UIMAGE2DRECT  */
+    IMAGECUBE = 478,               /* IMAGECUBE  */
+    IIMAGECUBE = 479,              /* IIMAGECUBE  */
+    UIMAGECUBE = 480,              /* UIMAGECUBE  */
+    IMAGEBUFFER = 481,             /* IMAGEBUFFER  */
+    IIMAGEBUFFER = 482,            /* IIMAGEBUFFER  */
+    UIMAGEBUFFER = 483,            /* UIMAGEBUFFER  */
+    IMAGE1DARRAY = 484,            /* IMAGE1DARRAY  */
+    IIMAGE1DARRAY = 485,           /* IIMAGE1DARRAY  */
+    UIMAGE1DARRAY = 486,           /* UIMAGE1DARRAY  */
+    IMAGE2DARRAY = 487,            /* IMAGE2DARRAY  */
+    IIMAGE2DARRAY = 488,           /* IIMAGE2DARRAY  */
+    UIMAGE2DARRAY = 489,           /* UIMAGE2DARRAY  */
+    IMAGECUBEARRAY = 490,          /* IMAGECUBEARRAY  */
+    IIMAGECUBEARRAY = 491,         /* IIMAGECUBEARRAY  */
+    UIMAGECUBEARRAY = 492,         /* UIMAGECUBEARRAY  */
+    IMAGE2DMS = 493,               /* IMAGE2DMS  */
+    IIMAGE2DMS = 494,              /* IIMAGE2DMS  */
+    UIMAGE2DMS = 495,              /* UIMAGE2DMS  */
+    IMAGE2DMSARRAY = 496,          /* IMAGE2DMSARRAY  */
+    IIMAGE2DMSARRAY = 497,         /* IIMAGE2DMSARRAY  */
+    UIMAGE2DMSARRAY = 498,         /* UIMAGE2DMSARRAY  */
+    F16IMAGE1D = 499,              /* F16IMAGE1D  */
+    F16IMAGE2D = 500,              /* F16IMAGE2D  */
+    F16IMAGE3D = 501,              /* F16IMAGE3D  */
+    F16IMAGE2DRECT = 502,          /* F16IMAGE2DRECT  */
+    F16IMAGECUBE = 503,            /* F16IMAGECUBE  */
+    F16IMAGE1DARRAY = 504,         /* F16IMAGE1DARRAY  */
+    F16IMAGE2DARRAY = 505,         /* F16IMAGE2DARRAY  */
+    F16IMAGECUBEARRAY = 506,       /* F16IMAGECUBEARRAY  */
+    F16IMAGEBUFFER = 507,          /* F16IMAGEBUFFER  */
+    F16IMAGE2DMS = 508,            /* F16IMAGE2DMS  */
+    F16IMAGE2DMSARRAY = 509,       /* F16IMAGE2DMSARRAY  */
+    I64IMAGE1D = 510,              /* I64IMAGE1D  */
+    U64IMAGE1D = 511,              /* U64IMAGE1D  */
+    I64IMAGE2D = 512,              /* I64IMAGE2D  */
+    U64IMAGE2D = 513,              /* U64IMAGE2D  */
+    I64IMAGE3D = 514,              /* I64IMAGE3D  */
+    U64IMAGE3D = 515,              /* U64IMAGE3D  */
+    I64IMAGE2DRECT = 516,          /* I64IMAGE2DRECT  */
+    U64IMAGE2DRECT = 517,          /* U64IMAGE2DRECT  */
+    I64IMAGECUBE = 518,            /* I64IMAGECUBE  */
+    U64IMAGECUBE = 519,            /* U64IMAGECUBE  */
+    I64IMAGEBUFFER = 520,          /* I64IMAGEBUFFER  */
+    U64IMAGEBUFFER = 521,          /* U64IMAGEBUFFER  */
+    I64IMAGE1DARRAY = 522,         /* I64IMAGE1DARRAY  */
+    U64IMAGE1DARRAY = 523,         /* U64IMAGE1DARRAY  */
+    I64IMAGE2DARRAY = 524,         /* I64IMAGE2DARRAY  */
+    U64IMAGE2DARRAY = 525,         /* U64IMAGE2DARRAY  */
+    I64IMAGECUBEARRAY = 526,       /* I64IMAGECUBEARRAY  */
+    U64IMAGECUBEARRAY = 527,       /* U64IMAGECUBEARRAY  */
+    I64IMAGE2DMS = 528,            /* I64IMAGE2DMS  */
+    U64IMAGE2DMS = 529,            /* U64IMAGE2DMS  */
+    I64IMAGE2DMSARRAY = 530,       /* I64IMAGE2DMSARRAY  */
+    U64IMAGE2DMSARRAY = 531,       /* U64IMAGE2DMSARRAY  */
+    TEXTURECUBEARRAY = 532,        /* TEXTURECUBEARRAY  */
+    ITEXTURECUBEARRAY = 533,       /* ITEXTURECUBEARRAY  */
+    UTEXTURECUBEARRAY = 534,       /* UTEXTURECUBEARRAY  */
+    TEXTURE1D = 535,               /* TEXTURE1D  */
+    ITEXTURE1D = 536,              /* ITEXTURE1D  */
+    UTEXTURE1D = 537,              /* UTEXTURE1D  */
+    TEXTURE1DARRAY = 538,          /* TEXTURE1DARRAY  */
+    ITEXTURE1DARRAY = 539,         /* ITEXTURE1DARRAY  */
+    UTEXTURE1DARRAY = 540,         /* UTEXTURE1DARRAY  */
+    TEXTURE2DRECT = 541,           /* TEXTURE2DRECT  */
+    ITEXTURE2DRECT = 542,          /* ITEXTURE2DRECT  */
+    UTEXTURE2DRECT = 543,          /* UTEXTURE2DRECT  */
+    TEXTUREBUFFER = 544,           /* TEXTUREBUFFER  */
+    ITEXTUREBUFFER = 545,          /* ITEXTUREBUFFER  */
+    UTEXTUREBUFFER = 546,          /* UTEXTUREBUFFER  */
+    TEXTURE2DMS = 547,             /* TEXTURE2DMS  */
+    ITEXTURE2DMS = 548,            /* ITEXTURE2DMS  */
+    UTEXTURE2DMS = 549,            /* UTEXTURE2DMS  */
+    TEXTURE2DMSARRAY = 550,        /* TEXTURE2DMSARRAY  */
+    ITEXTURE2DMSARRAY = 551,       /* ITEXTURE2DMSARRAY  */
+    UTEXTURE2DMSARRAY = 552,       /* UTEXTURE2DMSARRAY  */
+    F16TEXTURE1D = 553,            /* F16TEXTURE1D  */
+    F16TEXTURE2D = 554,            /* F16TEXTURE2D  */
+    F16TEXTURE3D = 555,            /* F16TEXTURE3D  */
+    F16TEXTURE2DRECT = 556,        /* F16TEXTURE2DRECT  */
+    F16TEXTURECUBE = 557,          /* F16TEXTURECUBE  */
+    F16TEXTURE1DARRAY = 558,       /* F16TEXTURE1DARRAY  */
+    F16TEXTURE2DARRAY = 559,       /* F16TEXTURE2DARRAY  */
+    F16TEXTURECUBEARRAY = 560,     /* F16TEXTURECUBEARRAY  */
+    F16TEXTUREBUFFER = 561,        /* F16TEXTUREBUFFER  */
+    F16TEXTURE2DMS = 562,          /* F16TEXTURE2DMS  */
+    F16TEXTURE2DMSARRAY = 563,     /* F16TEXTURE2DMSARRAY  */
+    SUBPASSINPUT = 564,            /* SUBPASSINPUT  */
+    SUBPASSINPUTMS = 565,          /* SUBPASSINPUTMS  */
+    ISUBPASSINPUT = 566,           /* ISUBPASSINPUT  */
+    ISUBPASSINPUTMS = 567,         /* ISUBPASSINPUTMS  */
+    USUBPASSINPUT = 568,           /* USUBPASSINPUT  */
+    USUBPASSINPUTMS = 569,         /* USUBPASSINPUTMS  */
+    F16SUBPASSINPUT = 570,         /* F16SUBPASSINPUT  */
+    F16SUBPASSINPUTMS = 571,       /* F16SUBPASSINPUTMS  */
+    SPIRV_INSTRUCTION = 572,       /* SPIRV_INSTRUCTION  */
+    SPIRV_EXECUTION_MODE = 573,    /* SPIRV_EXECUTION_MODE  */
+    SPIRV_EXECUTION_MODE_ID = 574, /* SPIRV_EXECUTION_MODE_ID  */
+    SPIRV_DECORATE = 575,          /* SPIRV_DECORATE  */
+    SPIRV_DECORATE_ID = 576,       /* SPIRV_DECORATE_ID  */
+    SPIRV_DECORATE_STRING = 577,   /* SPIRV_DECORATE_STRING  */
+    SPIRV_TYPE = 578,              /* SPIRV_TYPE  */
+    SPIRV_STORAGE_CLASS = 579,     /* SPIRV_STORAGE_CLASS  */
+    SPIRV_BY_REFERENCE = 580,      /* SPIRV_BY_REFERENCE  */
+    SPIRV_LITERAL = 581,           /* SPIRV_LITERAL  */
+    LEFT_OP = 582,                 /* LEFT_OP  */
+    RIGHT_OP = 583,                /* RIGHT_OP  */
+    INC_OP = 584,                  /* INC_OP  */
+    DEC_OP = 585,                  /* DEC_OP  */
+    LE_OP = 586,                   /* LE_OP  */
+    GE_OP = 587,                   /* GE_OP  */
+    EQ_OP = 588,                   /* EQ_OP  */
+    NE_OP = 589,                   /* NE_OP  */
+    AND_OP = 590,                  /* AND_OP  */
+    OR_OP = 591,                   /* OR_OP  */
+    XOR_OP = 592,                  /* XOR_OP  */
+    MUL_ASSIGN = 593,              /* MUL_ASSIGN  */
+    DIV_ASSIGN = 594,              /* DIV_ASSIGN  */
+    ADD_ASSIGN = 595,              /* ADD_ASSIGN  */
+    MOD_ASSIGN = 596,              /* MOD_ASSIGN  */
+    LEFT_ASSIGN = 597,             /* LEFT_ASSIGN  */
+    RIGHT_ASSIGN = 598,            /* RIGHT_ASSIGN  */
+    AND_ASSIGN = 599,              /* AND_ASSIGN  */
+    XOR_ASSIGN = 600,              /* XOR_ASSIGN  */
+    OR_ASSIGN = 601,               /* OR_ASSIGN  */
+    SUB_ASSIGN = 602,              /* SUB_ASSIGN  */
+    STRING_LITERAL = 603,          /* STRING_LITERAL  */
+    LEFT_PAREN = 604,              /* LEFT_PAREN  */
+    RIGHT_PAREN = 605,             /* RIGHT_PAREN  */
+    LEFT_BRACKET = 606,            /* LEFT_BRACKET  */
+    RIGHT_BRACKET = 607,           /* RIGHT_BRACKET  */
+    LEFT_BRACE = 608,              /* LEFT_BRACE  */
+    RIGHT_BRACE = 609,             /* RIGHT_BRACE  */
+    DOT = 610,                     /* DOT  */
+    COMMA = 611,                   /* COMMA  */
+    COLON = 612,                   /* COLON  */
+    EQUAL = 613,                   /* EQUAL  */
+    SEMICOLON = 614,               /* SEMICOLON  */
+    BANG = 615,                    /* BANG  */
+    DASH = 616,                    /* DASH  */
+    TILDE = 617,                   /* TILDE  */
+    PLUS = 618,                    /* PLUS  */
+    STAR = 619,                    /* STAR  */
+    SLASH = 620,                   /* SLASH  */
+    PERCENT = 621,                 /* PERCENT  */
+    LEFT_ANGLE = 622,              /* LEFT_ANGLE  */
+    RIGHT_ANGLE = 623,             /* RIGHT_ANGLE  */
+    VERTICAL_BAR = 624,            /* VERTICAL_BAR  */
+    CARET = 625,                   /* CARET  */
+    AMPERSAND = 626,               /* AMPERSAND  */
+    QUESTION = 627,                /* QUESTION  */
+    INVARIANT = 628,               /* INVARIANT  */
+    HIGH_PRECISION = 629,          /* HIGH_PRECISION  */
+    MEDIUM_PRECISION = 630,        /* MEDIUM_PRECISION  */
+    LOW_PRECISION = 631,           /* LOW_PRECISION  */
+    PRECISION = 632,               /* PRECISION  */
+    PACKED = 633,                  /* PACKED  */
+    RESOURCE = 634,                /* RESOURCE  */
+    SUPERP = 635,                  /* SUPERP  */
+    FLOATCONSTANT = 636,           /* FLOATCONSTANT  */
+    INTCONSTANT = 637,             /* INTCONSTANT  */
+    UINTCONSTANT = 638,            /* UINTCONSTANT  */
+    BOOLCONSTANT = 639,            /* BOOLCONSTANT  */
+    IDENTIFIER = 640,              /* IDENTIFIER  */
+    TYPE_NAME = 641,               /* TYPE_NAME  */
+    CENTROID = 642,                /* CENTROID  */
+    IN = 643,                      /* IN  */
+    OUT = 644,                     /* OUT  */
+    INOUT = 645,                   /* INOUT  */
+    STRUCT = 646,                  /* STRUCT  */
+    VOID = 647,                    /* VOID  */
+    WHILE = 648,                   /* WHILE  */
+    BREAK = 649,                   /* BREAK  */
+    CONTINUE = 650,                /* CONTINUE  */
+    DO = 651,                      /* DO  */
+    ELSE = 652,                    /* ELSE  */
+    FOR = 653,                     /* FOR  */
+    IF = 654,                      /* IF  */
+    DISCARD = 655,                 /* DISCARD  */
+    RETURN = 656,                  /* RETURN  */
+    SWITCH = 657,                  /* SWITCH  */
+    CASE = 658,                    /* CASE  */
+    DEFAULT = 659,                 /* DEFAULT  */
+    TERMINATE_INVOCATION = 660,    /* TERMINATE_INVOCATION  */
+    TERMINATE_RAY = 661,           /* TERMINATE_RAY  */
+    IGNORE_INTERSECTION = 662,     /* IGNORE_INTERSECTION  */
+    UNIFORM = 663,                 /* UNIFORM  */
+    SHARED = 664,                  /* SHARED  */
+    BUFFER = 665,                  /* BUFFER  */
+    FLAT = 666,                    /* FLAT  */
+    SMOOTH = 667,                  /* SMOOTH  */
+    LAYOUT = 668,                  /* LAYOUT  */
+    DOUBLECONSTANT = 669,          /* DOUBLECONSTANT  */
+    INT16CONSTANT = 670,           /* INT16CONSTANT  */
+    UINT16CONSTANT = 671,          /* UINT16CONSTANT  */
+    FLOAT16CONSTANT = 672,         /* FLOAT16CONSTANT  */
+    INT32CONSTANT = 673,           /* INT32CONSTANT  */
+    UINT32CONSTANT = 674,          /* UINT32CONSTANT  */
+    INT64CONSTANT = 675,           /* INT64CONSTANT  */
+    UINT64CONSTANT = 676,          /* UINT64CONSTANT  */
+    SUBROUTINE = 677,              /* SUBROUTINE  */
+    DEMOTE = 678,                  /* DEMOTE  */
+    PAYLOADNV = 679,               /* PAYLOADNV  */
+    PAYLOADINNV = 680,             /* PAYLOADINNV  */
+    HITATTRNV = 681,               /* HITATTRNV  */
+    CALLDATANV = 682,              /* CALLDATANV  */
+    CALLDATAINNV = 683,            /* CALLDATAINNV  */
+    PAYLOADEXT = 684,              /* PAYLOADEXT  */
+    PAYLOADINEXT = 685,            /* PAYLOADINEXT  */
+    HITATTREXT = 686,              /* HITATTREXT  */
+    CALLDATAEXT = 687,             /* CALLDATAEXT  */
+    CALLDATAINEXT = 688,           /* CALLDATAINEXT  */
+    PATCH = 689,                   /* PATCH  */
+    SAMPLE = 690,                  /* SAMPLE  */
+    NONUNIFORM = 691,              /* NONUNIFORM  */
+    COHERENT = 692,                /* COHERENT  */
+    VOLATILE = 693,                /* VOLATILE  */
+    RESTRICT = 694,                /* RESTRICT  */
+    READONLY = 695,                /* READONLY  */
+    WRITEONLY = 696,               /* WRITEONLY  */
+    DEVICECOHERENT = 697,          /* DEVICECOHERENT  */
+    QUEUEFAMILYCOHERENT = 698,     /* QUEUEFAMILYCOHERENT  */
+    WORKGROUPCOHERENT = 699,       /* WORKGROUPCOHERENT  */
+    SUBGROUPCOHERENT = 700,        /* SUBGROUPCOHERENT  */
+    NONPRIVATE = 701,              /* NONPRIVATE  */
+    SHADERCALLCOHERENT = 702,      /* SHADERCALLCOHERENT  */
+    NOPERSPECTIVE = 703,           /* NOPERSPECTIVE  */
+    EXPLICITINTERPAMD = 704,       /* EXPLICITINTERPAMD  */
+    PERVERTEXEXT = 705,            /* PERVERTEXEXT  */
+    PERVERTEXNV = 706,             /* PERVERTEXNV  */
+    PERPRIMITIVENV = 707,          /* PERPRIMITIVENV  */
+    PERVIEWNV = 708,               /* PERVIEWNV  */
+    PERTASKNV = 709,               /* PERTASKNV  */
+    PERPRIMITIVEEXT = 710,         /* PERPRIMITIVEEXT  */
+    TASKPAYLOADWORKGROUPEXT = 711, /* TASKPAYLOADWORKGROUPEXT  */
+    PRECISE = 712                  /* PRECISE  */
   };
   typedef enum yytokentype yytoken_kind_t;
 #endif
@@ -558,7 +556,7 @@
         glslang::TArraySizes* typeParameters;
     } interm;
 
-#line 562 "MachineIndependent/glslang_tab.cpp.h"
+#line 560 "MachineIndependent/glslang_tab.cpp.h"
 
 };
 typedef union YYSTYPE YYSTYPE;
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index 91d5b95..9875561 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -36,7 +36,7 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #include "localintermediate.h"
 #include "../Include/InfoSink.h"
@@ -1105,38 +1105,6 @@
     case EOpIsHelperInvocation: out.debug << "IsHelperInvocation"; break;
     case EOpDebugPrintf:  out.debug << "Debug printf";  break;
 
-    case EOpHitObjectTraceRayNV: out.debug << "HitObjectTraceRayNV"; break;
-    case EOpHitObjectTraceRayMotionNV: out.debug << "HitObjectTraceRayMotionNV"; break;
-    case EOpHitObjectRecordHitNV: out.debug << "HitObjectRecordHitNV"; break;
-    case EOpHitObjectRecordHitMotionNV: out.debug << "HitObjectRecordHitMotionNV"; break;
-    case EOpHitObjectRecordHitWithIndexNV: out.debug << "HitObjectRecordHitWithIndexNV"; break;
-    case EOpHitObjectRecordHitWithIndexMotionNV: out.debug << "HitObjectRecordHitWithIndexMotionNV"; break;
-    case EOpHitObjectRecordMissNV: out.debug << "HitObjectRecordMissNV"; break;
-    case EOpHitObjectRecordMissMotionNV: out.debug << "HitObjectRecordMissMotionNV"; break;
-    case EOpHitObjectRecordEmptyNV: out.debug << "HitObjectRecordEmptyNV"; break;
-    case EOpHitObjectExecuteShaderNV: out.debug << "HitObjectExecuteShaderNV"; break;
-    case EOpHitObjectIsEmptyNV: out.debug << "HitObjectIsEmptyNV"; break;
-    case EOpHitObjectIsMissNV: out.debug << "HitObjectIsMissNV"; break;
-    case EOpHitObjectIsHitNV:  out.debug << "HitObjectIsHitNV"; break;
-    case EOpHitObjectGetRayTMinNV: out.debug << "HitObjectGetRayTMinNV"; break;
-    case EOpHitObjectGetRayTMaxNV: out.debug << "HitObjectGetRayTMaxNV"; break;
-    case EOpHitObjectGetObjectRayOriginNV: out.debug << "HitObjectGetObjectRayOriginNV"; break;
-    case EOpHitObjectGetObjectRayDirectionNV: out.debug << "HitObjectGetObjectRayDirectionNV"; break;
-    case EOpHitObjectGetWorldRayOriginNV: out.debug << "HitObjectGetWorldRayOriginNV"; break;
-    case EOpHitObjectGetWorldRayDirectionNV: out.debug << "HitObjectGetWorldRayDirectionNV"; break;
-    case EOpHitObjectGetObjectToWorldNV: out.debug << "HitObjectGetObjectToWorldNV"; break;
-    case EOpHitObjectGetWorldToObjectNV: out.debug << "HitObjectGetWorldToObjectNV"; break;
-    case EOpHitObjectGetInstanceCustomIndexNV: out.debug<< "HitObjectGetInstanceCustomIndexNV"; break;
-    case EOpHitObjectGetInstanceIdNV: out.debug << "HitObjectGetInstaneIdNV"; break;
-    case EOpHitObjectGetGeometryIndexNV: out.debug << "HitObjectGetGeometryIndexNV"; break;
-    case EOpHitObjectGetPrimitiveIndexNV: out.debug << "HitObjectGetPrimitiveIndexNV"; break;
-    case EOpHitObjectGetHitKindNV: out.debug << "HitObjectGetHitKindNV"; break;
-    case EOpHitObjectGetAttributesNV: out.debug << "HitObjectGetAttributesNV"; break;
-    case EOpHitObjectGetCurrentTimeNV: out.debug << "HitObjectGetCurrentTimeNV"; break;
-    case EOpHitObjectGetShaderBindingTableRecordIndexNV: out.debug << "HitObjectGetShaderBindingTableRecordIndexNV"; break;
-    case EOpHitObjectGetShaderRecordBufferHandleNV: out.debug << "HitObjectReadShaderRecordBufferHandleNV"; break;
-    case EOpReorderThreadNV: out.debug << "ReorderThreadNV"; break;
-
 #ifndef GLSLANG_WEB
     case EOpSpirvInst: out.debug << "spirv_instruction"; break;
 #endif
@@ -1584,7 +1552,7 @@
         break;
     }
 
-    if (treeRoot == nullptr || ! tree)
+    if (treeRoot == 0 || ! tree)
         return;
 
     TOutputTraverser it(infoSink);
@@ -1595,4 +1563,4 @@
 
 } // end namespace glslang
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp
index 0ae281d..4250e92 100644
--- a/glslang/MachineIndependent/iomapper.cpp
+++ b/glslang/MachineIndependent/iomapper.cpp
@@ -33,7 +33,7 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #include "../Include/Common.h"
 #include "../Include/InfoSink.h"
@@ -1710,4 +1710,4 @@
 
 } // end namespace glslang
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 0003a74..ba7bc3b 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -33,7 +33,7 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #ifndef _IOMAPPER_INCLUDED
 #define _IOMAPPER_INCLUDED
@@ -358,4 +358,4 @@
 
 #endif // _IOMAPPER_INCLUDED
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 3a4cb56..acc512f 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -89,7 +89,7 @@
 //
 void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit)
 {
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     mergeCallGraphs(infoSink, unit);
     mergeModes(infoSink, unit);
     mergeTrees(infoSink, unit);
@@ -161,7 +161,7 @@
     callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end());
 }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #define MERGE_MAX(member) member = std::max(member, unit.member)
 #define MERGE_TRUE(member) if (unit.member) member = unit.member;
@@ -750,21 +750,6 @@
                 }
 
                 // Update implicit array sizes
-                if (symbol->getWritableType().isImplicitlySizedArray() && unitSymbol->getType().isImplicitlySizedArray()) {
-                    if (unitSymbol->getType().getImplicitArraySize() > symbol->getType().getImplicitArraySize()){
-                        symbol->getWritableType().updateImplicitArraySize(unitSymbol->getType().getImplicitArraySize());
-                    }
-                }
-                else if (symbol->getWritableType().isImplicitlySizedArray() && unitSymbol->getType().isSizedArray()) {
-                    if (symbol->getWritableType().getImplicitArraySize() > unitSymbol->getType().getOuterArraySize())
-                        error(infoSink, "Implicit size of unsized array doesn't match same symbol among multiple shaders.");
-                }
-                else if (unitSymbol->getType().isImplicitlySizedArray() && symbol->getWritableType().isSizedArray()) {
-                    if (unitSymbol->getType().getImplicitArraySize() > symbol->getWritableType().getOuterArraySize())
-                        error(infoSink, "Implicit size of unsized array doesn't match same symbol among multiple shaders.");
-                }
-
-                // Update implicit array sizes
                 mergeImplicitArraySizes(symbol->getWritableType(), unitSymbol->getType());
 
                 // Check for consistent types/qualification/initializers etc.
@@ -774,19 +759,6 @@
             else if (symbol->getQualifier().isPushConstant() && unitSymbol->getQualifier().isPushConstant() && getStage() == unitStage)
                 error(infoSink, "Only one push_constant block is allowed per stage");
         }
-
-        // Check conflicts between preset primitives and sizes of I/O variables among multiple geometry shaders
-        if (language == EShLangGeometry && unitStage == EShLangGeometry)
-        {
-            TIntermSymbol* unitSymbol = unitLinkerObjects[unitLinkObj]->getAsSymbolNode();
-            if (unitSymbol->isArray() && unitSymbol->getQualifier().storage == EvqVaryingIn && unitSymbol->getQualifier().builtIn == EbvNone)
-                if ((unitSymbol->getArraySizes()->isImplicitlySized() &&
-                        unitSymbol->getArraySizes()->getImplicitSize() != TQualifier::mapGeometryToSize(getInputPrimitive())) ||
-                    (! unitSymbol->getArraySizes()->isImplicitlySized() &&
-                        unitSymbol->getArraySizes()->getDimSize(0) != TQualifier::mapGeometryToSize(getInputPrimitive())))
-                    error(infoSink, "Not all array sizes match across all geometry shaders in the program");
-        }
-
         if (merge) {
             linkerObjects.push_back(unitLinkerObjects[unitLinkObj]);
 
@@ -856,7 +828,7 @@
 //
 void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& symbol, const TIntermSymbol& unitSymbol, EShLanguage unitStage)
 {
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     bool crossStage = getStage() != unitStage;
     bool writeTypeComparison = false;
     bool errorReported = false;
@@ -891,8 +863,7 @@
         else {
             arraysMatch = symbol.getType().sameArrayness(unitSymbol.getType()) ||
                 (symbol.getType().isArray() && unitSymbol.getType().isArray() &&
-                 (symbol.getType().isImplicitlySizedArray() || unitSymbol.getType().isImplicitlySizedArray() ||
-                  symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()));
+                (symbol.getType().isUnsizedArray() || unitSymbol.getType().isUnsizedArray()));
         }
 
         int lpidx = -1;
@@ -1412,7 +1383,7 @@
     TCall* newRoot;
     do {
         // See if we have unvisited parts of the graph.
-        newRoot = nullptr;
+        newRoot = 0;
         for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) {
             if (! call->visited) {
                 newRoot = &(*call);
@@ -1546,10 +1517,7 @@
     if (! keepUncalled) {
         for (int f = 0; f < (int)functionSequence.size(); ++f) {
             if (! reachable[f])
-            {
-                resetTopLevelUncalledStatus(functionSequence[f]->getAsAggregate()->getName());
                 functionSequence[f] = nullptr;
-            }
         }
         functionSequence.erase(std::remove(functionSequence.begin(), functionSequence.end(), nullptr), functionSequence.end());
     }
@@ -1643,8 +1611,6 @@
         setRT = 0;
     else if (qualifier.isAnyCallable())
         setRT = 1;
-    else if (qualifier.isHitObjectAttrNV())
-        setRT = 2;
     else
         return -1;
 
@@ -1684,7 +1650,7 @@
     // slot irrespective of type.
     int collision = -1; // no collision
 #ifndef GLSLANG_WEB
-    if (qualifier.isAnyPayload() || qualifier.isAnyCallable() || qualifier.isHitObjectAttrNV()) {
+    if (qualifier.isAnyPayload() || qualifier.isAnyCallable()) {
         TRange range(qualifier.layoutLocation, qualifier.layoutLocation);
         collision = checkLocationRT(setRT, qualifier.layoutLocation);
         if (collision < 0)
@@ -2046,15 +2012,6 @@
     case EbtInt16:
     case EbtUint16:  size = 2; return 2;
     case EbtReference: size = 8; return 8;
-    case EbtSampler:
-    {
-        if (type.isBindlessImage() || type.isBindlessTexture()) {
-            size = 8; return 8;
-        }
-        else {
-            size = 4; return 4;
-        }
-    }
     default:         size = 4; return 4;
     }
 }
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index 0c56997..e7a171c 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -225,16 +225,6 @@
     LayoutDerivativeGroupLinear,  // derivative_group_linearNV
 };
 
-//
-// Status type on AST level. Some uncalled status or functions would be reset in call graph.
-// Currently we will keep status set by explicitly declared layout or variable decl.
-//
-enum AstRefType {
-    AstRefTypeVar,         // Status set by variable decl
-    AstRefTypeFunc,        // Status set by function decl
-    AstRefTypeLayout,      // Status set by layout decl
-};
-
 class TIdMaps {
 public:
     TMap<TString, long long>& operator[](long long i) { return maps[i]; }
@@ -293,8 +283,10 @@
 public:
     explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) :
         language(l),
+#ifndef GLSLANG_ANGLE
         profile(p), version(v),
-        treeRoot(nullptr),
+#endif
+        treeRoot(0),
         resources(TBuiltInResource{}),
         numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
         invertY(false),
@@ -366,11 +358,15 @@
 
     void setVersion(int v)
     {
+#ifndef GLSLANG_ANGLE
         version = v;
+#endif
     }
     void setProfile(EProfile p)
     {
+#ifndef GLSLANG_ANGLE
         profile = p;
+#endif
     }
 
     int getVersion() const { return version; }
@@ -754,65 +750,6 @@
         useVariablePointers = true;
         processes.addProcess("use-variable-pointers");
     }
-    // Set the global flag for bindless texture
-    void setBindlessTextureMode(const TString& currentCaller, AstRefType type)
-    {
-        // When type is not func, currentCaller should be "" (empty string)
-        bindlessTextureModeCaller[currentCaller] = type;
-    }
-
-    // Get the global flag for bindless texture
-    bool getBindlessTextureMode() const
-    {
-        return (bindlessTextureModeCaller.size() > 0);
-    }
-
-    // Set the global flag for bindless image
-    void setBindlessImageMode(const TString& currentCaller, AstRefType type)
-    {
-        // When type is not func, currentCaller should be "" (empty string)
-        bindlessImageModeCaller[currentCaller] = type;
-    }
-
-    // Get the global flag for bindless image
-    bool getBindlessImageMode() const
-    {
-        return (bindlessImageModeCaller.size() > 0);
-    }
-
-    // Get the global flag for bindless texture
-    bool resetTopLevelUncalledStatus(const TString& deadCaller)
-    {
-        // For reflection collection purpose, currently uniform layout setting and some
-        // flags introduced by variables (IO, global, etc,.) won't be reset here.
-        // Remove each global status (AST top level) introduced by uncalled functions.
-        // If a status is set by several functions, keep those which in call graph.
-        bool result = false;
-
-        // For two types of bindless mode flag, we would only reset which is set by an uncalled function.
-        // If one status flag's key in caller vec is empty, it should be come from a non-function setting.
-        if (!bindlessTextureModeCaller.empty()) {
-            auto caller = bindlessTextureModeCaller.find(deadCaller);
-            if (caller != bindlessTextureModeCaller.end() && bindlessTextureModeCaller[deadCaller] == AstRefTypeFunc) {
-                bindlessTextureModeCaller.erase(caller);
-                result = true;
-            }
-        }
-        if (!bindlessImageModeCaller.empty()) {
-            auto caller = bindlessImageModeCaller.find(deadCaller);
-            if (caller != bindlessImageModeCaller.end() && bindlessImageModeCaller[deadCaller] == AstRefTypeFunc) {
-                bindlessImageModeCaller.erase(caller);
-                result = true;
-            }
-        }
-        return result;
-    }
-
-    bool getBindlessMode() const
-    {
-        return getBindlessTextureMode() || getBindlessImageMode();
-    }
-
     bool usingVariablePointers() const { return useVariablePointers; }
 
 #ifdef ENABLE_HLSL
@@ -1164,8 +1101,13 @@
     typedef std::list<TCall> TGraph;
     TGraph callGraph;
 
+#ifdef GLSLANG_ANGLE
+    const EProfile profile = ECoreProfile;
+    const int version = 450;
+#else
     EProfile profile;                           // source profile
     int version;                                // source version
+#endif
     SpvVersion spvVersion;
     TIntermNode* treeRoot;
     std::set<std::string> requestedExtensions;  // cumulation of all enabled or required extensions; not connected to what subset of the shader used them
@@ -1257,8 +1199,7 @@
 
     TSpirvRequirement* spirvRequirement;
     TSpirvExecutionMode* spirvExecutionMode;
-    std::map<TString, AstRefType> bindlessTextureModeCaller;
-    std::map<TString, AstRefType> bindlessImageModeCaller;
+
     std::unordered_map<std::string, int> uniformLocationOverrides;
     int uniformLocationBase;
     TNumericFeatures numericFeatures;
@@ -1268,9 +1209,8 @@
     std::unordered_set<int> usedConstantId; // specialization constant ids used
     std::vector<TOffsetRange> usedAtomics;  // sets of bindings used by atomic counters
     std::vector<TIoRange> usedIo[4];        // sets of used locations, one for each of in, out, uniform, and buffers
-    std::vector<TRange> usedIoRT[4];        // sets of used location, one for rayPayload/rayPayloadIN,
-                                            // one for callableData/callableDataIn, one for hitObjectAttributeNV and
-                                            // one for shaderrecordhitobjectNV
+    std::vector<TRange> usedIoRT[2];        // sets of used location, one for rayPayload/rayPayloadIN and other
+                                            // for callableData/callableDataIn
     // set of names of statically read/written I/O that might need extra checking
     std::set<TString> ioAccessed;
 
diff --git a/glslang/MachineIndependent/parseConst.cpp b/glslang/MachineIndependent/parseConst.cpp
index 8350972..6c18299 100644
--- a/glslang/MachineIndependent/parseConst.cpp
+++ b/glslang/MachineIndependent/parseConst.cpp
@@ -198,7 +198,7 @@
 
 bool TIntermediate::parseConstTree(TIntermNode* root, TConstUnionArray unionArray, TOperator constructorType, const TType& t, bool singleConstantParam)
 {
-    if (root == nullptr)
+    if (root == 0)
         return false;
 
     TConstTraverser it(unionArray, singleConstantParam, constructorType, t);
diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h
index c9f82d0..7248354 100644
--- a/glslang/MachineIndependent/parseVersions.h
+++ b/glslang/MachineIndependent/parseVersions.h
@@ -58,14 +58,14 @@
                    const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
                    bool forwardCompatible, EShMessages messages)
         :
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         forwardCompatible(forwardCompatible),
         profile(profile),
 #endif
         infoSink(infoSink), version(version), 
         language(language),
         spvVersion(spvVersion), 
-        intermediate(interm), messages(messages), numErrors(0), currentScanner(nullptr) { }
+        intermediate(interm), messages(messages), numErrors(0), currentScanner(0) { }
     virtual ~TParseVersions() { }
     void requireStage(const TSourceLoc&, EShLanguageMask, const char* featureDesc);
     void requireStage(const TSourceLoc&, EShLanguage, const char* featureDesc);
@@ -117,8 +117,13 @@
     bool suppressWarnings() const { return true; }
     bool isForwardCompatible() const { return false; }
 #else
+#ifdef GLSLANG_ANGLE
+    const bool forwardCompatible = true;
+    const EProfile profile = ECoreProfile;
+#else
     bool forwardCompatible;      // true if errors are to be given for use of deprecated features
     EProfile profile;            // the declared profile in the shader (core by default)
+#endif
     bool isEsProfile() const { return profile == EEsProfile; }
     void requireProfile(const TSourceLoc& loc, int profileMask, const char* featureDesc);
     void profileRequires(const TSourceLoc& loc, int profileMask, int minVersion, int numExtensions,
@@ -226,7 +231,6 @@
 protected:
     TMap<TString, TExtensionBehavior> extensionBehavior;    // for each extension string, what its current behavior is
     TMap<TString, unsigned int> extensionMinSpv;            // for each extension string, store minimum spirv required
-    TVector<TString> spvUnsupportedExt;                     // for extensions reserved for spv usage.
     EShMessages messages;        // errors/warnings/rule-sets
     int numErrors;               // number of compile-time errors encountered
     TInputScanner* currentScanner;
diff --git a/glslang/MachineIndependent/preprocessor/PpContext.cpp b/glslang/MachineIndependent/preprocessor/PpContext.cpp
index 70f5119..1363ce2 100644
--- a/glslang/MachineIndependent/preprocessor/PpContext.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpContext.cpp
@@ -85,7 +85,7 @@
 namespace glslang {
 
 TPpContext::TPpContext(TParseContextBase& pc, const std::string& rootFileName, TShader::Includer& inclr) :
-    preamble(nullptr), strings(nullptr), previous_token('\n'), parseContext(pc), includer(inclr), inComment(false),
+    preamble(0), strings(0), previous_token('\n'), parseContext(pc), includer(inclr), inComment(false),
     rootFileName(rootFileName),
     currentSourceFile(rootFileName),
     disableEscapeSequences(false)
diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
index e17eeaf..7ed5870 100644
--- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
@@ -121,7 +121,7 @@
     if (atom == '#') {
         if (peekToken('#')) {
             parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)");
-            parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, nullptr, "token pasting (##)");
+            parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)");
             currentPos++;
             atom = PpAtomPaste;
         }
diff --git a/glslang/MachineIndependent/propagateNoContraction.cpp b/glslang/MachineIndependent/propagateNoContraction.cpp
index a1aa5ea..9def592 100644
--- a/glslang/MachineIndependent/propagateNoContraction.cpp
+++ b/glslang/MachineIndependent/propagateNoContraction.cpp
@@ -423,7 +423,7 @@
                                         ReturnBranchNodeSet());
 
     TIntermNode* root = intermediate.getTreeRoot();
-    if (root == nullptr)
+    if (root == 0)
         return result_tuple;
 
     NodeMapping& symbol_definition_mapping = std::get<0>(result_tuple);
diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp
index 144f85b..9ea48c4 100644
--- a/glslang/MachineIndependent/reflection.cpp
+++ b/glslang/MachineIndependent/reflection.cpp
@@ -33,7 +33,7 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #include "../Include/Common.h"
 #include "reflection.h"
@@ -682,7 +682,7 @@
     }
 
     // For a binary operation indexing into an aggregate, chase down the base of the aggregate.
-    // Return nullptr if the topology does not fit this situation.
+    // Return 0 if the topology does not fit this situation.
     TIntermSymbol* findBase(const TIntermBinary* node)
     {
         TIntermSymbol *base = node->getLeft()->getAsSymbolNode();
@@ -1271,4 +1271,4 @@
 
 } // end namespace glslang
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h
index bfd5452..5af4467 100644
--- a/glslang/MachineIndependent/reflection.h
+++ b/glslang/MachineIndependent/reflection.h
@@ -33,7 +33,7 @@
 // POSSIBILITY OF SUCH DAMAGE.
 //
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 #ifndef _REFLECTION_INCLUDED
 #define _REFLECTION_INCLUDED
@@ -220,4 +220,4 @@
 
 #endif // _REFLECTION_INCLUDED
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
index 7ed71fb..16eb939 100644
--- a/glslang/OSDependent/Unix/CMakeLists.txt
+++ b/glslang/OSDependent/Unix/CMakeLists.txt
@@ -60,7 +60,7 @@
         message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::OSDependent)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(OSDependent ALIAS glslang::OSDependent)
diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp
index 9a31a9a..b98df93 100644
--- a/glslang/OSDependent/Unix/ossource.cpp
+++ b/glslang/OSDependent/Unix/ossource.cpp
@@ -76,7 +76,7 @@
     //
     // Create global pool key.
     //
-    if ((pthread_key_create(&pPoolIndex, nullptr)) != 0) {
+    if ((pthread_key_create(&pPoolIndex, NULL)) != 0) {
         assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
         return OS_INVALID_TLS_INDEX;
     }
diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt
index 67976da..6048bb8 100644
--- a/glslang/OSDependent/Windows/CMakeLists.txt
+++ b/glslang/OSDependent/Windows/CMakeLists.txt
@@ -55,7 +55,7 @@
         message(WARNING \"Using `OSDependentTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::OSDependent)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(OSDependent ALIAS glslang::OSDependent)
diff --git a/glslang/OSDependent/Windows/ossource.cpp b/glslang/OSDependent/Windows/ossource.cpp
index fa372a2..870840c 100644
--- a/glslang/OSDependent/Windows/ossource.cpp
+++ b/glslang/OSDependent/Windows/ossource.cpp
@@ -113,7 +113,7 @@
 
 void InitGlobalLock()
 {
-    GlobalLock = CreateMutex(nullptr, false, nullptr);
+    GlobalLock = CreateMutex(0, false, 0);
 }
 
 void GetGlobalLock()
@@ -128,7 +128,7 @@
 
 unsigned int __stdcall EnterGenericThread (void* entry)
 {
-    return ((TThreadEntrypoint)entry)(nullptr);
+    return ((TThreadEntrypoint)entry)(0);
 }
 
 //#define DUMP_COUNTERS
diff --git a/glslang/OSDependent/osinclude.h b/glslang/OSDependent/osinclude.h
index 7eaa113..fcfeff2 100644
--- a/glslang/OSDependent/osinclude.h
+++ b/glslang/OSDependent/osinclude.h
@@ -41,7 +41,7 @@
 // Thread Local Storage Operations
 //
 typedef void* OS_TLSIndex;
-#define OS_INVALID_TLS_INDEX nullptr
+#define OS_INVALID_TLS_INDEX ((void*)0)
 
 OS_TLSIndex OS_AllocTLSIndex();
 bool        OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue);
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 90a5302..78dd323 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -728,7 +728,7 @@
     TShader& operator=(TShader&);
 };
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
 //
 // A reflection database and its interface, consistent with the OpenGL API reflection queries.
@@ -846,7 +846,7 @@
     virtual void addStage(EShLanguage stage, TIntermediate& stageIntermediate) = 0;
 };
 
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
 
 // Make one TProgram per set of shaders that will get linked together.  Add all
 // the shaders that are to be linked together.  After calling shader.parse()
@@ -867,7 +867,7 @@
 
     TIntermediate* getIntermediate(EShLanguage stage) const { return intermediate[stage]; }
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
 
     // Reflection Interface
 
@@ -961,7 +961,7 @@
     // If resolver is not provided it uses the previous approach
     // and respects auto assignment and offsets.
     GLSLANG_EXPORT bool mapIO(TIoMapResolver* pResolver = nullptr, TIoMapper* pIoMapper = nullptr);
-#endif // !GLSLANG_WEB
+#endif // !GLSLANG_WEB && !GLSLANG_ANGLE
 
 protected:
     GLSLANG_EXPORT bool linkStage(EShLanguage, EShMessages);
@@ -972,7 +972,7 @@
     TIntermediate* intermediate[EShLangCount];
     bool newedIntermediate[EShLangCount];      // track which intermediate were "new" versus reusing a singleton unit in a stage
     TInfoSink* infoSink;
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
     TReflection* reflection;
 #endif
     bool linked;
diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp
index 12e0137..1d97546 100644
--- a/gtests/AST.FromFile.cpp
+++ b/gtests/AST.FromFile.cpp
@@ -211,7 +211,6 @@
         "runtimeArray.vert",
         "simpleFunctionCall.frag",
         "stringToDouble.vert",
-        "struct.error.frag",
         "structAssignment.frag",
         "structDeref.frag",
         "structure.frag",
@@ -292,7 +291,6 @@
         "GL_EXT_shader_integer_mix.vert",
         "GL_ARB_draw_instanced.vert",
         "GL_ARB_fragment_coord_conventions.vert",
-        "GL_ARB_bindless_texture.frag",
         "BestMatchFunction.vert",
         "EndStreamPrimitive.geom",
         "floatBitsToInt.vert",
diff --git a/gtests/BuiltInResource.FromFile.cpp b/gtests/BuiltInResource.FromFile.cpp
index eeea511..da81fe9 100644
--- a/gtests/BuiltInResource.FromFile.cpp
+++ b/gtests/BuiltInResource.FromFile.cpp
@@ -36,7 +36,7 @@
 
 #include <gtest/gtest.h>
 
-#include "glslang/Public/ResourceLimits.h"
+#include "StandAlone/ResourceLimits.h"
 #include "TestFixture.h"
 
 namespace glslangtest {
@@ -49,19 +49,9 @@
     const std::string path = GlobalTestSettings.testRoot + "/baseResults/test.conf";
     std::string expectedConfig;
     tryLoadFile(path, "expected resource limit", &expectedConfig);
-    const std::string realConfig = GetDefaultTBuiltInResourceString();
+    const std::string realConfig = glslang::GetDefaultTBuiltInResourceString();
     ASSERT_EQ(expectedConfig, realConfig);
 }
 
-TEST_F(DefaultResourceTest, UnrecognizedLimit)
-{
-    const std::string defaultConfig = GetDefaultTBuiltInResourceString();
-    testing::internal::CaptureStdout();
-    TBuiltInResource resources;
-    DecodeResourceLimits(&resources, const_cast<char*>(defaultConfig.c_str()));
-    std::string output = testing::internal::GetCapturedStdout();
-    ASSERT_EQ(output.find("unrecognized limit"), std::string::npos);
-}
-
 }  // anonymous namespace
 }  // namespace glslangtest
diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt
index 203812d..8dff7ed 100644
--- a/gtests/CMakeLists.txt
+++ b/gtests/CMakeLists.txt
@@ -76,7 +76,7 @@
                 message(WARNING \"Using `glslangtestsTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
                 if (NOT TARGET glslang::glslangtests)
-                    include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+                    include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
                 endif()
 
                 add_library(glslangtests ALIAS glslang::glslangtests)
diff --git a/gtests/Config.FromFile.cpp b/gtests/Config.FromFile.cpp
index 05107e7..dd18c13 100644
--- a/gtests/Config.FromFile.cpp
+++ b/gtests/Config.FromFile.cpp
@@ -32,7 +32,7 @@
 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 // POSSIBILITY OF SUCH DAMAGE.
 
-#include "glslang/Public/ResourceLimits.h"
+#include "StandAlone/ResourceLimits.h"
 #include "TestFixture.h"
 
 namespace glslangtest {
@@ -65,7 +65,7 @@
         char* configChars = new char[len + 1];
         memcpy(configChars, configContents.data(), len);
         configChars[len] = 0;
-        DecodeResourceLimits(&resources, configChars);
+        glslang::DecodeResourceLimits(&resources, configChars);
         delete[] configChars;
     }
 
diff --git a/gtests/Link.FromFile.Vk.cpp b/gtests/Link.FromFile.Vk.cpp
index 6015c33..4db71c2 100644
--- a/gtests/Link.FromFile.Vk.cpp
+++ b/gtests/Link.FromFile.Vk.cpp
@@ -75,7 +75,7 @@
     result.linkingOutput = program.getInfoLog();
     result.linkingError = program.getInfoDebugLog();
 
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         if (success)
             program.mapIO();
 #endif
diff --git a/gtests/Link.FromFile.cpp b/gtests/Link.FromFile.cpp
index 3b769bb..9e029fc 100644
--- a/gtests/Link.FromFile.cpp
+++ b/gtests/Link.FromFile.cpp
@@ -90,9 +90,6 @@
     Glsl, LinkTest,
     ::testing::ValuesIn(std::vector<std::vector<std::string>>({
         {"mains1.frag", "mains2.frag", "noMain1.geom", "noMain2.geom"},
-        {"implicitArraySize.vert", "implicitArraySize.frag"},
-        {"implicitArraySizeBuiltin.vert", "implicitArraySizeBuiltin.geom"},
-        {"implicitArraySize1.geom", "implicitArraySize2.geom"},
         {"noMain.vert", "mains.frag"},
         {"link1.frag", "link2.frag", "link3.frag"},
         {"recurse1.vert", "recurse1.frag", "recurse2.frag"},
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index fafd33c..93e364d 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -493,8 +493,6 @@
         "spv.samplerlessTextureFunctions.frag",
         "spv.smBuiltins.vert",
         "spv.smBuiltins.frag",
-        "spv.ARMCoreBuiltIns.vert",
-        "spv.ARMCoreBuiltIns.frag",
         "spv.builtin.PrimitiveShadingRateEXT.vert",
         "spv.builtin.ShadingRateEXT.frag",
         "spv.atomicAdd.bufferReference.comp",
@@ -652,12 +650,6 @@
         "spv.atomiAddEXT.task",
         "spv.460.subgroupEXT.task",
         "spv.460.subgroupEXT.mesh",
-
-        // SPV_NV_shader_execution_reorder
-
-        "spv.nv.hitobject-allops.rgen",
-        "spv.nv.hitobject-allops.rchit",
-        "spv.nv.hitobject-allops.rmiss",
     })),
     FileNameAsCustomTestSuffix
 );
@@ -668,7 +660,6 @@
     ::testing::ValuesIn(std::vector<std::string>({
         "spv.1.6.conditionalDiscard.frag",
         "spv.1.6.helperInvocation.frag",
-        "spv.1.6.helperInvocation.memmodel.frag",
         "spv.1.6.specConstant.comp",
         "spv.1.6.samplerBuffer.frag",
         "spv.1.6.separate.frag",
@@ -858,8 +849,7 @@
         "spv.debuginfo.glsl.comp",
         "spv.debuginfo.glsl.geom",
         "spv.debuginfo.glsl.tesc",
-        "spv.debuginfo.glsl.tese",
-        "spv.debuginfo.const_params.glsl.comp"
+        "spv.debuginfo.glsl.tese"
     })),
     FileNameAsCustomTestSuffix
 );
diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h
index 67783c0..d087d6d 100644
--- a/gtests/TestFixture.h
+++ b/gtests/TestFixture.h
@@ -48,7 +48,7 @@
 #include "SPIRV/disassemble.h"
 #include "SPIRV/doc.h"
 #include "SPIRV/SPVRemapper.h"
-#include "glslang/Public/ResourceLimits.h"
+#include "StandAlone/ResourceLimits.h"
 #include "glslang/Public/ShaderLang.h"
 
 #include "Initializer.h"
@@ -199,7 +199,7 @@
             shader->setStringsWithLengths(&shaderStrings, &shaderLengths, 1);
         if (!entryPointName.empty()) shader->setEntryPoint(entryPointName.c_str());
         return shader->parse(
-                (resources ? resources : GetDefaultResources()),
+                (resources ? resources : &glslang::DefaultTBuiltInResource),
                 defaultVersion, isForwardCompatible, controls);
     }
 
@@ -254,7 +254,7 @@
         glslang::TProgram program;
         program.addShader(&shader);
         success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         if (success)
             program.mapIO();
 #endif
@@ -318,7 +318,7 @@
         program.addShader(&shader);
         
         success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         if (success)
             program.mapIO();
 #endif
@@ -363,7 +363,7 @@
         glslang::TProgram program;
         program.addShader(&shader);
         success &= program.link(controls);
-#if !defined(GLSLANG_WEB)
+#if !defined(GLSLANG_WEB) && !defined(GLSLANG_ANGLE)
         if (success)
             program.mapIO();
 #endif
@@ -640,7 +640,7 @@
         std::string ppShader;
         glslang::TShader::ForbidIncluder includer;
         const bool success = shader.preprocess(
-            GetDefaultResources(), defaultVersion, defaultProfile,
+            &glslang::DefaultTBuiltInResource, defaultVersion, defaultProfile,
             forceVersionProfile, isForwardCompatible, (EShMessages)(EShMsgOnlyPreprocessor | EShMsgCascadingErrors),
             &ppShader, includer);
 
diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt
index a4adb60..b34df3a 100644
--- a/hlsl/CMakeLists.txt
+++ b/hlsl/CMakeLists.txt
@@ -52,7 +52,7 @@
         message(WARNING \"Using `HLSLTargets.cmake` is deprecated: use `find_package(glslang)` to find glslang CMake targets.\")
 
         if (NOT TARGET glslang::HLSL)
-            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/glslang-targets.cmake\")
+            include(\"\${CMAKE_CURRENT_LIST_DIR}/../../${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/glslang-targets.cmake\")
         endif()
 
         add_library(HLSL ALIAS glslang::HLSL)
diff --git a/known_good.json b/known_good.json
index 41ff0dd..1d8d371 100644
--- a/known_good.json
+++ b/known_good.json
@@ -5,14 +5,14 @@
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Tools",
       "subdir" : "External/spirv-tools",
-      "commit" : "40f5bf59c6acb4754a0bffd3c53a715732883a12"
+      "commit" : "59cf5b1346d8b029add67a919f801c29ea13cc49"
     },
     {
       "name" : "spirv-tools/external/spirv-headers",
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Headers",
       "subdir" : "External/spirv-tools/external/spirv-headers",
-      "commit" : "1d31a100405cf8783ca7a31e31cdd727c9fc54c3"
+      "commit" : "87d5b782bec60822aa878941e6b13c0a9a954c9b"
     }
   ]
 }